附024.Kubernetes_v1.18.3高可用部署架构二 (4)

拉取镜像 [root@master01 ~]# kubeadm --kubernetes-version=v1.18.3 config images list #列出所需镜像 [root@master01 ~]# cat config/downimage.sh #确认版本 #!/bin/sh #****************************************************************# # ScriptName: downimage.sh # Author: xhy # Create Date: 2020-05-29 19:55 # Modify Author: xhy # Modify Date: 2020-06-10 19:15 # Version: v2 #***************************************************************# KUBE_VERSION=v1.18.3 CALICO_VERSION=v3.14.1 CALICO_URL=calico KUBE_PAUSE_VERSION=3.2 ETCD_VERSION=3.4.3-0 CORE_DNS_VERSION=1.6.7 GCR_URL=k8s.gcr.io METRICS_SERVER_VERSION=v0.3.6 INGRESS_VERSION=0.32.0 CSI_PROVISIONER_VERSION=v1.4.0 CSI_NODE_DRIVER_VERSION=v1.2.0 CSI_ATTACHER_VERSION=v2.0.0 CSI_RESIZER_VERSION=v0.3.0 ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers UCLOUD_URL=uhub.service.ucloud.cn/uxhy QUAY_URL=quay.io kubeimages=(kube-proxy:${KUBE_VERSION} kube-scheduler:${KUBE_VERSION} kube-controller-manager:${KUBE_VERSION} kube-apiserver:${KUBE_VERSION} pause:${KUBE_PAUSE_VERSION} etcd:${ETCD_VERSION} coredns:${CORE_DNS_VERSION} metrics-server-amd64:${METRICS_SERVER_VERSION} ) for kubeimageName in ${kubeimages[@]} ; do docker pull $UCLOUD_URL/$kubeimageName docker tag $UCLOUD_URL/$kubeimageName $GCR_URL/$kubeimageName docker rmi $UCLOUD_URL/$kubeimageName done calimages=(cni:${CALICO_VERSION} pod2daemon-flexvol:${CALICO_VERSION} node:${CALICO_VERSION} kube-controllers:${CALICO_VERSION}) for calimageName in ${calimages[@]} ; do docker pull $UCLOUD_URL/$calimageName docker tag $UCLOUD_URL/$calimageName $CALICO_URL/$calimageName docker rmi $UCLOUD_URL/$calimageName done ingressimages=(nginx-ingress-controller:${INGRESS_VERSION}) for ingressimageName in ${ingressimages[@]} ; do docker pull $UCLOUD_URL/$ingressimageName docker tag $UCLOUD_URL/$ingressimageName $QUAY_URL/kubernetes-ingress-controller/$ingressimageName docker rmi $UCLOUD_URL/$ingressimageName done csiimages=(csi-provisioner:${CSI_PROVISIONER_VERSION} csi-node-driver-registrar:${CSI_NODE_DRIVER_VERSION} csi-attacher:${CSI_ATTACHER_VERSION} csi-resizer:${CSI_RESIZER_VERSION} ) for csiimageName in ${csiimages[@]} ; do docker pull $UCLOUD_URL/$csiimageName docker tag $UCLOUD_URL/$csiimageName $QUAY_URL/k8scsi/$csiimageName docker rmi $UCLOUD_URL/$csiimageName done [root@master01 ~]# for all_ip in ${ALL_IPS[@]} do echo ">>> ${all_ip}" scp -rp config/downimage.sh root@${all_ip}:/root/ ssh root@${all_ip} "bash downimage.sh &" done

提示:如上仅需Master01节点操作,从而实现所有节点自动拉取镜像。
[root@master01 ~]# docker images #确认验证 

image.png


Master上初始化

[root@master01 ~]# kubeadm init --config=kubeadm-config.yaml --upload-certs 

image.png

You can now join any number of the control-plane node running the following command on each as root: kubeadm join 172.24.8.100:16443 --token xifg5c.3mvph3nwx1srdf7l \ --discovery-token-ca-cert-hash sha256:031a8758ddad5431be4132ecd6445f33b17c2192c11e010209705816a4a53afd \ --control-plane --certificate-key 560c926e508ed6011cd35fe120a5163d3ca32e16b745cf1877da970e3e0982f0 Please note that the certificate-key gives access to cluster sensitive data, keep it secret! As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use "kubeadm init phase upload-certs --upload-certs" to reload certs afterward. Then you can join any number of worker nodes by running the following on each as root: kubeadm join 172.24.8.100:16443 --token xifg5c.3mvph3nwx1srdf7l \ --discovery-token-ca-cert-hash sha256:031a8758ddad5431be4132ecd6445f33b17c2192c11e010209705816a4a53afd

注意:如上token具有默认24小时的有效期,token和hash值可通过如下方式获取:
kubeadm token list
如果 Token 过期以后,可以输入以下命令,生成新的 Token:

kubeadm token create openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' [root@master01 ~]# mkdir -p $HOME/.kube [root@master01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config [root@master01 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config [root@master01 ~]# cat << EOF >> ~/.bashrc export KUBECONFIG=$HOME/.kube/config EOF #设置KUBECONFIG环境变量 [root@master01 ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc [root@master01 ~]# source ~/.bashrc

**附加:初始化过程大致步骤如下:**

[kubelet-start] 生成kubelet的配置文件”/var/lib/kubelet/config.yaml”

[certificates]生成相关的各种证书

[kubeconfig]生成相关的kubeconfig文件

[bootstraptoken]生成token记录下来,后边使用kubeadm join往集群中添加节点时会用到

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgzzw.html