Kubernetes集群管理

本文主要介绍如何建立起Flow与Kubernetes 服务的连接,从而对Kubernetes集群进行管理。

连接Kubernetes 集群

用户可以通过 Kubernetes云服务授权和证书文件的方式,让 Flow 将应用发布到Kubernetes 集群中。目前,Flow提供两种连接方式可供选择:

连接阿里云容器服务 Kubernetes 集群(ACK)

  1. 新建Kubernetes 集群

    选择集群类型为阿里云容器服务集群,添加服务连接后,在ACK集群下拉框中您可以选择当前绑定账号可以访问的所有阿里云容器服务Kubernetes集群列表。

    说明

    如无ACK集群可选须在容器服务ACK > 集群 > 创建集群中创建集群,请参见创建ACK托管集群

    image

  2. 配置集群操作管理权限

    点击邀请按钮,您可根据具体使用需求设置管理员和使用者,以区分操作权限。

    image

  3. 管理Kubernetes 集群

    点击保存,即可在 Kubernetes 集群管理列表中查看所创建的 Kubernetes 集群。

    image

连接自定义 Kubernetes 集群

  1. 获取集群配置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 文件

    对于使用了阿里云容器服务的用户,您可以直接从阿里云控制台中的容器服务ACK > 集群,在所展示的集群列表中找到您所需要关联的集群信息,点击详情,在连接信息中获取到您所需要的 config 文件。

    重要

    使用证书的方式需要用户集群的 API Server 对外暴露公网访问地址

    imageimage

  2. 新建Kubernetes 集群

    选择自定义集群,输入集群名称,并添加集群配置文件,配置完成后,点击保存即可。在后续的发布任务中将使用该配置文件发布应用到远程集群。

    image

  3. Kubernetes 集群权限管理

    保存之后,可在目标集群点击修改,选择成员权限,进行权限管理。

    image

使用Kubernetes集群

进入目标流水线编辑页面,流水线点击Kubernetes 发布任务,在任务步骤 > Kubectl 发布 > 集群连接的下拉列表里可以选择创建好的Kubernetes目标集群。流水线运行时,自动发布到Kubernetes目标集群中,详情请参见Kubernetes Kubectl 发布

image