当我使用 Container Registry时,为什么不在工作程序关闭后重新启动 pod?
使用 IBM Cloud® Container Registry时,在集群工作程序关闭后,Pods在 Kubernetes 集群上运行的一组容器。 pod 是可运行的工作单元,它可以是独立应用程序或微服务。 不会重新启动。
Portieris 已部署。 集群工作程序显示为正常工作,但未调度任何内容。
缺省情况下,Portieris 会添加失败的已关闭许可 Webhook。 如果所有 Portieris pod 都已关闭,那么这些 pod 不可用于核准其自己的恢复。
要恢复处于此状态的集群,必须更改 Webhook 配置以使其在发生故障时打开而不是关闭。
您必须具有足够的基于角色的访问控制 (RBAC) 特权,才能在以下资源上使用 GET
和 PATCH
动词:
admissionregistration.k8s.io/v1/MutatingWebhookConfiguration
admissionregistration.k8s.io/v1/ValidatingWebhookConfiguration
有关 RBAC 的更多信息,请参阅 了解 RBAC 许可权,为用户,组或服务帐户创建定制 RBAC 许可权 和 Kubernetes-使用 RBAC 授权。
要更改 Webhook 配置以使其无法打开,并且在至少有一个 Portieris pod 正在运行时,复原 Webhook 配置以使其无法关闭,请完成以下步骤:
-
通过运行以下命令来更新
MutatingWebhookConfiguration
。kubectl edit MutatingWebhookConfiguration image-admission-config
将
failurePolicy
更改为Ignore
,保存并关闭。 -
通过运行以下命令来更新
ValidatingWebhookConfiguration
。kubectl edit ValidatingWebhookConfiguration image-admission-config
将
failurePolicy
更改为Ignore
,保存并关闭。 -
等待某些 Portieris pod 启动。 如果要检查 pod 何时启动,请运行以下命令,直到看到至少一个 pod 的 STATUS 列显示
Running
:kubectl get po -n ibm-system -l app=ibmcloud-image-enforcement
-
至少有一个 Portieris pod 正在运行时,请通过运行以下命令来更新
MutatingWebhookConfiguration
。kubectl edit MutatingWebhookConfiguration image-admission-config
将
failurePolicy
更改为Fail
,保存并关闭。 -
通过运行以下命令来更新
ValidatingWebhookConfiguration
。kubectl edit ValidatingWebhookConfiguration image-admission-config
将
failurePolicy
更改为Fail
,保存并关闭。