如何创建注册集群

注册集群是用于将本地数据中心Kubernetes集群或其他云厂商Kubernetes集群接入阿里云容器服务管理平台统一管理的集群形态。本文介绍如何通过控制台创建一个注册集群并接入本地数据中心Kubernetes集群。

前提条件

支持通过公网和内网接入。更多信息,请参见接入注册集群的目标集群对于网络连通性有什么要求?

操作步骤

通过控制台创建注册集群

  1. 创建接入集群。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群

    2. 集群列表页面,单击页面右上角的创建集群

    3. 注册集群页签,完成创建集群配置项。

      配置项

      说明

      集群名称

      集群的名称。长度为1~63个字符,可包含数字、下划线(_)或中划线(-),需以英文大小写字母、中文或数字开头。

      资源组

      将鼠标悬浮于页面上方的账号全部资源,选择资源组。在控制台页面顶部选择的资源组可过滤出该资源组内的专有网络及对应的虚拟交换机。在创建集群时,只显示过滤的专有网络实例及专有网络对应的虚拟交换机实例。资源组

      地域

      集群所在的地域。

      专有网络

      您可以在已有VPC列表中选择所需的VPC和交换机。

      虚拟交换机

      您可以在选定的VPC下选择所需的节点虚拟交换机。

      API server 访问

      ACK默认为API Server默认创建一个按使用量计费的私网SLB实例。

      重要
      • 删除默认创建的SLB实例会导致API Server无法访问。

      • 您可以手动转换计费方式,请参见按量付费

      绑定公网IP

      设置是否启用绑定EIP。选中此选项,会在集群中自动绑定EIP,用于建立集群链接。

      说明

      公网接入必选项;如果云上云下集群已通过专线接通网络,可以不勾选。

      安全组

      选择自动创建普通安全组自动创建企业级安全组选择已有安全组。关于安全组的详细内容,请参见安全组概述

      说明
      • 仅白名单用户可以使用选择已有安全组功能,请前往配额平台申请。

      • 指定已有安全组时,系统默认不会为安全组配置额外的访问规则,可能会导致访问异常,请自行管理安全组规则。关于如何管理安全组规则,请参见配置集群安全组

      • ACK对于安全组出方向默认全部允许,如果您因为业务原因需要修改,请确保放行100.64.0.0/10网段。该网段用于镜像拉取、查询ECS基础信息等。

      集群删除保护

      设置是否启用集群删除保护。为防止通过控制台或API误释放集群。

      标签

      为集群绑定标签。输入键和对应的值,单击添加

      说明
      • 是必需的,而是可选的,可以不填写。

      • 不能是aliyun、acs:、http://或https://开头的字符串,不区分大小写,最多64个字符。

      • 不能是aliyun、acs:、http://或https://开头的字符串,可以为空,不区分大小写,最多128个字符。

      • 同一个资源,标签键不能重复,相同标签键(Key)的标签会被覆盖。

      • 如果一个资源已经绑定了20个标签,已有标签和新建标签会失效,您需要解绑部分标签后才能再绑定新的标签。

      服务协议

      创建集群前,需阅读并同意《服务条款》《免责声明》

    4. 在页面右下方,单击创建集群,完成集群创建。

      您可以在集群列表,看到您创建的集群。集群列表

  2. 将目标集群接入注册集群中。

    1. 在新集群(本例中为test-external-cluster1)右侧单击操作列下的详情

    2. 集群信息页面单击连接信息页签。

    3. 集群导入代理配置区域根据需要选择公网或者私网,然后单击右侧的复制,将公网或私网页签的内容复制到一个文件中,并执行kubectl命令,将目标集群注册至新集群中。

      例如,您可以新建agent.yaml文件,将以下内容复制到agent.yaml文件中,并在目标集群中执行kubectl apply -f agent.yaml命令。

      重要

      如果是公网接入集群,请选择公网集群导入配置;否则请选择私网集群导入配置。

      导入配置

    4. 在目标集群中执行以下命令,查看代理运行状况。

      kubectl -n kube-system get pod |grep ack-cluster-agent

      预期输出:

      ack-cluster-agent-5f7d568f6-6fc4k              1/1     Running   0          9s
      ack-cluster-agent-5f7d568f6-tf6fp              1/1     Running   0          9s

      注册成功后,您可以在容器服务管理控制台的Kubernetes集群列表页面,看到该集群的状态为运行中

执行结果

集群列表页面中,找到注册集群,单击操作列下的详情,查看新集群的基本信息连接信息

您可以使用该KubeConfig连接目标集群,进行应用负载的部署。关于连接集群的具体操作,请参见通过kubectl连接Kubernetes集群

通过onectl创建注册集群

  1. 安装配置onectl。具体操作,请参见通过onectl管理注册集群

  2. onectl支持通过以下两种方式创建注册集群。

    重要

    在创建注册集群时,您需要输入VPC、vSwitch、Region等信息。当注册集群设置为公网可访问时,为了提高安全性,您需要通过--acl设置注册集群SLB的访问控制白名单,包括本地集群的出网IP地址段和访问注册集群的源IP地址段。

    • 非交互式创建:执行以下命令,创建注册集群。

      onectl cluster create --region **** --vpc **** --vswitch ****
    • 交互式创建:执行以下命令,创建注册集群。

      onectl cluster create -i

    您可以执行以下命令查看具体的参数说明。

    onectl cluster create -h

    注册集群在创建完成后,会进行一系列初始化的操作,此时集群状态为initial。注册集群创建成功后,预期输出:

    Registered cluster test-registered-cluster created successfully, information of the cluster:
    name         = test-registered-cluster
    state        = initial
    cluster id   = c3c277f2fc10f45c1b86473**********
    region id    = cn-zhangjiakou
    node numbers = 0
    vpc id       = vpc-8vb95w2o172**********
    vswitch id   = vsw-8vbv8bxhput**********
  3. 集群初始化完成后进入waiting等待连接的状态,执行以下命令,查看集群状态。

    onectl cluster describe --cluster-id ****

    预期输出:

    name  = test-registered-cluster
    state = waiting
    ...
  4. 当集群状态为waiting时,执行以下命令,将目标集群接入注册集群。

    onectl cluster connect --cluster-id **** --kubeconfig ~/.kube/config --restricted true

    参数

    是否必选

    说明

    cluster-id

    上述步骤2中创建的注册集群的ID。

    kubeconfig

    目标集群的KubeConfig配置文件的路径。如未指定,将使用KUBECONFIG环境变量指向的配置文件。

    restricted

    是否以受限模式连接注册集群。更多信息,请参见注册集群ack-cluster-agent组件RBAC权限说明

    您还可以执行以下命令查看具体参数说明。

    onectl cluster connect -h
  5. 执行以下命令,查看目标集群是否接入成功。

    onectl cluster describe --cluster-id ****

    预期输出:

    name  = test-registered-cluster
    state = running
    ...

    预期输出表明集群的状态为running,注册集群已经连接成功。