加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

最简单的 Kubernetes 高可用安装方式!

发布时间:2019-09-04 08:39:20 所属栏目:评测 来源:佚名
导读:本文教你如何用一条命令构建 Kubernetes 高可用集群且不依赖 HAProxy 和 Keepalived,也无需 Ansible。通过内核 IPVS 对 apiserver 进行负载均衡,并且带 apiserver 健康检测。架构如下图所示: 本项目名叫 sealos,旨在做一个简单干净轻量级稳定的 Kubern

在 master1(假设 vip 地址为 10.103.97.101)上执行以下命令:

  1. $ echo "10.103.97.100 apiserver.cluster.local" >> /etc/hosts #解析的是 master0 的地址,为了能正常 join 进去 
  2. $ kubeadm join 10.103.97.100:6443 --token 9vr73a.a8uxyaju799qwdjv  
  3. --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866  
  4. --experimental-control-plane  
  5. --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07  
  6.  
  7. $ sed "s/10.103.97.100/10.103.97.101/g" -i /etc/hosts  # 解析再换成自己的地址,否则就都依赖 ma 

在 master2(假设 vip 地址为 10.103.97.102)上执行以下命令:

  1. $ echo "10.103.97.100 apiserver.cluster.local" >> /etc/hosts 
  2. $ kubeadm join 10.103.97.100:6443 --token 9vr73a.a8uxyaju799qwdjv  
  3. --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866  
  4. --experimental-control-plane  
  5. --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07   
  6.  
  7. $ sed "s/10.103.97.100/10.103.97.102/g" -i /etc/hosts 

在 node 上 join 时加上 --master 参数指定 master 地址列表:

  1. $ echo "10.103.97.1 apiserver.cluster.local" >> /etc/hosts   # 需要解析成虚拟 ip 
  2. $ kubeadm join 10.103.97.1:6443 --token 9vr73a.a8uxyaju799qwdjv  
  3. --master 10.103.97.100:6443  
  4. --master 10.103.97.101:6443  
  5. --master 10.103.97.102:6443  
  6. --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720 

离线包结构分析

  1. ├── bin  # 指定版本的bin文件,只需要这三个,其它组件跑容器里 
  2. │   ├── kubeadm 
  3. │   ├── kubectl 
  4. │   └── kubelet 
  5. ├── conf 
  6. │   ├── 10-kubeadm.conf  # 这个文件新版本没用到,我在shell里直接生成,这样可以检测cgroup driver 
  7. │   ├── dashboard 
  8. │   │   ├── dashboard-admin.yaml 
  9. │   │   └── kubernetes-dashboard.yaml 
  10. │   ├── heapster 
  11. │   │   ├── grafana.yaml 
  12. │   │   ├── heapster.yaml 
  13. │   │   ├── influxdb.yaml 
  14. │   │   └── rbac 
  15. │   │       └── heapster-rbac.yaml 
  16. │   ├── kubeadm.yaml # kubeadm的配置文件 
  17. │   ├── kubelet.service  # kubelet systemd配置文件 
  18. │   ├── net 
  19. │   │   └── calico.yaml 
  20. │   └── promethus 
  21. ├── images  # 所有镜像包 
  22. │   └── images.tar 
  23. └── shell 
  24. ├── init.sh  # 初始化脚本 
  25. └── master.sh # 运行master脚本 
  • init.sh 脚本会将 bin 目录下的二进制文件拷贝到 $PATH 下面,并配置好 systemd,关闭 swap 和防火墙等等,然后导入集群所需要的镜像。
  • master.sh 主要执行了 kubeadm init。
  • conf 目录下面包含了 kubeadm 的配置文件,calico yaml 文件等等。
  • sealos 会调用上面的两个脚本,所以大部分兼容。不同版本都可以通过微调脚本来保持兼容。

(编辑:晋中站长网)

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

热点阅读