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"}}]}}'