容器服务 Kubernetes 版会为不同的阿里云账号、RAM用户或角色签发带有其身份信息的KubeConfig凭证用于连接集群。如果您需要恢复误清除的KubeConfig,或回滚某个历史版本的KubeConfig,您可以通过KubeConfig回收站功能来实现。
注意事项
您的账号需为阿里云账号(主账号)或有指定权限的RAM用户或角色。
如使用RAM用户或角色,请确保您的账号已有AliyunCSFullAccess、AliyunRAMReadOnlyAccess权限。
仅支持恢复过去30天内被清除的KubeConfig。超过30天的清除记录无法恢复。关于清除Kubeconfig,请参见清除KubeConfig。
在一个ACK集群中,一个阿里云账号、RAM用户或RAM角色只能保有一个正在生效的KubeConfig。如果某集群对应的阿里云账号、RAM用户或角色账号下已存在生效中的KubeConfig,则过往的KubeConfig无法恢复。
使用场景
场景一:误清除某KubeConfig,需恢复该Kubeconfig
因操作失误,管理员A清除了RAM用户B在集群Cluster1中的KubeConfig,用户B随即发现无法连接Cluster1。此时,用户B申请管理员A在回收站中重新恢复误清除的KubeConfig。
场景二:当前KubeConfig不适用,需恢复历史的KubeConfig
管理员A清除了RAM用户B在集群Cluster1中v1版本的KubeConfig,RAM用户B在控制台重新获取了v2版本的KubeConfig用于连接集群。但管理员A发现业务系统中仍然有业务应用依赖v1版本的KubeConfig,且v1版本的KubeConfig关联了许多RBAC权限,故希望恢复v1版本的KubeConfig。
此时,管理员A需要首先清除v2版本的KubeConfig,然后在回收站查询v1、v2两个版本的KubeConfig记录,并选择恢复v1版本的KubeConfig。
恢复KubeConfig
您可以恢复单个或多个KubeConfig及其关联的RBAC权限。
登录容器服务管理控制台,在左侧导航栏选择授权管理。
单击KubeConfig 管理页签,然后单击页面右上角的KubeConfig 回收站。
KubeConfig回收站展示30天内已被清除的KubeConfig列表。列表字段说明如下。
列表项
说明
用户信息
该KubeConfig对应阿里云账号或RAM用户、角色的名称及ID。
集群信息
该KubeConfig对应集群的名称以及ID。
证书信息
该KubeConfig的客户端证书CN(CommonName)。关于CN的更多信息,请参见参考资料:客户端证书CN。
RBAC 权限
该KubeConfig关联的RBAC权限列表。
回收时间
该KubeConfig被删除的时间,即进入回收站的时间。
清理时间
该KubeConfig被永久清理的时间。
回收站仅支持恢复过去30天内被清除的KubeConfig。超过30天的待回收条目会被自动清理且无法找回。
单击恢复,恢复目标记录对应的KubeConfig及其关联的RBAC权限。
您也可以勾选多条记录,批量恢复。批量恢复时,请避免KubeConfig冲突。
删除KubeConfig记录
如充分评估后无需再使用某个KubeConfig,您可以在回收站中删除其对应的记录。删除后,记录无法回滚。
登录容器服务管理控制台,在左侧导航栏选择授权管理。
单击KubeConfig 管理页签,然后单击页面右上角的KubeConfig 回收站。
确认待删除的回收站记录后,单击删除,并在删除前填写证书CN完成确认。
参考资料:客户端证书CN
在KubeConfig中,客户端证书CN (CommonName) 是访问Kubernetes集群的客户端身份信息。不同的KubeConfig对应不同的客户端身份信息。更多信息,请参见kube-apiserver。
ACK集群中,客户端证书CN的组成格式为{UserID}-{后缀ID}
。其中,UserID
为KubeConfig对应的RAM用户或角色ID;后缀ID
为随机字符串,在每次清除或吊销KubeConfig后均会自动更新,防止历史的KubeConfig仍然可以正常访问集群。
常见问题
同一集群下,为什么同一RAM用户在回收站存在多条KubeConfig记录?
由于证书CN的更新,在KubeConfig回收站中,即使是同一集群的同一RAM用户也会存在多个KubeConfig记录。
回收站存在多个KubeConfig记录时,如何识别待恢复的KubeConfig?
您可以查看记录对应的RBAC权限来选择待恢复的KubeConfig,也可以根据证书CN来区分KubeConfig记录,选择恰当的KubeConfig记录进行恢复。您可以通过以下命令查看某一份KubeConfig的CN,然后根据证书CN在回收站中查找对应记录并进行恢复。
openssl x509 -in <(kubectl config view --kubeconfig {kubeconfig 文件名} --raw --minify --output=jsonpath='{.users[0].user.client-certificate-data}'|base64 -d) -noout -subject
为什么有回收站条目的恢复按钮置灰?
在某一集群中,一个RAM用户或角色只能拥有一个生效中的KubeConfig。因此,当该RAM用户或角色在某一集群中已存在生效中的KubeConfig时,历史的KubeConfig便无法恢复,以避免集群KubeConfig冲突。
如果需要恢复历史的KubeConfig,请将当前生效的KubeConfig清除,然后再恢复历史的KubeConfig。关于如何清除KubeConfig,请参见清除KubeConfig。
有哪些情况可能会导致KubeConfig恢复失败?
操作人员的RBAC权限不足:恢复回收站KubeConfig记录时,会连带恢复关联的RBAC权限。如果操作人员没有对应集群的RBAC权限,可能会导致KubeConfig恢复失败。相关授权步骤请参见配置RAM用户或RAM角色RBAC权限。
集群状态异常:集群状态异常时可能无法连接集群,继而导致KubeConfig恢复失败。
KubeConfig冲突:在一个ACK集群中,一个RAM用户或角色只能保有一个正在生效的KubeConfig。如果您在批量恢复KubeConfig记录时KubeConfig存在冲突,ACK默认恢复最近的一条记录,其余记录均会恢复失败。
相关文档
当企业内部员工离职或KubeConfig有潜在安全风险时,请及时清理和解除授权。具体操作,请参见清除KubeConfig。
当签发的KubeConfig疑似泄露时,请吊销该集群的KubeConfig以生成新的KubeConfig。具体操作,请参见吊销集群的KubeConfig凭证。