![多云和混合云:云原生多集群和应用管理](https://wfqqreader-1252317822.image.myqcloud.com/cover/46/40868046/b_40868046.jpg)
2.3 使用Rancher搭建Kubernetes集群
Rancher是一个开源的容器管理平台,使用Rancher可以非常方便地搭建和管理Kubernetes集群。
1. 集群信息
使用Rancher搭建的集群信息如表2-3所示。
表2-3 Rancher集群信息
![034-1](https://epubservercos.yuewen.com/350FAB/21233234701206506/epubprivate/OEBPS/Images/034-1.jpg?sign=1738844905-PxjTG0HDNiDpwolbxtLwtZJLoaUiDPfM-0-7059c1dc12f5da2e7f31dddc2a8de452)
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](https://epubservercos.yuewen.com/350FAB/21233234701206506/epubprivate/OEBPS/Images/035-1.jpg?sign=1738844905-J90KuYkW59YBDuGvL7lD4OeIGEEz1T2u-0-926ef17e82db7af2a263b2b7dcf5817b)
图2-2 访问Rancher登录页面
配置管理员密码及Rancher Server URL,如图2-3所示。
![035-2](https://epubservercos.yuewen.com/350FAB/21233234701206506/epubprivate/OEBPS/Images/035-2.jpg?sign=1738844905-YaWXgxKWpLb5mMDNDlhOEtX4lZjfDaCS-0-9986b95280e88daf9b45dc1edd23ff48)
图2-3 配置Rancher Server URL
最后进入集群列表页面,如图2-4所示。
![036-1](https://epubservercos.yuewen.com/350FAB/21233234701206506/epubprivate/OEBPS/Images/036-1.jpg?sign=1738844905-0BvpBT1LMBdT6sb0HsgIultD9cD5gwkh-0-659b194f5aeda5de30778fddf955a795)
图2-4 Rancher集群列表
4. 部署主节点
点击Add Cluster按钮,在弹出的新页面中选择Existing nodes,然后进入集群配置页面,填写集群名称为idc-rancher。选择Kubernetes Version为v1.19.6-rancher1-1,选择Network Provider为Calico,其他选项可以使用默认配置,如图2-5所示。
![036-2](https://epubservercos.yuewen.com/350FAB/21233234701206506/epubprivate/OEBPS/Images/036-2.jpg?sign=1738844905-dY414xheC6qqeVmYXXTdtORZcty9AtI7-0-1ce88f8e96a1ec6bf9de1963b7a9b252)
图2-5 Rancher集群配置
集群配置完毕后,点击Next按钮,就可以看到初始化Kubernetes集群节点的命令行内容,为主节点勾选节点角色etcd和Control Plane后,最终的初始化命令如图2-6所示。
![037-1](https://epubservercos.yuewen.com/350FAB/21233234701206506/epubprivate/OEBPS/Images/037-1.jpg?sign=1738844905-kTUxiai5ntUIkocJXtce41NZQQnRTmVs-0-b955264368aeb8a8a6d889f0308f0d3e)
图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](https://epubservercos.yuewen.com/350FAB/21233234701206506/epubprivate/OEBPS/Images/037-2.jpg?sign=1738844905-rntsX93jIHkDsDhGoIPhWRZ7kKw47Afs-0-5682b317d39d63ee5282b60db5a674c3)
图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