5.4. 이미지 서명 ConfigMap 생성
클러스터를 업데이트하기 전에 사용하는 릴리스 이미지의 서명이 포함된 ConfigMap을 수동으로 생성해야합니다. 이 서명을 통해 CVO (Cluster Version Operator)는 예상되는 이미지와 실제 이미지 서명을 비교하여 릴리스 이미지가 변경되지 않았는지 확인할 수 있습니다.
버전 4.4.8 이상에서 업그레이드하는 경우 oc
CLI를 사용하여 ConfigMap을 생성할 수 있습니다. 이전 버전에서 업그레이드하는 경우 수동 방법을 사용해야합니다.
5.4.1. oc
CLI를 사용하여 이미지 서명 확인을 위한 ConfigMap 생성
클러스터를 업데이트하기 전에 사용하는 릴리스 이미지의 서명이 포함된 ConfigMap을 수동으로 생성해야합니다. 이 서명을 통해 CVO (Cluster Version Operator)는 예상되는 이미지와 실제 이미지 서명을 비교하여 릴리스 이미지가 변경되지 않았는지 확인할 수 있습니다.
버전 4.4.8 이전 릴리스에서 업그레이드하는 경우 이 절차 대신 ConfigMap을 생성하기위한 수동 방법을 사용해야합니다. 이 절차에 사용되는 명령은 이전 버전의 oc
명령행 인터페이스 (CLI)에서 제공되지 않습니다.
전제 조건
-
oc
로 알려진 OpenShift 명령행 인터페이스 (CLI)를 설치합니다 (버전 4.4.8 이상).
프로세스
- mirror.openshift.com 또는 Google Cloud Storage (GCS) 에서 업그레이드하려는 버전의 이미지 서명을 가져옵니다.
-
oc
명령행 인터페이스 (CLI)를 사용하여 업그레이드중인 클러스터에 로그인합니다. 미러링된 릴리스 이미지 서명 ConfigMap을 연결된 클러스터에 적용합니다.
$ oc apply -f <image_signature_file> 1
- 1
<image_signature_file>
의 경우 파일의 경로와 이름을 지정합니다 (예:mirror/config/signature-sha256-81154f5c03294534.yaml
).
5.4.2. 이미지 서명 ConfigMap 수동으로 생성
이미지 서명 ConfigMap을 만들고 업데이트하려는 클러스터에 적용합니다.
클러스터를 업데이트할 때 마다 다음 단계를 수행해야합니다.
프로세스
- OpenShift Container Platform 업그레이드 경로 지식 베이스 문서를 참조하여 클러스터의 유효한 업그레이드 경로를 결정합니다.
OCP_RELEASE_NUMBER
환경 변수에 버전을 추가합니다.$ OCP_RELEASE_NUMBER=<release_version> 1
- 1
<release_version>
에 대해 클러스터를 업데이트하려는 OpenShift Container Platform 버전에 해당하는 태그를 지정합니다 (예:4.4.0
).
ARCHITECTURE
환경 변수에 클러스터의 시스템 아키텍처를 추가합니다.$ ARCHITECTURE=<server_architecture> 1
server_architecture
에 대해x86_64
과 같은 서버 아키텍처를 지정합니다.
Quay 에서 릴리스 이미지 다이제스트를 가져옵니다.
$ DIGEST="$(oc adm release info quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_NUMBER}-${ARCHITECTURE} | sed -n 's/Pull From: .*@//p')"
다이제스트 알고리즘을 설정합니다.
$ DIGEST_ALGO="${DIGEST%%:*}"
다이제스트 서명을 설정합니다.
$ DIGEST_ENCODED="${DIGEST#*:}"
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)
ConfigMap을 생성합니다.
$ 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
업데이트할 클러스터에 ConfigMap을 적용합니다.
$ oc apply -f checksum-${OCP_RELEASE_NUMBER}.yaml