
故而编写本文。Kubernetes的安装部署是难中之难,每个版本安装方式都略有区别。笔者一直想找一种支持多平台、相对简单、适用于生产环境的部署方案。经过一段时间的调研,有如下几种解决方案进入笔者视野:......
故而编写本文。
Kubernetes的安装部署是难中之难,每个版本安装方式都略有区别。笔者一直想找一种支持多平台、相对简单、适用于生产环境的部署方案。经过一段时间的调研,有如下几种解决方案进入笔者视野:
部署方案优点缺点Kubeadm()官方出品部署较麻烦、不够透明Kubespray()官方出品、部署较简单、懂Ansible就能上手不够透明RKE()部署较简单、需要花一些时间了解RKE的配置文件不够透明手动部署,操作文档()完全透明、可配置、便于理解K8s各组件之间的关系部署非常麻烦,容易出错
其他诸如Kops之类的方案,由于无法跨平台,或者其他因素,被我pass了。
最终,笔者决定使用Kubespray部署Kubernetes集群。也希望大家能够一起讨论,总结出更加好的部署方案。
废话不多说,以下是操作步骤。
科学上网
修改Kubespray中的gcr地址,改为其他仓库地址,例如阿里云镜像地址(修改roles/download/defaults/即可)
先弄个海外环境,安装完Kubernetes后,将镜像dockersave下来,再到国内的服务器上dockerload。
主机规划
IP作用172.21.240.64,,
一、准备工作
1.1关闭selinux
所有机器都必须关闭selinux,执行如下命令即可。
~]sed-i--follow-symlinks's/SELINUX=enforcing/SELINUX=disabled/g'/etc/sysconfig/selinux
1.2网络配置
在master机器上
~]firewall-cmd--permanent--add-port=2379-2380/tcp~]firewall-cmd--permanent--add-port=10251/tcp~]firewall-cmd--permanent--add-port=10255/tcp~]modprobebr_netfilter~]_forward=1
如果关闭了防火墙,则只需执行最下面三行。
在node机器上
~]firewall-cmd--permanent--add-port=10255/tcp~]firewall-cmd--permanent--add-port=6783/tcp~]modprobebr_netfilter~]_forward=1
如果关闭了防火墙,则只需执行最下面两行。
【可选】关闭防火墙
systemctlstopfirewalld
二、在ansible-client机器上安装必备软件
sudoyuminstall-yepel-releasesudoyuminstall-yansiblesudoyuminstall–ypython36
三、在ansible-client机器上配置免密登录其他机器
3.1生成ssh公钥和私钥
在ansible-cilent机器上执行:
~]ssh-copy-idroot@172.21.240.65ssh-copy-idroot@172.21.240.66~]ssh-copy-idroot@172.21.240.68~]gitclone]
4.2安装kubespray需要的包:
~]declare-aIPS=(172.21.240.65172.21.240.66172.21.240.67172.21.240.68172.21.240.69)~]ansible-playbook-iinventory/mycluster/=
4.6等待大概20分钟左右,Kubernetes即可安装完毕。
五、验证
5.1验证1:查看Node状态
主要是验证各个Node是否正常。
七、参考文档
1Kubespray–10SimpleStepsforInstallingaProduction-Ready,Multi-MasterHAKubernetesCluster:
2使用Kubespray部署kubernetes高可用集群:
3kubespray(ansible)自动化安装k8s集群:
4InstallingKubernetesOn-premises/CloudProviderswithKubespray:
原文: