舰队管理FAQ

本文介绍舰队管理的常见问题。

舰队管理是否支持多个Fleet实例?

支持多个Fleet实例。ACK One默认情况下提供一个Fleet实例的配额Quota。舰队管理的Fleet实例通过Quota进行管理控制,如需更多Fleet实例配额,您可以前往阿里云配额中心进行申请。

Fleet实例管理关联集群对集群间的连通性有什么要求?

  1. Fleet实例所在VPC可以访问关联集群的API Server端点。

  2. 关联集群所在VPC可以访问Fleet实例的API Server端点。

  3. 如果Fleet实例与关联集群属于不同的VPC,需要使用云企业网CEN(Cloud Enterprise Network)将两个VPC网络打通,保证API Server端点可以互相访问;或者开启Fleet实例和关联集群的公网端点,使用公网互相连接。

是否可以使用Kubectl CLI对Fleet实例进行操作?

可以使用Kubectl CLI下发资源进行操作。Fleet实例完全兼容Kubernetes API Server,支持原生Kubernetes资源的下发。您也可以使用Helm打包应用并使用Helm CLI下发应用到Fleet实例。ACK One提供AMC Kubectl Plugin,方便多集群场景下的应用与作业管理。更多信息,请参见AMC命令行帮助

添加关联集群操作失败,报错详情:secrets"sec-c58faedb8a7864d3****-public"not find

问题现象

当您在添加关联集群时,控制台出现错误提示secrets"sec-c58faedb8a7864d3****-public"not find

问题原因

Fleet实例和关联集群网络不通,需要检查待添加的关联集群和Fleet实例之间的网络联通性。

解决方案

如果Fleet实例与关联集群属于不同的VPC,需要使用云企业网CEN(Cloud Enterprise Network)将两个VPC网络打通,保证API Server端点可以互相访问;或者开启Fleet实例和关联集群的公网端点,使用公网互相连接。关于CEN更多信息,请参见云企业网

移除关联集群失败,“namespace terminating”问题的处理方法

在移除关联集群时,由于关联集群中的某些API Services不可用,会导致关联集群上舰队命名空间ack-multiple-clusters、ack-cluster-gateway Terminating无法被彻底删除,从而影响集群被再次添加关联。解决方法如下:

  1. 执行如下命令获取对应Namespace的JSON文件。

    请将命令中<YOUR_NAMESPACE>替换为实际的Namespace名称。

    kubectl get namespace <YOUR_NAMESPACE> -o json > <YOUR_NAMESPACE>.json
  2. 删除JSON文件中spec下的finalizers数组。

  3. 执行以下命令删除Terminating状态的Namespace。

    请将命令中<YOUR_NAMESPACE>替换为实际的Namespace名称。

    kubectl replace --raw "/api/v1/namespaces/<YOUR_NAMESPACE>/finalize" -f ./<YOUR_NAMESPACE>.json
  4. 执行kubectl get ns命令确认Terminating状态的Namespace已经被删除。

如何将未正常移除关联的子集群关联到舰队?

如果您不小心删除了舰队,或清理了舰队APIServer的SLB后导致舰队无法正常使用,此时您可能需要将您未正常移除关联的子集群添加到新建的舰队,关联时会出现报错,请按照以下步骤操作以确保关联成功。

  1. 登录ACK One控制台,在左侧导航栏选择舰队 > 关联集群

  2. 关联集群页面,单击舰队名称右侧的展开按钮,选中需要切换的新舰队,单击添加关联集群

  3. 在弹出的添加关联集群面板中,选中需要关联的集群,然后单击确定

  4. 关联集群页面,选中需要关联的集群,并单击移除关联

  5. 再次单击添加关联集群,选中需要关联的集群,然后单击确定