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