15.9. エージェントサービスの障害とエージェントがクラスターに参加しない問題
場合によっては、ブートアーティファクトを使用してマシンを起動した後、エージェントがクラスターに参加できないことがあります。この問題を確認するには、agent.service ログで次のエラーを確認します。
Error: copying system image from manifest list: Source image rejected: A signature was required, but no signature exists
注記
この問題は、署名が存在しない場合にイメージ署名の検証が失敗するために発生します。回避策として、コンテナーポリシーを変更して署名の検証を無効にできます。
手順
-
/etc/containers/policy.jsonファイルをオーバーライドするには、InfraEnvマニフェストにignitionConfigOverrideフィールドを追加します。これにより、コンテナーイメージの署名検証が無効になります。 ignitionConfigOverride内の base64 でエンコードされたコンテンツを、イメージレジストリーに応じて、必要な/etc/containers/policy.json設定に置き換えます。例
{ "default": [ { "type": "insecureAcceptAnything" } ], "transports": { "docker": { "<REGISTRY1>": [ { "type": "insecureAcceptAnything" } ], "REGISTRY2": [ { "type": "insecureAcceptAnything" } ] }, "docker-daemon": { "": [ { "type": "insecureAcceptAnything" } ] } } }ignitionConfigOverrideを含む InfraEnv マニフェストの例apiVersion: agent-install.openshift.io/v1beta1 kind: InfraEnv metadata: name: <hosted_cluster_name> namespace: <hosted_control_plane_namespace> spec: cpuArchitecture: s390x pullSecretRef: name: pull-secret sshAuthorizedKey: <ssh_public_key> ignitionConfigOverride: '{"ignition":{"version":"3.2.0"},"storage":{"files":[{"path":"/etc/containers/policy.json","mode":420,"overwrite":true,"contents":{"source":"data:text/plain;charset=utf-8;base64,ewogICAgImRlZmF1bHQiOiBbCiAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJpbnNlY3VyZUFjY2VwdEFueXRoaW5nIgogICAgICAgIH0KICAgIF0sCiAgICAidHJhbnNwb3J0cyI6CiAgICAgICAgewogICAgICAgICAgICAiZG9ja2VyLWRhZW1vbiI6CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIiI6IFt7InR5cGUiOiJpbnNlY3VyZUFjY2VwdEFueXRoaW5nIn1dCiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQp9"}}]}}'