quay.io 미러링 없이 제한된 환경에서 Openshift Z-patch 업그레이드

5074 단어 devopsdockeropenshift
버전 4.2부터 Openshift는 인터넷에 연결되지 않은 클러스터를 설정 및 업그레이드할 수 있는 연결 해제된 설치 방법을 제공합니다.

이 방법은 내부 레지스트리에 설치하고 imagecontentsourcepolicy를 사용하여 미러를 선언하여 quay.io의 모든 URL이 내부에서 즉석에서 대체되도록 선언할 사전 복사본the artifacts from the release을 의미합니다.

일상적인 관리에서 이것은 모니터하고 필요할 때 복사하거나 스크립트를 정기적으로 실행해야 하고 사용 가능한 최신 릴리스(절대 사용하지 않더라도)를 복사해야 하기 때문에 그리 편리하지 않습니다.

그러나 quay.io에 대한 역 캐시(또는 JFrog Artifactory와 같은 역 캐시가 있는 레지스트리가 있는 경우 미러링할 필요 없이 이를 통해 직접 업그레이드할 수 있습니다.

나는 당신이 이미 원격 미러를 설정했다고 가정하므로 다음이 작동합니다.

podman pull repository.mycorp.com:5000/openshift-release-dev/ocp-release@sha256:4841bd519be0d5c533d9b4da2996a6d0d340ae1eddb8a6ea213958c7460dcdb4

아티팩트를 가리키도록 imagecontentsourcepolicy 생성/업데이트



apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
  name: artifactory-remote
spec:
  repositoryDigestMirrors:
  - mirrors:
    - repository.mycorp.com:5000/openshift-release-dev
    source: quay.io/openshift-release-dev

이제 인터넷에 액세스할 수 있는 노드에서 이미지의 다이제스트를 생성합니다.

#!/bin/bash
# TARGET_VERSION should be in format x.y.z, for example 4.3.28
export OCP_RELEASE_NUMBER=${TARGET_VERSION}
export DIGEST="$(oc adm release info quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_NUMBER}-x86_64 | sed -n 's/Pull From: .*@//p')"
export SIGNATURE_BASE64=$(curl -s "https://mirror.openshift.com/pub/openshift-v4/signatures/openshift/release/$(echo $DIGEST | cut -d: -f1)=$(echo $DIGEST | cut -d: -f2)/signature-1" | base64 -w0 && echo)
export DIGEST_ALGO=$(echo $DIGEST | cut -d: -f1)
export DIGEST_SIGNATURE=$(echo $DIGEST | cut -d: -f2)

cat <<EOF | oc apply -f -
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_SIGNATURE}: ${SIGNATURE_BASE64}
EOF

이제 quay.io를 미러링한 것처럼 redhat에서 업그레이드 절차를 사용할 준비가 되었습니다.

좋은 웹페이지 즐겨찾기