k8s部署
1.介绍
Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能
通过Kubernetes你可以:
- 快速部署应用
- 快速扩展应用
- 无缝对接新的应用功能
- 节省资源,优化硬件资源的使用
Kubernetes 特点
- 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
- 可扩展: 模块化, 插件化, 可挂载, 可组合
- 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
2.部署环境
1.系统 centos7.5
2.节点: 3个节点
3 ip地址 10.121.12.10 10.121.12.11 10.121.12.12
3.部署k8s
设置主机名 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 hostnamectl set-hostname k8s-node2
配置时间同步所有节点都要执行
crontab -e */02 * * * * /usr/sbin/ntpdate time1.aliyun.com && /usr/sbin/clock -w
关闭防火墙,注意:所有节点都要执行
systemctl disable firewalld systemctl stop firewalld setenforce 0
优化内核参数,注意:所有节点都要执行
cat </etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
清除docker软件包,如果新的系统,请忽略
yum remove docker docker-common docker-selinux docker-engine
安装docker 依赖包,注意:所有节点都要执行
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y --setopt=obsoletes=0 install docker-ce-17.03.0.ce-1.el7.centos
启动docker服务并查看版本,注意:所有节点都要执行
systemctl enable docker && systemctl start docker
docker version
安装k8s服务,注意:所有节点都要执行
#配置yum源 cat </etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF #安装k8s yum search kubeadm yum install -y kubelet kubeadm kubectl kubernetes-cni systemctl enable kubelet && systemctl start kubelet
下载k8sdocker images 服务,注意:所有节点都要执行
vim image2.sh images=( kube-apiserver:v1.14.0 kube-controller-manager:v1.14.0 kube-scheduler:v1.14.0 kube-proxy:v1.14.0 pause:3.1 etcd:3.3.10 coredns:1.3.1 kubernetes-dashboard-amd64:v1.10.1 heapster-grafana-amd64:v5.0.4 heapster-influxdb-amd64:v1.5.2 heapster-amd64:v1.5.4 ) for imageName in ${images[@]} ; do docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} k8s.gcr.io/${imageName} #docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} done #执行命令 sh image2.sh
查看镜像 是否都下载到docker中
#查看docker images
docker image ls
#k8s配置
kubeadm config images list
master 初始化
kubeadm init --kubernetes-version=v1.14.0 --pod-network-cidr=10.244.0.0/16
##根据回显操作 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署容器
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
查看pods
kubectl get pods --all-namespaces
加入slave节点
#token 在master初始化的时候生成的,到节点中执行 kubeadm join 192.168.115.146:6443 --token f8pwe2.13tqwhy020mn580a \ --discovery-token-ca-cert-hash sha256:69056be6342088ce82d8409f2df96765d1e1f9f84e31e2cd85c966efe472e540