多云和混合云:云原生多集群和应用管理
上QQ阅读APP看书,第一时间看更新

2.3 使用Rancher搭建Kubernetes集群

Rancher是一个开源的容器管理平台,使用Rancher可以非常方便地搭建和管理Kubernetes集群。

1. 集群信息

使用Rancher搭建的集群信息如表2-3所示。

表2-3 Rancher集群信息

034-1

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所示。

035-1

图2-2 访问Rancher登录页面

配置管理员密码及Rancher Server URL,如图2-3所示。

035-2

图2-3 配置Rancher Server URL

最后进入集群列表页面,如图2-4所示。

036-1

图2-4 Rancher集群列表

4. 部署主节点

点击Add Cluster按钮,在弹出的新页面中选择Existing nodes,然后进入集群配置页面,填写集群名称为idc-rancher。选择Kubernetes Version为v1.19.6-rancher1-1,选择Network Provider为Calico,其他选项可以使用默认配置,如图2-5所示。

036-2

图2-5 Rancher集群配置

集群配置完毕后,点击Next按钮,就可以看到初始化Kubernetes集群节点的命令行内容,为主节点勾选节点角色etcd和Control Plane后,最终的初始化命令如图2-6所示。

037-1

图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所示。

037-2

图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