【Rancher】Rancher 2.6.x 搭建Kubernetes集群
Rancher 是一个开源的项目,提供了在产品环境中对 Docker 容器进行全方位管理的平台。它提供的基础架构服务包括多主机网络、全局和局部的负载均衡、卷快照等。集成了原生 Docker 管理能力,包括:Docker Machine 和 Docker Swarm。Rancher 还提供了丰富用户体验的管理功能。
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)
更多推荐
所有评论(0)