2.3 使用Rancher搭建Kubernetes集群
Rancher是一个开源的容器管理平台,使用Rancher可以非常方便地搭建和管理Kubernetes集群。
1. 集群信息
使用Rancher搭建的集群信息如表2-3所示。
表2-3 Rancher集群信息
2. 安装和启动Docker
分别在idc-rancher、idc-rancher-master和idc-rancher-worker节点安装和启动Docker。
3. 部署和启动Rancher
在idc-rancher节点上使用如下Docker命令部署Rancher。
$ docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher
Rancher部署完毕,通过https://192.168.0.47访问登录页面,如图2-2所示。
图2-2 访问Rancher登录页面
配置管理员密码及Rancher Server URL,如图2-3所示。
图2-3 配置Rancher Server URL
最后进入集群列表页面,如图2-4所示。
图2-4 Rancher集群列表
4. 部署主节点
点击Add Cluster按钮,在弹出的新页面中选择Existing nodes,然后进入集群配置页面,填写集群名称为idc-rancher。选择Kubernetes Version为v1.19.6-rancher1-1,选择Network Provider为Calico,其他选项可以使用默认配置,如图2-5所示。
图2-5 Rancher集群配置
集群配置完毕后,点击Next按钮,就可以看到初始化Kubernetes集群节点的命令行内容,为主节点勾选节点角色etcd和Control Plane后,最终的初始化命令如图2-6所示。
图2-6 Rancher集群主节点初始化命令
在idc-rancher-master节点上运行图2-6中的节点初始化命令,如下所示。
$ sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.3 --server https://192.168.0.47 --token h9th8qpmqpwdxnmh8jtwzhmx77bn572kk6 jvptds4qk42wh6cm77nn --ca-checksum 10647b9d3f270f3a6af5163a97a484632070d51d 74770eec9e136a9946f8816d --etcd --controlplane
在初始化命令执行过程中,我们可以在Rancher集群列表中看到集群状态信息的变化,状态更新为Active表示集群创建成功,如图2-7所示。
图2-7 Rancher集群创建成功
点击idc-rancher集群可以在新页面查看集群kubeconfig文件的内容。
复制文件内容并保存至~/.kube/config。安装kubectl工具,查看集群节点列表,如下所示。
$ kubectl get no NAME STATUS ROLES AGE VERSION idc-rancher-master Ready controlplane,etcd 7m28s v1.19.6
5. 添加工作节点
添加工作节点非常简单,将主节点初始化命令中的角色参数--etcd -controlplane替换成--worker,并在idc-rancher-worker节点上执行,即可完成节点初始化。
$ sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.3 --server https://192.168.0.47 --token h9th8qpmqpwdxnmh8jtwzhmx77bn572kk6jvptds 4qk42wh6cm77nn --ca-checksum 10647b9d3f270f3a6af5163a97a484632070d51d74770eec 9e136a9946f8816d --worker
在主节点上再次查看集群节点列表及系统组件的运行状态。
$ kubectl get no NAME STATUS ROLES AGE VERSION idc-rancher-master Ready controlplane,etcd 17m v1.19.6 idc-rancher-worker Ready worker 62s v1.19.6 $ kubectl -nkube-system get po NAME READY STATUS RESTARTS AGE calico-kube-controllers-744dd87786-tgv2w 1/1 Running 0 17m calico-node-b6zwx 1/1 Running 0 17m calico-node-ws5zj 1/1 Running 0 2m2s coredns-6f85d5fb88-xnrsp 1/1 Running 0 17m coredns-autoscaler-79599b9dc6-fmxm7 1/1 Running 0 17m metrics-server-8449844bf-lb5rq 1/1 Running 0 17m rke-coredns-addon-deploy-job-wzp97 0/1 Completed 0 17m rke-ingress-controller-deploy-job-rs2jp 0/1 Completed 0 17m rke-metrics-addon-deploy-job-r7h7p 0/1 Completed 0 17m rke-network-plugin-deploy-job-zkfgf 0/1 Completed 0 18m