為何取消我的 Portieris 叢集映像檔安全強制執行安裝?

虛擬私有雲 傳統基礎設施

排除因 Webhook 應用程式故障而導致叢集主節點操作無法完成的問題。

Portieris「影像安全性強制執行」附加元件無法安裝。 您會看到與下列類似的主要狀態:

Image security enforcement update canceled. CAE008: can't enable Portieris image security enforcement because the cluster already has a conflicting image admission controller installed. For more information, see the troubleshooting docs: 'https://ibm.biz/portieris_enable'

您的叢集已安裝衝突的映像檔許可控制器,這會阻止映像檔安全強制執行叢集附加程式安裝。

當叢集裡有多個映像檔許可控制器時,Pod 可能不會執行。

潛在衝突的映像檔許可控制器來源包括:

  • 已淘汰容器映像檔安全強制執行 Helm 圖表。
  • 先前手動安裝的開放程式碼 Portieris 專案。

識別並移除衝突的映像檔許可控制器。

  1. 請檢查現有的映像檔許可控制器。

    • 檢查叢集裡是否有現有的容器映像檔安全強制執行部署。 如果未傳回任何輸出,則您沒有部署。
        oc get deploy cise-ibmcloud-image-enforcement -n ibm-system
        ```
        輸出範例
        ```sh {: pre}
        NAME                              READY   UP-TO-DATE   AVAILABLE   AGE
        cise-ibmcloud-image-enforcement   3/3     3            3           129m
        ```
    *   檢查叢集裡是否有現有的 Portieris 部署。 如果未傳回任何輸出,則您沒有部署。
    ```sh {: pre}
        oc get deployment --all-namespaces -l app=portieries
        ```
        輸出範例
        ```sh {: pre}
        NAMESPACE     NAME        READY   UP-TO-DATE   AVAILABLE   AGE
        portieris     portieris   3/3     3            3           8m8s
        ```
    
  2. 解除安裝衝突的部署。

    oc delete deployment <deployment> -n <namespace>
    
  3. 確認已移除衝突的許可控制器,方法是檢查叢集不再具有映像檔許可控制器的變異 Webhook 配置。

    oc get MutatingWebhookConfiguration image-admission-config
    

    輸出範例

    Error from server (NotFound): mutatingwebhookconfigurations.admissionregistration.k8s.io "image-admission-config" not found
    
  4. 執行 ibmcloud oc cluster image-security enable 指令,重試安裝附加程式。