15.9. 클러스터에 참여하지 않는 에이전트 서비스 실패 및 에이전트
부팅 아티팩트를 사용하여 시스템을 부팅한 후 에이전트가 클러스터에 참여하지 못하는 경우도 있습니다. agent.service 로그에 다음 오류가 있는지 확인하여 이 문제를 확인할 수 있습니다.
Error: copying system image from manifest list: Source image rejected: A signature was required, but no signature exists
참고
이 문제는 서명이 없는 경우 이미지 서명 확인이 실패하기 때문에 발생합니다. 이 문제를 해결하려면 컨테이너 정책을 수정하여 서명 확인을 비활성화할 수 있습니다.
프로세스
-
InfraEnv매니페스트에ignitionConfigOverride필드를 추가하여/etc/containers/policy.json파일을 재정의합니다. 이렇게 하면 컨테이너 이미지에 대한 서명 확인이 비활성화됩니다. 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"}}]}}'