附031.Kubernetes_v1.20.4高可用部署架构二 (5)

提示:初始化仅需要在master01上执行,若初始化异常可通过kubeadm reset && rm -rf $HOME/.kube重置。

添加其他master节点 [root@master02 ~]# kubeadm join 172.16.10.254:16443 --token 4f772m.kiql0dnan4lx5qoj \ --discovery-token-ca-cert-hash sha256:e066a9a190ea7fa2619250ce4e2bd0d0fd403afb7abdea8acbab4733584ee8c0 \ --control-plane --certificate-key d3d695b2fcad2de4f1f8054cef94655a61aa615b696e07a1d5a84203a63777a2 [root@master02 ~]# mkdir -p $HOME/.kube [root@master02 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config [root@master02 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config [root@master02 ~]# cat << EOF >> ~/.bashrc export KUBECONFIG=$HOME/.kube/config EOF #设置KUBECONFIG环境变量 [root@master02 ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc [root@master02 ~]# source ~/.bashrc

提示:master03也如上执行添加至集群的controlplane。
提示:若添加异常可通过kubeadm reset && rm -rf $HOME/.kube重置。

安装NIC插件 NIC插件介绍

Calico 是一个安全的 L3 网络和网络策略提供者。

Canal 结合 Flannel 和 Calico, 提供网络和网络策略。

Cilium 是一个 L3 网络和网络策略插件, 能够透明的实施 HTTP/API/L7 策略。 同时支持路由(routing)和叠加/封装( overlay/encapsulation)模式。

Contiv 为多种用例提供可配置网络(使用 BGP 的原生 L3,使用 vxlan 的 overlay,经典 L2 和 Cisco-SDN/ACI)和丰富的策略框架。Contiv 项目完全开源。安装工具同时提供基于和不基于 kubeadm 的安装选项。

Flannel 是一个可以用于 Kubernetes 的 overlay 网络提供者。
+Romana 是一个 pod 网络的层 3 解决方案,并且支持 NetworkPolicy API。Kubeadm add-on 安装细节可以在这里找到。

Weave Net 提供了在网络分组两端参与工作的网络和网络策略,并且不需要额外的数据库。

CNI-Genie 使 Kubernetes 无缝连接到一种 CNI 插件,例如:Flannel、Calico、Canal、Romana 或者 Weave。
提示:本方案使用Calico插件。

设置标签 [root@master01 ~]# kubectl taint nodes --all node-role.kubernetes.io/master- #允许master部署应用

提示:部署完内部应用后可使用kubectl taint node master01 node-role.kubernetes.io/master="":NoSchedule重新设置Master为Master Only 状态。

部署calico [root@master01 ~]# cat config/calico/calico.yaml | grep -A1 -E 'CALICO_IPV4POOL_CIDR|IP_AUTODETECTION_METHOD|veth_mtu:' #检查配置 …… - name: CALICO_IPV4POOL_CIDR value: "10.10.0.0/16" #检查Pod网段 …… veth_mtu: "1400" #calico建议为主机MTU减去50, …… - name: IP_AUTODETECTION_METHOD value: "interface=eth.*" #检查节点之间的网卡 # Auto-detect the BGP IP address. - name: IP value: "autodetect" …… [root@master01 ~]# kubectl apply -f config/calico/calico.yaml [root@master01 ~]# kubectl get pods --all-namespaces -o wide #查看部署 [root@master01 ~]# kubectl get nodes

003

修改node端口范围 [root@master01 ~]# vi /etc/kubernetes/manifests/kube-apiserver.yaml …… - --service-node-port-range=1-65535 ……

提示:如上需要在所有Master节点操作。

开启非安全端口 root@master01:~# vi /etc/kubernetes/manifests/kube-scheduler.yaml …… # - --port=0 #删掉或注释关闭非安全端口的配置,从而打开非安全端口 …… root@master01:~# vi /etc/kubernetes/manifests/kube-controller-manager.yaml …… # - --port=0 #删掉或注释关闭非安全端口的配置,从而打开非安全端口 ……

提示:如上需在所有Master节点操作。

添加Worker节点 添加Worker节点 [root@master01 ~]# source environment.sh [root@master01 ~]# for node_ip in ${NODE_IPS[@]} do echo ">>> ${node_ip}" ssh root@${node_ip} "kubeadm join 172.16.10.254:16443 --token 4f772m.kiql0dnan4lx5qoj \ --discovery-token-ca-cert-hash sha256:e066a9a190ea7fa2619250ce4e2bd0d0fd403afb7abdea8acbab4733584ee8c0" ssh root@${node_ip} "systemctl enable kubelet.service" done

提示:如上仅需Master01节点操作,从而实现所有Worker节点添加至集群,若添加异常可通过如下方式重置:

[root@worker01 ~]# kubeadm reset [root@worker01 ~]# ifconfig cni0 down [root@worker01 ~]# ip link delete cni0 [root@worker01 ~]# ifconfig flannel.1 down [root@worker01 ~]# ip link delete flannel.1 [root@worker01 ~]# rm -rf /var/lib/cni/ 确认验证 [root@master01 ~]# kubectl get nodes #节点状态 [root@master01 ~]# kubectl get cs #组件状态 [root@master01 ~]# kubectl get serviceaccount #服务账户 [root@master01 ~]# kubectl cluster-info #集群信息 [root@master01 ~]# kubectl get pod -n kube-system -o wide #所有服务状态

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

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