本文介绍舰队管理的常见问题。
舰队管理是否支持多个Fleet实例?
支持多个Fleet实例。ACK One默认情况下提供一个Fleet实例的配额Quota。舰队管理的Fleet实例通过Quota进行管理控制,如需更多Fleet实例配额,您可以前往阿里云配额中心进行申请。
Fleet实例管理关联集群对集群间的连通性有什么要求?
Fleet实例所在VPC可以访问关联集群的API Server端点。
关联集群所在VPC可以访问Fleet实例的API Server端点。
如果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无法被彻底删除,从而影响集群被再次添加关联。解决方法如下:
执行如下命令获取对应Namespace的JSON文件。
请将命令中
<YOUR_NAMESPACE>
替换为实际的Namespace名称。kubectl get namespace <YOUR_NAMESPACE> -o json > <YOUR_NAMESPACE>.json
删除JSON文件中
spec
下的finalizers
数组。执行以下命令删除Terminating状态的Namespace。
请将命令中
<YOUR_NAMESPACE>
替换为实际的Namespace名称。kubectl replace --raw "/api/v1/namespaces/<YOUR_NAMESPACE>/finalize" -f ./<YOUR_NAMESPACE>.json
执行
kubectl get ns
命令确认Terminating状态的Namespace已经被删除。
如何将未正常移除关联的子集群关联到舰队?
如果您不小心删除了舰队,或清理了舰队APIServer的SLB后导致舰队无法正常使用,此时您可能需要将您未正常移除关联的子集群添加到新建的舰队,关联时会出现报错,请按照以下步骤操作以确保关联成功。
登录ACK One控制台,在左侧导航栏选择 。
在关联集群页面,单击舰队名称右侧的展开按钮,选中需要切换的新舰队,单击添加关联集群。
在弹出的添加关联集群面板中,选中需要关联的集群,然后单击确定。
在关联集群页面,选中需要关联的集群,并单击移除关联。
再次单击添加关联集群,选中需要关联的集群,然后单击确定。