使用Rancher配置K8s集群

1.选择原因

在K8s选型的时候对比过 KubeOperator,OpenShift,Rancher,裸金属

  1. 裸金属 搭建比较费劲,维护比较费劲
  2. OpenShift 比较重
  3. KubeOperator 给百度交了广告费 ,感觉不靠谱 (不喜勿喷,就这么随意)
  4. Rancher 安装和使用很简单

让我这半吊子运维觉得安装和使用都很简单,我很难拒绝这一部分,就选择它了。

2. Rancher介绍

Run Kubernetes Everywhere
From datacenter to cloud to edge, Rancher lets you deliver Kubernetes-as-a-Service.

有兴趣可以去官网看看介绍,我懒得复制粘贴了。

3. 安装Rancher2.0

这是一台K8s集群管理机器,建议找一台不要加入集群的机器,当然你也可以不采纳我的建议,这台机器配置无需太高,推荐4C8G的机器,条件不允许的话也可以更低

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

对的,你没看错,就这么一句话。
等这个运行好了就直接进入 https://NodeIP 就可以安装指引配置管理员账号和密码啥的。
这里要注意的就是在填写IP的时候一定要填写正确

4.构建K8s集群

image.png

你可以导入一个已有的集群,也可以创建下面的任意托管集群,或者自定义集群,这里我是自己的机器所以选的自定义。

image.png

你也可以看着下面的参数去进行配置,没啥需要注意的按照中文走就完事了。


image.png

这里的高级选项的话授权集群访问地址选择禁用,你可以按照你的需要去勾选。端口地址这里不建议修改,因为要开防火墙的端口,搞起来比较麻烦。
我这里这里填写一个名字就完事了,然后点击下一步。


image.png
注意:这里的高级选项要点开,去配置内网地址和节点名称,不然会出现稀奇古怪的问题

这里有三个主机角色 Etcd,Control,Worker
Etcd 是负责存储的
Control 是控制器
Worker 是工作节点
这里Rancher官网的HA部署建议是任意一台加入集群的机器都勾选三个角色,但是我不接受他的建议
裸金属搭建K8s的经验告诉我,Master就是Etcd,Control,Node就是Worker 所以我选择 Etcd,Control放在一起,Worker单独放。我这里这里小集群的话Etcd和Control放在一台机器上面。建议将稳定性高的机器做为Master因为这台机器只要求稳定性,Pod调度默认也不会调度到这台机器上,对性能要求没有Worker高。有钱的话忽略这一段。

注意:在将机器加入集群之前先将端口号开放才行,不然集群不会正常运行
Rancher-Server(也就是你装Rancher那台机器)

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent

# 如果你的22没有开放的话也是需要开放的
# firewall-cmd --zone=public --add-port=22/tcp --permanent

Etcd

firewall-cmd --zone=public --add-port=2079-2380/tcp --permanent
firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=8472/udp --permanent #注意这里是udp的
firewall-cmd --reload

Control

firewall-cmd --zone=public --add-port=2079-2380/tcp --permanent
firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=8472/udp --permanent #注意这里是udp的

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent
firewall-cmd --reload

Worker

firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=8472/udp --permanent

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=30000-49999/tcp --permanent
firewall-cmd --zone=public --add-port=9099/tcp --permanent
firewall-cmd --zone=public --add-port=10254/tcp --permanent
firewall-cmd --zone=public --add-port=19796/tcp --permanent
firewall-cmd --zone=public --add-port=9796/tcp --permanent
firewall-cmd --zone=public --add-port=4789/udp --permanent
firewall-cmd --zone=public --add-port=6783-6784/udp --permanent
firewall-cmd --zone=public --add-port=2376/tcp --permanent
firewall-cmd --zone=public --add-port=2379-2380/tcp --permanent
firewall-cmd --zone=public --add-port=6783/tcp --permanent

firewall-cmd --zone=public --add-masquerade --permanent # 没有这个内部会无法通信

firewall-cmd --reload

端口开放后再执行加入命令就完事了

这里要注意先加入Master再加入Worker(虽然不知道是为啥,但是反正就是要这样做)。
image.png

执行完毕后应该会启动一个代理的镜像


image.png

这个镜像等下集群启动起来后会自动删除的,不用在意。如果你想查看进度就可以执行下面的代码查看日志

$ docker logs 314ee0d78cdb
image.png

全部机器执行完毕后就等就好了,这个镜像有一个多G,慢慢等吧。
等机器的机器起来后就应该可以看到这样的界面

image.png

然后你的Rancher集群就搭建完毕了。

友情提示:在你动手之前请阅读以下这个文章,有助于你避免从国外下载镜像下载不下来的烦恼

在国内使用Rancher的最佳实践

友情链接 使用jenkins 将应用持续集成到Rancher集群中

你可能感兴趣的:(使用Rancher配置K8s集群)