利用Rancher管理ACK集群

Rancher是企业级容器管理平台,可以支持在多个云平台上创建和管理Kubernetes集群。最近Rancher宣布了增加了对阿里云Kubernetes服务(ACK)的支持,将在19年初发布的Rancher 2.2版本里支持通过UI和API创建和管理ACK集群,详细见:https://rancher.com/press/2018-11-12-press-release-kubecon-china/

利用Rancher管理ACK集群

那么在2.2发布之前,有没有办法先尝鲜一下呢?有的,现在Rancher最新的版本为2.1.1,利用导入集群的功能,可以把一个创建好的ACK集群导入到Rancher中并进行管理。下面我们就来看看怎么做。

创建ACK集群

如果你还没有阿里云Kubernetes集群,可以在阿里云控制台创建一个。点击控制台右上角的“创建Kubernetes集群“的按钮,按提示即可创建成功。具体操作请参考帮助文档

安装Rancher

如果没有安装Rancher,可以按照Rancher快速入门https://rancher.com/quick-start/ 安装一个。

首先进入阿里云控制台创建一台ECS,规格和操作系统参见快速入门。本文我创建了一个4c16G ECS,操作系统为Ubuntu 16.04,并为ECS挂了一个EIP,允许从公网访问。记得安全组要打开22端口和443端口。

登录进入ECS,安装Docker CE。可以参考文档:

https://docs.docker.com/install/linux/docker-ce/ubuntu/

Docker安装成功后运行如下命令:

sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

访问https://{Rancher Server EIP地址},就可以看到Rancher的界面了

导入ACK集群

在Rancher导入ACK集群之前,需要现在ACK集群中创建一个为Rancher的admin用户创建名为cluster-admin-binding的clusterrolebinding,执行如下命令:

kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user user-xxxx

那么这个用户ID从哪里获得呢?可以在Rancher界面上进入“用户”管理界面,用其中Default Admin的用户ID即可。

clusterrolebinding创建成功后,点击界面右上脚的“添加集群”按钮,选择“导入现有的Kubernetes集群“。

利用Rancher管理ACK集群

给集群起个名字后点击创建会创建好需要部署到K8S的YAML文件,在你的ACK集群上运行YAML文件即可完成Kubernetes集群的导入工作。

注意,由于本次部署的Rancher Server使用自签名SSL证书会导致资源创建失败,建议用以下的方式创建。在Rancher Server的界面也有相应提示。

curl --insecure -sfL https://<Rancher Server EIP地址>/v3/import/xxxx.yaml | kubectl apply -f -

回到Rancher界面,等到集群变成‘Active’状态。

利用Rancher管理ACK集群

看到这个界面你可以利用Rancher UI来管理阿里云Kubernetes集群了。

支持的集群类型

本文在普通集群和托管版集群上验证通过,在Kuernetes上通过Virtual Kubeletes addon增加serveless的集群也支持用Rancher管理。Serverless addon相关内容可以参考云栖文章:

阿里云Kubernetes容器服务 - 使用弹性容器实例ECI和Virtual Kubelet快速部署Serverless Addon

小结

阿里云Kubernetes服务(ACK)已在全球十六个地区推出,为客户提供云原生方式和开放式容器技术,帮助企业加速数字化转型。通过支持Rancher,将推动企业通过Kubernetes完成向云迁移和多云管理的进程。有关ACK的详细信息可以参考https://www.aliyun.com/product/kubernetes

上一篇:阿里云ECS云服务器数据盘分区及挂载到指定目录


下一篇:Linux|UNIX下LAMP环境的搭建及常见问题[连载11]