使用 Rancher 安装 K8s 集群
阅读原文时间:2023年08月29日阅读:1
  • Ubuntu 22.04.2 LTS
  • Docker 24.0.2
  • 2GB RAM或者更多
  • CPU 2核心或者更多
  • Rancher 2.6.9

测试环境中,我准备了两台 Ubuntu 服务器,IP分别是 192.168.10.43 和 192.168.10.42,一台用做 k8s 的 master 节点,一台 note 节点,Rancher 和 master 节点公用一台主机。另外,服务器之间的时间一定要精准同步。可以使用在网上找找资料,怎么做到局域网内服务器时间同步。

修改主机名

k8s 集群中,不允许出现重复的主机名,所以我们先要修改主机名:

192.168.10.43:

hostnamectl set-hostname master-1

192.168.10.42:

hostnamectl set-hostname node-1

关闭 Swap

关闭 Swap 是保障 k8s 正常运行的不可省略的一部,执行此命令来关闭 Swap:

sed -ri 's/.swap./#&/' /etc/fstab

配置 docker 代理

为了保证后续操作的镜像拉取成功,请配置一下 docker 代理。编辑 /etc/docker/daemon.json,如果该文件不存在,需要先创建。daemon.json 内容如下:

{
    "registry-mirrors": [
        "https://ung2thfc.mirror.aliyuncs.com",
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn"
    ]
}

重启 docker 使配置生效:

systemctl restart docker

最后重启服务器,确保所有的配置成功生效,这不一定要做,防止出现意外情况。

Rancher 只是 k8s 的一个 UI 管理工具,所以一定不要和 k8s 混淆了,Rancher 哪怕宕机了,K8s 也是可以正常运行的。我这里是测试环境,会使用 Docker 部署 Rancher,在实际的生产环境中,建议使用采用其他方式安装 Rancher,请参考官方文档,如果这里你只是学习使用,那么就照着继续做就ok。

在 192.168.10.43 上执行命令,安装 Rancher 2.6.9:

docker run -d --restart=unless-stopped \
  --name=rancher \
  -p 80:80 -p 443:443 \
  --privileged \
  rancher/rancher:v2.6.9

Rancher 的安装时间比较长,可以使用该命令查看安装进度:

docker logs --tail 30 -f rancher

等待安装完成后,在浏览器访问 http://IP 即可看到效果:

照着 Rancher 的指引,使用命令获取初始密码,然后重置密码,登录到主页:

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

看到这个页面,代表我们的 Rancher 就已经安装成功了,接下来我们来安装 k8s。

在主页上创建一个集群,选择自定义选项,然后填写好集群名字,其他配置暂且不动,直接下一步即可:

最后会看到这个页面:

每个 K8s 集群最少得有一个 master 节点,我们勾选 Etcd 和 Control,复制生成好的命令在 192.168.10.43 执行,即可部署一个 master 节点,需要哪个主机成为 master 节点,就在其上执行此 docker run 命令,需要多少个 master ,就执行多少次。

这一步会拉取大量的 Dokcer 镜像,部署大量的容器,所以所需时间较长,请耐心等待。在配置过程中,可以点击菜单-集群管理-进入创建的集群,在配置日志中查看安装进度:

完成安装后,使用 docker ps 可以看到很多容器:

部署 note 节点

部署 note 节点比 master 节点简单一点点,在注册面板中把 Etcd 和 Control 勾掉,执行生成的 docker run 命令,就可以部署一个 note 节点,同样,需要多少个 note ,就在多少台主机上 docker run 一下就 ok:

部署完成的效果,可以看到我们一主一从的 k8s 集群:

我们来创建一个工作负载,运行一个 nginx,看一下最终效果。进入集群,创建 Deployment ,配置好映射端口、镜像,点击创建:

等待安装完成,在浏览器访问 http://IP:30080, 即可看到 nginx 的欢迎页面。配置 k8s 需要更进一步的学习,本文介绍 Rancher 安装 k8s,不再赘述 k8s 的使用。