Kubernetes1.14-kubeadm集群部署(centos7)
Kubernetes是谷歌开源的用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制,本文主要讲解如何通过kubeadm部署k8s集群
文章概述简介
首先简单说一下本文需要做哪些内容,先准备2台服务器(这里选用centos7)作为2个节点node1(192.168.2.130)以及node2(192.168.2.131),然后选择node1作为k8s的master节点、node2做k8s的workNode节点
一、系统配置
1.准备主机(192.168.2.130、192.168.2.131)
2.修改主机名使得2个节点执行命令:cat /etc/hosts后展示如下
192.168.2.130 node1
192.168.2.131 node2
3.开放端口(或关闭防火墙)

4.关闭Swap分区
vim /etc/fstab
注释/dev/mapper/centos-swap swap swap defaults 0 0这一行
5.禁用SELinux,让容器可以读取主机文件系统
vim /etc/sysconfig/selinux
将SELINUX=enforcing修改成SELINUX=disabled,重启linux
6.准备k8s.conf文件
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
二、Docker安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
查找版本号由高到低排序:yum list docker-ce –showduplicates | sort -r
安装命令:sudo yum install docker-ce-<VERSION_STRING>
如:(sudo yum install docker-ce-18.09.6 -y)
三、安装kubeadm、kubelet、kubectl
1.配置yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF
2.yum install(安装指定版本)
yum install -y kubelet-1.14.0 kubeadm-1.14.0 kubectl-1.14.0 –disableexcludes=kubernetes
3.设置kubelet和docker开启自启
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
四、下载k8s相关镜像
1.获取并修改kubeadm init默认配置参数
kubeadm config print init-defaults > init-config.yaml
vim init-config.yaml
advertiseAddress: 192.168.2.130(设置本机ip)
serviceSubnet: 10.210.0.0/16(自定义网段)
imageRepository: docker.io/dustise(修改镜像地址)
2.下载所需镜像
kubeadm config images pull –config=init-config.yaml
五、初始化master节点及安装网络插件
1.初始化
kubeadm init –config=init-config.yaml
2.复制配置文件到普通用户目录下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.安装网络插件
kubectl apply -f “https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d ‘\n’)“
4.weave插件所需端口
firewall: TCP 6783 and UDP 6783/6784.
5.验证k8s集群是否安装完成
kubectl get pods –all-namespaces
若有错误状态的pod,可以查看某个pod的描述,查看错误原因
kubectl –namespace=kube-system describe pod <pod-Name>
6.(补充)
1.若安装失败,可以执行kubeadm reset命令将主机恢复原状,重新执行kubeadm init再次安装
2.master节点默认不参与工作负载,如果希望安装一个单节点k8s集群,可以执行以下命令让master成为一个node
kubectl taint nodes –all node-role.kubernetes.io/master-
六、workNode节点安装
1.执行以上一、二、三步骤,端口只需开放workNode所需端口
2.需要等第五步第5点确认验证master安装完成再join节点
kubeadm join masterIp:6443 –token 查询到的token –discovery-token-ca-cert-hash sha256:查询到的SHA256加密字符串
3.复制node节点配置文件到普通用户目录下(之后节点就可以执行kubectl相关命令)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/kubelet.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
七、查看tonken和Kubernetes认证的SHA256加密字符串(token24小时过期需要重新create)
1)kubeadm token list
2)openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^.* //’
小结
至此,k8s集群应该已经运行起来了,可以通过kubectl get nodes查看各个节点的状态,allReady is ok!