ACK One注册集群是用于将本地数据中心Kubernetes集群或其他云厂商Kubernetes集群接入阿里云容器服务管理平台统一管理的集群形态。
阅读本文前,请通过注册集群概述了解ACK One注册集群相关概念及应用场景。
操作步骤
通过控制台创建ACK One注册集群并接入目标集群
创建ACK One注册集群
- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在页面左侧顶部,选择目标资源所在的资源组和地域。  
- 在集群列表页面,单击创建集群。 
- 单击ACK One 注册集群页签,按照页面指引完成集群配置。 - 配置项 - 说明 - 集群名称 - 自定义集群名称。 - 地域 - 集群资源(ECS实例、云盘等)所处地域。地域与用户和资源部署地域的距离越近,网络时延越低。 - IPv6双栈 - 专有网络 - 集群的专有网络VPC。为保障高可用,建议选择2个及以上不同可用区。 - 自动创建:ACK在已选择的可用区下创建对应vSwitch。 
- 使用已有:选择vSwitch,指定集群的可用区,可新建或使用已有vSwitch。 
 - 云资源及计费说明:  VPC VPC- 交换机 - 在列表中根据可用区选择已有vSwitch交换机,或单击创建虚拟交换机创建新的vSwitch。集群控制面与默认节点池将使用此处指定的vSwitch。推荐选择多个不同可用区的vSwitch,更好地保障集群高可用。 - 安全组 - API server 访问 - ACK自动新建一个按量付费的私网CLB实例作为API Server的内网连接端点。请勿删除该CLB实例,删除后API Server将无法访问且无法恢复。 - 若需使用已有CLB实例,请提交工单申请。选择使用已有的专有网络后,可选择负载均衡来源为使用已有。 - 可选开启使用 EIP 暴露 API Server。 - 开放:为 API Server 私网 CLB 实例绑定EIP,支持从公网访问API Server,连接并管理集群。 - 这并不代表集群内资源可以访问公网。如需让集群内资源访问公网,需勾选为专有网络配置 SNAT。 
- 不开放:仅能在VPC内使用KubeConfig连接并操作集群。 
 - 如需后续启用,请参见实现从公网访问API Server。 - 自2024年12月01日起,新建CLB实例不再支持包年包月付费类型,同时将新增收取实例费,请参见【产品公告】关于取消新增集群API Server负载均衡CLB包年包月付费的公告、传统型负载均衡CLB计费项调整公告。 
- 配置完成后,单击创建集群。创建完成后,可以在集群列表看到创建的集群。  
将目标集群接入ACK One注册集群
- 找到新创建的ACK One注册集群,单击其右侧操作列下的详情。 
- 在集群信息页面单击连接信息页签。在连接信息页签中根据需要选择公网或者私网,然后单击右侧的复制。  
- 将复制的内容保存为 - agent.yaml文件.,并在目标集群中执行- kubectl apply -f agent.yaml,将目标集群注册至新建ACK One注册集群中。
- 在目标集群中查看代理运行状况。 - 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- 注册成功后,可以在容器服务管理控制台的集群列表页面,看到该集群的状态为运行中。 
执行结果
在集群列表页面中,找到对应的ACK One注册集群,单击操作列下的详情,查看新集群的基本信息和连接信息。
可以使用该KubeConfig连接目标集群,进行应用负载的部署。关于连接集群的具体操作,请参见通过kubectl连接Kubernetes集群。
通过onectl创建ACK One注册集群并接入目标集群
- 安装配置onectl。具体操作,请参见通过onectl管理注册集群。 
- onectl支持通过以下两种方式创建ACK One注册集群。 重要- 在创建ACK One注册集群时,需要输入VPC、vSwitch、Region等信息。 - 非交互式创建: - 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**********
- 集群初始化完成后进入 - waiting等待连接的状态,查看集群状态。- onectl cluster describe --cluster-id ****- 预期输出: - name = test-registered-cluster state = waiting ...
- 当集群状态为 - waiting时,执行以下命令,将目标集群接入ACK One注册集群。- onectl cluster connect --cluster-id **** --kubeconfig ~/.kube/config --restricted true- 参数 - 是否必选 - 说明 - cluster-id - 是 - 上述步骤2中创建的ACK One注册集群的ID。 - kubeconfig - 否 - 目标集群的KubeConfig配置文件的路径。如未指定,将使用KUBECONFIG环境变量指向的配置文件。 - restricted - 否 - 是否以受限模式连接ACK One注册集群。更多信息,请参见注册集群ack-cluster-agent组件RBAC权限说明。 - 还可以查看具体参数说明。 - onectl cluster connect -h
- 查看目标集群是否接入成功。 - onectl cluster describe --cluster-id ****- 预期输出: - name = test-registered-cluster state = running ...- 预期输出表明集群状态为running,ACK One注册集群已经成功连接。 

