安装配置运行Kubernetes的计算节点node

生成kubernets的仓库配置文件

# 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

安装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删除相应的网路,重启网络