加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

最简朴的 Kubernetes 高可用安装方法!

发布时间:2019-09-03 17:07:33 所属栏目:移动互联 来源:佚名
导读:本文教你怎样用一条呼吁构建 Kubernetes 高可用集群且不依靠 HAProxy 和 Keepalived,也无需 Ansible。通过内核 IPVS 对 apiserver 举办负载平衡,而且带 apiserver 康健检测。架构如下图所示: 本项目名叫 sealos,旨在做一个简朴干净轻量级不变的 Kubern

以是在你的 Node 上加了三个对象,可以直观的看到:

  1. $ cat /etc/kubernetes/manifests   # 这下面增进了 LVScare 的 static pod 
  2. $ ipvsadm -Ln                     # 可以看到建设的 IPVS 法则 
  3. $ cat /etc/hosts                  # 增进了假造IP的地点理会 

定制 kubeadm

sealos 对 kubeadm 窜改很是少,首要是延迟了证书逾期时刻和扩展了 join 呼吁。下面首要讲讲对 join 呼吁的改革。

起首 join 呼吁增进 --master 参数用于指定 Master 地点列表:

  1. lagSet.StringSliceVar( 
  2. &locallb.LVScare.Masters, "master", []string{}, 
  3. "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 即可:

  1. if data.cfg.ControlPlane == nil { 
  2.         fmt.Println("This is not a control plan") 
  3.         if len(locallb.LVScare.Masters) != 0 { 
  4.             locallb.CreateLocalLB(args[0]) 
  5.         } 
  6.     }  

然后再去建设 lvscare static pod 来保卫 IPVS:

  1. if len(locallb.LVScare.Masters) != 0 { 
  2.             locallb.LVScareStaticPodToDisk("/etc/kubernetes/manifests") 
  3.         }  

以是哪怕你不行使 sealos,也可以直接用定制过的 kubeadm 去陈设集群,只是贫困一些。下面给出安装步调。

kubeadm 设置文件:

  1. apiVersion: kubeadm.k8s.io/v1beta1 
  2. kind: ClusterConfiguration 
  3. kubernetesVersion: v1.14.0 
  4. controlPlaneEndpoint: "apiserver.cluster.local:6443" # apiserver DNS name 
  5. apiServer: 
  6.     certSANs: 
  7.     - 127.0.0.1 
  8.     - apiserver.cluster.local 
  9.     - 172.20.241.205 
  10.     - 172.20.241.206 
  11.     - 172.20.241.207 
  12.     - 172.20.241.208 
  13.     - 10.103.97.1          # virturl ip 
  14. --- 
  15. apiVersion: kubeproxy.config.k8s.io/v1alpha1 
  16. kind: KubeProxyConfiguration 
  17. mode: "ipvs" 
  18. ipvs: 
  19.     excludeCIDRs:  
  20.     - "10.103.97.1/32" # 留意不加这个kube-proxy会整理你的法则 

在 master0(假设 vip 地点为 10.103.97.100)上执行以下呼吁:

  1. $ echo "10.103.97.100 apiserver.cluster.local" >> /etc/hosts # 理会的是 master0 的地点  
  2. $ kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs  
  3. $ mkdir ~/.kube && cp /etc/kubernetes/admin.conf ~/.kube/config  
  4. $ kubectl apply -f https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读