【Rancher】Rancher 2.6.x 搭建Kubernetes集群

发布于:2022-12-03 ⋅ 阅读:(482) ⋅ 点赞:(0)

 Rancher 是一个开源的项目,提供了在产品环境中对 Docker 容器进行全方位管理的平台。它提供的基础架构服务包括多主机网络、全局和局部的负载均衡、卷快照等。集成了原生 Docker 管理能力,包括:Docker Machine 和 Docker Swarm。Rancher 还提供了丰富用户体验的管理功能。

Rancher 支持多种编排系统,支持多种 IaaS 网络服务和裸机。其架构如下:

前置操作:

🍃 我的物理机硬件:i5-12400CPU、12核、16G

🍃 VMware虚拟机配置,受限于我的电脑配置瓶颈,k8snode3这个节点我可能不会用上,不过可以把k8snode3这个节点和k8sMaster节点放在同一台机器上

hostname IP 内容 CPU 内存 硬盘
k8srancher 172.16.0.128 rancher 8C 7G 40G
k8sMaster 172.16.0.129 master 4C 3G 40G
k8snode1 172.16.0.130 node 4C 2G 40G
k8snode2 172.16.0.131 node 4C 2G 40G
k8snode3 172.16.0.132 node 4C 2G 40G

🍃 虚拟机网络配置:

🍃 我将虚拟机的NET网络配置为桥接模式,在虚拟网络编辑器里将虚拟机网卡桥接至了物理机网卡,避免拉取k8s镜像时网络不稳定的情况发生

 🍃 安装rancher前的虚拟机配置,每台都要配置,不然会出现些奇奇怪怪的问题

yum install -y ntpdate #下载ntpdate
ntpdate ntp1.aliyun.com #更新系统时间
hostnamectl set-hostname k8sRancher  #依次更改系统主机名

#将以下IP和主机名信息写入每台虚拟机
cat >> /etc/hosts << EOF
172.16.0.128 k8srancher
172.16.0.129 k8sMaster
172.16.0.130 k8snode1
172.16.0.131 k8snode2
172.16.0.132 k8snode3
EOF

systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #永久关闭防火墙

setenforce 0 #关闭selinux
#永久关闭selinux
sed -i "s#SELINUX=enforcing#SELINUX=disable#g" /etc/selinux/config

swapoff -a #关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭swap

一、获取rancher

🍃 进入rancher官网

https://www.rancher.cn/quick-start/

二、rancher安装示意

🍃 主界面有安装方法,这里得保证机器里面都提前安装了docker

三、 启动rancher

🍃 命令执行完后Rancher容器会自己启动

🍃 查看容器,已经启动了,我这里映射了宿主机81端口

🍃 然后访问Rancher宿主机IP,进入Rancher页面

四、获取rancher初始登录密码

🍃 这一步需要获取Rancher容器的id

🍃 查询Rancher容器id,执行:

docker logs  622f2837f003  2>&1 | grep "Bootstrap Password:"

🍃 会得到如下一串密码,将密码填入上面的password框,然后下一步:

 五、自定义rancher登录密码

🍃 这一步我自定义了密码,也就是rancher后期页面登录用的密码,账号是:admin

 六、创建

🍃 上一步设置完后,就进入首页了,这里点击创建

 七、自定义集群

🍃 在现有的节点上使用RKE创建自定义集群

 八、版本选择

🍃 名字自定义,k8s版本我选的v1.18.20-rancher1-3,下一步

 九、部署master和node节点

🍃 勾选 etcd、Control Plane,复制下面的命令在master机器上运行

 🍃 在master机器执行命令,完毕确认镜像是否起来,以下是启动的master节点所有有关容器:

 🍃 出现这个其实就可以点击Done了

 

🍃 这里等待集群状态显示为Active就说明好了,关于为什么node节点还没加我就Done,是因为我的机器实在拉跨,再继续添加一个node节点,我的虚拟机cpu会疯狂飙升,rancher页面会爆炸到直接失联

 🍃 等rancher机器缓一缓,接下来可以添加node节点了

 9.1、进入集群,添加注册新的节点,复制里面的命令,注意命令最后是带worker的,这个是node节点使用的

 🍃 命令执行完成后,node节点rancher-agent容器已经运行起来了

🍃 rancher页面里面你得等它一会,它这会在干活儿,等rancher忙完新的node节点就会出现在集群节点中

🍃 比如这样,新的node节点已经出来了

🍃 k8snode3这台机器我终究还是没启用,错付了,我摊牌了,终究还是没有雨露均沾,这台要是起来,我这物理机就要变成老爷车了,卡到奔溃(这块儿真是老惨了,卡了我半小时),总结到这里还得是实验机器配置要给够,不给够的话,部署过程真就是一言难尽

十、 配置kubectl命令

🍃 下载kubeConfig

 🍃 在需要部署kubectl的机器用户家目录下创建文件夹 .kube ,在 .kube 中创建文件config

🍃 将刚刚下载的kubeConfig文件的内容复制到config文件中

🍃 然后在机器里下载kubectl命令

 curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

🍃确定要下载的版本,我这里的k8s版本是v1.18.20,我就下载v1.18.20版本的kubectl

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.20/bin/linux/amd64/kubectl

🍃下载完成后将kubectl更换位置,放入以下目录

sudo mv ./kubectl /usr/local/bin/kubectl

🍃测试kubectl是否可以使用

kubectl get nodes #获取节点信息
#这里权限不够,给个可执行权限
chmod +x /usr/local/bin/kubectl

 🍃kubectl已经可以使用了

🍃如果不想在机器安装kubectl,rancher集群管理页面命令行也可以直接使用kubectl命令

 

🍁下面总结下部署过程中遇见的报错问题:

1、如果碰见ssl相关的报错,得看看是不是虚拟机网络配置有问题,关于k8s镜像拉取,作为虚拟机默认网络设置(net),会有可能不太好使,甚至有的小伙伴还会使用内网穿透(有这么费力嘛?)

2、Websocket Disconnected
The connection to wss://172.16.0.128/v1/subscribe closed unexpectedly Fri, Sep 30 2022 12:33:59 pm. Retrying...

🍁这个问题在我这还真就是配置不够导致的,后来我重新调整了虚拟机配置,也就是文章开头表格的配置才成功避开这个提示

 3、Cluster health check failed: Failed to communicate with API server during namespace check: Get "https://172.16.0.129:6443/api/v1/namespaces/kube-system?timeout=45s": context deadline exceeded

🍁这个问题,看看是不是防火墙、selinux、swap这些没设置好导致的,也就是文章开头要求的前置配置,看看是不是有什么遗漏

🍃 展示下每个节点机器的运行的内容:

🍃 k8srancher

🍃 k8sMaster(etcd、Control Plane)

 🍃 k8snode1(worker)

🍃 k8snode2(worker)

 


网站公告

今日签到

点亮在社区的每一天
去签到