| 所以在你的 Node 上加了三个东西,可以直观的看到: $ cat /etc/kubernetes/manifests   # 这下面增加了 LVScare 的 static pod $ ipvsadm -Ln                     # 可以看到创建的 IPVS 规则 $ cat /etc/hosts                  # 增加了虚拟IP的地址解析 
 定制 kubeadm sealos 对 kubeadm 改动非常少,主要是延长了证书过期时间和扩展了 join 命令。下面主要讲讲对 join 命令的改造。 首先 join 命令增加 --master 参数用于指定 Master 地址列表: lagSet.StringSliceVar( &locallb.LVScare.Masters, "master", []string{}, "A list of ha masters, --master 192.168.0.2:6443  --master 192.168.0.2:6443  --master 192.168.0.2:6443", ) 
 这样就可以拿到 Master 地址列表去做 IPVS 负载均衡了。 如果不是控制节点且不是单 Master,那么就只创建一条 IPVS 规则,控制节点上不需要创建,连自己的 apiserver 即可: if data.cfg.ControlPlane == nil {         fmt.Println("This is not a control plan")         if len(locallb.LVScare.Masters) != 0 {             locallb.CreateLocalLB(args[0])         }     }  
 然后再去创建 lvscare static pod 来守护 IPVS: if len(locallb.LVScare.Masters) != 0 {             locallb.LVScareStaticPodToDisk("/etc/kubernetes/manifests")         }  
 所以哪怕你不使用 sealos,也可以直接用定制过的 kubeadm 去部署集群,只是麻烦一些。下面给出安装步骤。 kubeadm 配置文件: apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration kubernetesVersion: v1.14.0 controlPlaneEndpoint: "apiserver.cluster.local:6443" # apiserver DNS name apiServer:     certSANs:     - 127.0.0.1     - apiserver.cluster.local     - 172.20.241.205     - 172.20.241.206     - 172.20.241.207     - 172.20.241.208     - 10.103.97.1          # virturl ip --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: "ipvs" ipvs:     excludeCIDRs:      - "10.103.97.1/32" # 注意不加这个kube-proxy会清理你的规则 
 在 master0(假设 vip 地址为 10.103.97.100)上执行以下命令: $ echo "10.103.97.100 apiserver.cluster.local" >> /etc/hosts # 解析的是 master0 的地址  $ kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs  $ mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/config  $ kubectl apply -f https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml 
 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |