| 
                         所以在你的 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 
 
                          (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |