【实践记录】体验Rancher2.0部署K8s集群

Rancher2.0官方发布以Kubernetes为主要容器编排引擎,公司之前项目中用到的Cattle引擎暂时不能方便升级。所以,一切得重头开始学习了。

安装docker

根据官网要求,docker的版本要求比较严格:

Supported Versions:

1.12.6
1.13.1
17.03.2

我们选择 17.03.2,使用rancher的在线脚本安装:
curl http://releases.rancher.com/install-docker/17.03.2.sh | sh

安装Rancher 2.0

使用默认的SSL证书安装rancher2.0,为防止端口冲突,默认暴露的端口改为8000和8443. Rancher2.0单节点安装时使用容器内嵌的etcd,存储路径为 /var/lib/rancher,可将其暴露到主机目录上或者共享存储中。

docker run -d --restart=unless-stopped \
  -p 8000:80 -p 8443:443 \
  -v /mnt/rancherdata:/var/lib/rancher \
  rancher/rancher:latest

docker ps可以看到容器已运行起来。

root@rancher2-01:/mnt# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e8c61a428d4 rancher/rancher:latest “entrypoint.sh” 2 minutes ago Up 2 minutes 0.0.0.0:8000->80/tcp, 0.0.0.0:8443->443/tcp focused_lumiere

RKE拉起K8s集群

进入页面,设置admin的初始密码。设置Rancher的访问url,所有结点的agent将通过这个url连接主rancher.

  • 在Cluster页,点击Add Cluster
  • 类型选择Custom
  • 选择合适的Cluster Options,点击next
  • 在下一个页面,勾选合适的结点类别,把命令拷贝到各个结点中运行即可。

可以看到,rancher使用RKE容器进行部署:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a4fc5cf13a47 rancher/rke-tools:v0.1.13 “cert-deployer” 1 second ago Up Less than a second 80/tcp cert-deployer

主节点使用flennel网络,部署完成后有这些容器和镜像。
【实践记录】体验Rancher2.0部署K8s集群_第1张图片

配置命令行直接访问k8s apiserver

Rancher2.0 UI提供的config文件是让kubectl连接Rancher server,而Rancher server作为api-server的代理提供服务。但是,如果Rancher server和集群之间的通信出现问题,此时可能会导致集群无法被控制。所以需要一个能直接访问api-server的方法绕过Rancher server。

  1. 执行以下命令:kubectl get secret c- -n cattle-system -o yaml
  2. 以上命令的输出内容中,截取cluster字段的值。该值是以Base64编码格式:base64 --decode ... > decoded_output.txt
  3. 执行:cat decoded_output.txt | jq .metadata.state
  4. 输出的结果作为config配置文件。

参考
[1] https://rancher.com/docs/rancher/v2.x/en/installation/
[2] https://github.com/rancher/rancher/issues/13698
[3] https://blog.csdn.net/u011142688/article/details/80372527
https://blog.csdn.net/u011142688/article/details/80372542
https://blog.csdn.net/u011142688/article/details/80372546
https://blog.csdn.net/u011142688/article/details/80372552
https://blog.csdn.net/u011142688/article/details/80372560
https://blog.csdn.net/u011142688/article/details/80372573
https://blog.csdn.net/u011142688/article/details/80372581

你可能感兴趣的:(DevOps)