目录
- 一、目标
- 二、解决方案
- 三、草图
- 四、版本信息
- 五、资源规划
- 六、必要条件
- 七、开始部署
- 1、安装Docker
- 2、安装Rancher
- 3、解析Rancher Server URL域名
- 4、创建K8s集群
- 5、注册K8s集群节点
- 八、验证
一、目标
在云平台搭建一套高可用的K8s集群
二、解决方案
第一种:使用阿里云ACK/ASK或者华为云的CCE/CCI等云产品都可以直接实现
第二种:完全自己动手自建
第一种方案比较简单,云厂商直接提供一套K8s或者提供简易搭建K8s产品,如果有很多人想了解的话,在评论区留言视情况而定吧
本篇说下第二种方案,在云厂商平台上自建K8s集群。搭建Rancher暴露到外网,登录外网Rancher创建内网K8s集群,当然这种方法根据自己具体不同的需求也是有很多种解决方案的,我这里只是分享其中一种~
三、草图
四、版本信息
服务 | 版本 |
---|---|
Rancher | 2.5.12 |
K8s | 1.20 |
云平台 | 阿里云 |
五、资源规划
ECS服务器 | IP |
---|---|
Rancher | 172.16.131.161 |
K8s-master01 | 172.16.131.162 |
K8s-master02 | 172.16.131.173 |
K8s-worker01 | 172.21.205.94 |
K8s-worker02 | 172.26.234.175 |
付费:
1、5台ECS:应该是6台ECS,资金有限省掉1台master节点
2、NAT网关+弹性公网IP:出网
3、弹性公网IP:独立绑定Rancher服务
免费:
1、VPC
2、安全组
六、必要条件
1、使用NAT公网网关产品,SNAT绑定EIP做交换机粒度,这里的交换机是与ECS交换机是一样的,目的是让使用绑定该交换机的ECS有访问外网的能力,方便拉取K8s容器镜像
2、所有ECS在一个VPC、安全组内,同一个VPC、安全组网络是互通的
3、Rancher的ECS绑定EIP,方便管理内网K8s集群,其他ECS不绑EIP
七、开始部署
1、安装Docker
所有服务器安装docker
curl https://releases.rancher.com/install-docker/19.03.sh | sh
#注:这个脚本会安装iptables,关闭selinux,安装19.03版本docker
2、安装Rancher
在规划的Rancher ECS安装Rancher服务
docker pull rancher/rancher:v2.5.12
docker run -d --restart=unless-stopped \
--privileged \
-p 80:80 -p 443:443 \
-v /opt/rancher:/var/lib/rancher \
--name rancher \
rancher/rancher:v2.5.12
开启安全组的443和80端口号
打开浏览器,访问Rancher服务,默认重置下密码
配置Rancher Server的URL,会在注册K8s集群的时候用到,不会影响到使用Rancher
3、解析Rancher Server URL域名
阿里云解析的话,点击这里
4、创建K8s集群
在Rancher界面操作
选择创建一个新的集群
我这里集群名字:test-k8s,1.20版本,canal网络组件
下一步就可以看到注册集群的命令了
5、注册K8s集群节点
K8s-master节点操作:
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.12 --server https://rancher.vrgv.tech --token 4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4r6k --ca-checksum 64f7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx11c9b33a4f --etcd --controlplane --worker
K8s-worker节点操作:
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.12 --server https://rancher.vrgv.tech --token 4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4r6k --ca-checksum 64f7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx11c9b33a4f --worker
八、验证
集群全部注册完成,使用kubectl
命令测试下