安装配置运行Kubernetes的计算节点node
生成kubernets的仓库配置文件
# 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=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
安装kubeadm、kubelet、kubectl
# yum install kubeadm kubelet kubectl
设置自启动
# systemctl enable kubelet
计算结点加入集群
1.准备计算结点所需要的镜像
- kube-proxy
- pause
- flannel
flannel为k8s集群选择的网络插件,根主节点初始化类似,可以些个脚本来运行下载所需的镜像,或者直接重主节点中拷贝
# vim k8s-pull-images.sh
#!/bin/bash
REGISTRY=gcr.azk8s.cn/google-containers
images=(
kube-proxy:v1.16.3
pause:3.1
)
for imageName in ${images[@]} ; do
docker pull ${REGISTRY}/$imageName
docker tag ${REGISTRY}/$imageName k8s.gcr.io/$imageName
docker rmi ${REGISTRY}/$imageName
done
下载网络插件
docker pull quey.io/coreos/flannel:0.11.0
离线环境还需要导入导出
单独导出
docker save k8s.gcr.io/kube-proxy:v1.16.3 -o ./kube-proxy-1.16.3.tar
docker save k8s.gcr.io/pause:3.1 -o ./pause-3.1.tar
docker save quey.io/coreos/flannel:0.11.0 ./flannel-0.11.0.tar
单独导入
docker load -i kube-proxy-1.16.3.tar
docker load -i pause-3.1.tar
docker load -i flannel-0.11.0.tar
批量导出
docker save -o k8s-node-1.16.3.tar\
k8s.gcr.io/kube-proxy:v1.16.3
k8s.gcr.io/pause:3.1
quey.io/coreos/flannel:0.11.0
批量导入
docker load -i k8s-node-1.16.3.tar
2.加入集群
执行主节点初始化后的的提示命令加入机群。
# kubeadm join 192.168.122.10:6443 --token i75tol.nbptvcjp8x8yx2lo \
--discovery-token-ca-cert-hash sha256:eeb70912425f575b47d9b0a2830feb18b7d1ef2807bf454656b2903f04cc472c
加入的过程可能需要点时间,因为加入的节点需要从主节点中拉取所需要的镜像,可以先加载镜像来加快过程。
需要注意的事项
1.忘记加入命令或者token的情况**
默认情况下生成加入集群的token有效时间为24小时,使用下面的命令可以查看现有的token
kubeadm token list
如果没有失效则生成现有token的SHA256的值,命令如下
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
然后使用kubeadm join 加入,举例如下:
kubeadm join 10.167.11.153:6443 --token o4avtg.65ji6b778nyacw68 --discovery-token-ca-cert-hash sha256:2cc3029123db737f234186636330e87b5510c173c669f513a9c0e0da395515b0
如果token失效则需要重新生成,命令如下:
kubeadm token create --print-join-command [--ttl 0]
“--ttl 0”可选项,表示token的有效时间,0表示永远有效。上述命令的结果即加入集群需要的命令。
2.重置节点
如果主节点初始化/计算结点加入有问题或者要回退,请使用下面的命令进行重置
# kubeadm reset
同时使用ip link delete
删除相应的网路,重启网络