8.5. 이미지 서명 config map 생성

클러스터를 업데이트하기 전에 사용하는 릴리스 이미지의 서명이 포함된 config map을 수동으로 생성해야합니다. 이 서명을 통해 CVO (Cluster Version Operator)는 예상되는 이미지와 실제 이미지 서명을 비교하여 릴리스 이미지가 변경되지 않았는지 확인할 수 있습니다.

버전 4.4.8 이상에서 업그레이드하는 경우 oc CLI를 사용하여 config map을 생성할 수 있습니다. 이전 버전에서 업그레이드하는 경우 수동 방법을 사용해야합니다.

8.5.1. 이미지 서명 config map 수동으로 생성

이미지 서명 config map을 만들고 업데이트하려는 클러스터에 적용합니다.

참고

클러스터를 업데이트할 때 마다 다음 단계를 수행해야합니다.

프로세스

  1. OpenShift Container Platform 업데이트 경로 지식 베이스 문서를 참조하여 클러스터의 유효한 업데이트 경로를 결정합니다.
  2. OCP_RELEASE_NUMBER 환경 변수에 버전을 추가합니다.

    $ OCP_RELEASE_NUMBER=<release_version> 1
    1
    <release_version>에 대해 클러스터를 업데이트하려는 OpenShift Container Platform 버전에 해당하는 태그를 지정합니다 (예: 4.4.0).
  3. ARCHITECTURE 환경 변수에 클러스터의 시스템 아키텍처를 추가합니다.

    $ ARCHITECTURE=<server_architecture> 1
    1
    server_architecture에 대해 x86_64과 같은 서버 아키텍처를 지정합니다.
  4. Quay 에서 릴리스 이미지 다이제스트를 가져옵니다.

    $ DIGEST="$(oc adm release info quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_NUMBER}-${ARCHITECTURE} | sed -n 's/Pull From: .*@//p')"
  5. 다이제스트 알고리즘을 설정합니다.

    $ DIGEST_ALGO="${DIGEST%%:*}"
  6. 다이제스트 서명을 설정합니다.

    $ DIGEST_ENCODED="${DIGEST#*:}"
  7. mirror.openshift.com 웹 사이트에서 이미지 서명을 가져옵니다.

    $ SIGNATURE_BASE64=$(curl -s "https://mirror.openshift.com/pub/openshift-v4/signatures/openshift/release/${DIGEST_ALGO}=${DIGEST_ENCODED}/signature-1" | base64 -w0 && echo)
  8. config map을 생성합니다.

    $ cat >checksum-${OCP_RELEASE_NUMBER}.yaml <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: release-image-${OCP_RELEASE_NUMBER}
      namespace: openshift-config-managed
      labels:
        release.openshift.io/verification-signatures: ""
    binaryData:
      ${DIGEST_ALGO}-${DIGEST_ENCODED}: ${SIGNATURE_BASE64}
    EOF
  9. 업데이트할 클러스터에 config map을 적용합니다.

    $ oc apply -f checksum-${OCP_RELEASE_NUMBER}.yaml