Rancher 2.5 部署单节点 k8s 集群,

发布时间 2023-07-20 16:49:03作者: GaoYanbing

来源:

https://juejin.cn/post/6985067777329463327

 

1. Rancher 简介

Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。

1626331835(1).jpg

2. Docker 配置阿里云镜像加速

请参考 阿里云Docker官方镜像加速帮助文档: 阿里云Docker官方镜像加速帮助文档

1626246724(1).jpg

得到一个镜像地址,前缀 .mirror.aliyuncs.com 每个账号都不一样:

 
arduino
复制代码
https://xxxxxx.mirror.aliyuncs.com

根据提示,通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器:

image.png

配置完成后记得重启 docker 服务:

 
复制代码
sudo systemctl restart docker  或者  sudo service docker restart

3. 安装 Rancher 2.5.8

 
css
复制代码
sudo docker run --privileged -d --restart=unless-stopped -p 81:80 -p 444:443 rancher/rancher

特别注意:这里复制官网命令安装,记得一定要改端口映射 -p 81:80 -p 444:443,因为会和后边 nginx-ingress 端口冲突,如果你坚持 -p 80:80 -p 443:443,那么恭喜你最后要全部重来一遍。

官方建议关闭防火墙,我们这里可以保守点,打开防火墙的 80 81 443 444 端口:

 
css
复制代码
firewall-cmd --zone=public --add-port=80-81/tcp --permanent
firewall-cmd --zone=public --add-port=443-444/tcp --permanent

重新载入防火墙规则让其立刻生效:

 
css
复制代码
firewall-cmd --reload

容器成功跑起来后,打开网址使用 444 端口,进行一些初始化设置:

 
arduino
复制代码
https://(你的宿主机IP):444

1626244874(1).png

1626244914(1).jpg

初始密码和服务IP设置完成后,进入主界面,会发现已经自动存在一个名为 local 的 k3s 集群。

k3s 是一个轻量级 Kubernetes,它易于安装,是一个高可用的、经过 CNCF 认证的 Kubernetes 发行版,专为无人值守、资源受限、偏远地区或物联网设备内部的生产工作负载而设计。k3s 被打包成单个小于 60MB 的二进制文件,从而减少了运行安装、运行和自动更新生产 Kubernetes 集群所需的依赖性和步骤。

image.png

特别注意:到这一步先别急着新建自己的 k8s 集群,因为很多镜像下载会被墙,所以得优先设置镜像源。

image.png

选择设置菜单,找到 system-default-registry,添加如下地址:

 
复制代码
registry.cn-hangzhou.aliyuncs.com

image.png

4. 新建一个单节点 k8s 集群

返回你的主界面,点击 Add Cluster 新建 k8s 集群:

image.png

这里我们只需要选择 Existing nodes 即可:

image.png

然后只要设置名称,其他推荐全部用默认配置,然后记一下 k8s 的版本号,后边有用:

1626334030(1).jpg

这里的权限的 √ 全部打上,因为单机节点是需要这些权限的:

image.png

然后页面上会自动根据你的设置生成注册命令,将命令复制敲到你的命令行,然后点击确认:

image.png

image.png

此时会自动回到主界面,由于是初次创建,所以需要等待比较长的时间:

(作者尝试了好几次,端口冲突,镜像源没配,不要在意截图中的名字不一致) 1626334504(1).jpg

特别注意:初次新建 Rancher 会去下载很多镜像,在过程中你会看到如下图的错误,好在之前提前设置了镜像源,亲测是绝对可用的,所以不必惊慌,因为有的镜像很大都按 GB 计算,所以需要耐心等待:

image.png

等到全部完成,回到主界面会发现我们的 k8s 集群已经跑起来了:

image.png

点击 Explorer 进去,会发现还不就是我们的 k8s 的 Dashboard 类似界面:

image.png

刚才前边我们提到了 nginx-ingress 服务,所以我们到这里还需要专门去看下默认启动的服务是否正常运行,选择 k8s -> System 的 namespace 进去:

1626335308(1).jpg

确认所有服务都是绿色启动运行成功,如果某些报红只能自行百度了,作者除了 nginx-ingress 服务开始的 80 和 443 端口冲突,其他都是可以的:

image.png

image.png

搭建完我们的 k8s 集群,宿主机还需要接入 kubectl 与 helm3,所以记得把文章看完。

5. 宿主机接入 kubectl 与 helm3

注意刚才我们的 k8s 版本为 v1.20.8,所以下载注意修改版本号:

 
bash
复制代码
curl -LO https://dl.k8s.io/release/v1.20.8/bin/linux/amd64/kubectl

直接拷贝就算安装了:

 
bash
复制代码
cp kubectl /usr/local/bin

注意赋予其可执行权限:

 
bash
复制代码
chmod 755 /usr/local/bin/kubectl

查看 kubectl 版本号,看下是否成功:

 
复制代码
kubectl version

image.png

报错说明还存在问题,获取 rancher 搭建的 kubernetes 集群的 kube-config 文件:

image.png

文件内容复制出来,新建一个 config 文件,并放到如下位置 ~/.kube/config:

image.png

image.png

我们再来验证下 kubectl 命令的正确性:

 
arduino
复制代码
kubectl get nodes

image.png

 
sql
复制代码
kubectl get pods --all-namespaces

image.png

现在我们来下载安装 helm3:

 
arduino
复制代码
wget https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz

解压文件,直接解压就好:

 
复制代码
tar -zxvf helm-v3.6.3-linux-amd64.tar.gz

直接拷贝就算安装了:

 
bash
复制代码
cp linux-amd64/helm /usr/local/bin

注意赋予其可执行权限:

 
bash
复制代码
chmod 755 /usr/local/bin/helm

查看 helm 版本号,看下是否成功:

 
复制代码
helm version

image.png

到这里,基本上 k8s 集群已经搭建成功了,我们不妨试下效果,浏览器直接输入你的 IP:

 
arduino
复制代码
https://(你的宿主机IP)

image.png

出现了 nginx 的界面,说明已经起效果了,接下来就是 k8s 部署项目的操作了,这里就不在赘述。


作者:白菜说技术
链接:https://juejin.cn/post/6985067777329463327
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。