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'

競合するイメージ・アドミッション・コントローラーがクラスターに既にインストールされているので、イメージ・セキュリティー制約クラスター・アドオンをインストールできません。

クラスター内に複数のイメージ・アドミッション・コントローラーがあると、ポッドが実行されないことがあります。

競合するイメージ・アドミッション・コントローラー・ソースとしては、次のものが考えられます。

  • 非推奨のコンテナー・イメージ・セキュリティー制約である 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. イメージ・アドミッション・コントローラー用の変更 Web フック構成がクラスターに存在しないことを確認して、競合するアドミッション・コントローラーが削除されたことを確認します。

    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 コマンドを実行して、アドオンのインストールを再試行します。