本文主要介绍如何建立起Flow与Kubernetes 服务的连接,从而对Kubernetes集群进行管理。
连接Kubernetes 集群
用户可以通过 Kubernetes云服务授权和证书文件的方式,让 Flow 将应用发布到Kubernetes 集群中。目前,Flow提供两种连接方式可供选择:
连接阿里云容器服务 Kubernetes 集群(ACK)
新建Kubernetes 集群
选择集群类型为阿里云容器服务集群,添加服务连接后,在ACK集群下拉框中您可以选择当前绑定账号可以访问的所有阿里云容器服务Kubernetes集群列表。
说明如无ACK集群可选须在创建ACK托管集群。
中创建集群,请参见配置集群操作管理权限
点击邀请按钮,您可根据具体使用需求设置管理员和使用者,以区分操作权限。
管理Kubernetes 集群
点击保存,即可在 Kubernetes 集群管理列表中查看所创建的 Kubernetes 集群。
连接自定义 Kubernetes 集群
获取集群配置config文件
自生成集群管理权限的 config 证书
如果需要对客户端做细粒度的权限控制,您可以通过以下方式手动生成 config 文件:
curl -k https://<YOUR_API_SERVER_PUBLIC_IP>:6443
创建 ~/.kube/config 文件,并修改文件内容:
apiVersion: v1 clusters: - cluster: # needed if you get error "Unable to connect to the server: x509: certificate signed by unknown authority" insecure-skip-tls-verify: true server: https://YOUR_API_SERVER_PUBLIC_IP:6443 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: LS0tLS1CRUdJTi... (base64 /etc/kubernetes/ssl/node-node1.pem) client-key-data: LS0tLS1CRUdJTiBS.. (base64 /etc/kubernetes/ssl/node-node1-key.pem)
其中 client-certificate-data 来源于:
cat /etc/kubernetes/ssl/node-node1.pem | base64 -w 0
client-key-data 来源于以下命令的输出:
cat /etc/kubernetes/ssl/node-node1-key.pem | base64 -w 0
验证证书:
$ kubectl get nodes NAME STATUS AGE VERSION my-kube Ready 2h v1.6.7+coreos.0
从阿里云容器服务控制台获取 config 文件
对于使用了阿里云容器服务的用户,您可以直接从阿里云控制台中的
,在所展示的集群列表中找到您所需要关联的集群信息,点击详情,在连接信息中获取到您所需要的 config 文件。重要使用证书的方式需要用户集群的 API Server 对外暴露公网访问地址
新建Kubernetes 集群
选择自定义集群,输入集群名称,并添加集群配置文件,配置完成后,点击保存即可。在后续的发布任务中将使用该配置文件发布应用到远程集群。
Kubernetes 集群权限管理
保存之后,可在目标集群点击修改,选择成员权限,进行权限管理。
使用Kubernetes集群
进入目标流水线编辑页面,流水线点击Kubernetes 发布任务,在Kubernetes Kubectl 发布。
的下拉列表里可以选择创建好的Kubernetes目标集群。流水线运行时,自动发布到Kubernetes目标集群中,详情请参见文档内容是否对您有帮助?