2.10. 빌드에서 Red Hat 서브스크립션 사용
OpenShift Container Platform에서 권한이 있는 빌드를 실행하려면 다음 섹션을 사용합니다.
2.10.1. Red Hat Universal Base Image에 대한 이미지 스트림 태그 생성
빌드 내에서 Red Hat 서브스크립션을 사용하려면 UBI(Universal Base Image)를 참조하는 이미지 스트림 태그를 생성합니다.
클러스터의 모든 프로젝트에서 UBI를 사용할 수 있도록 하려면 openshift
네임스페이스에 이미지 스트림 태그를 추가합니다. 또는 UBI를 특정 프로젝트에서 사용할 수 있도록 하려면 해당 프로젝트에 이미지 스트림 태그를 추가합니다.
이미지 스트림 태그를 이러한 방식으로 사용할 때의 이점은 다른 사용자에게 가져오기 보안을 노출하지 않고 설치의 registry.redhat.io
자격 증명에 따라 UBI에 대한 액세스 권한을 부여할 수 있다는 점입니다. 이 방식은 각 개발자에게 각 프로젝트에서 registry.redhat.io
자격 증명을 사용하여 가져오기 보안을 설치하도록 요구하는 방식보다 편리합니다.
프로세스
openshift
네임스페이스에ImageStreamTag
를 생성하려면 모든 프로젝트의 개발자가 다음을 입력하면 됩니다.$ oc tag --source=docker registry.redhat.io/ubi8/ubi:latest ubi:latest -n openshift
작은 정보다음 YAML을 적용하여
openshift
네임스페이스에ImageStreamTag
를 생성할 수도 있습니다.apiVersion: image.openshift.io/v1 kind: ImageStream metadata: name: ubi namespace: openshift spec: tags: - from: kind: DockerImage name: registry.redhat.io/ubi8/ubi:latest name: latest referencePolicy: type: Source
단일 프로젝트에서
ImageStreamTag
를 생성하려면 다음을 입력합니다.$ oc tag --source=docker registry.redhat.io/ubi8/ubi:latest ubi:latest
작은 정보또는 다음 YAML을 적용하여 단일 프로젝트에서
ImageStreamTag
를 생성할 수 있습니다.apiVersion: image.openshift.io/v1 kind: ImageStream metadata: name: ubi spec: tags: - from: kind: DockerImage name: registry.redhat.io/ubi8/ubi:latest name: latest referencePolicy: type: Source
2.10.2. 서브스크립션 자격을 빌드 보안으로 추가
Red Hat 서브스크립션을 사용하여 콘텐츠를 설치하는 빌드에는 자격 키가 빌드 보안으로 포함되어야 합니다.
사전 요구 사항
서브스크립션을 통해 Red Hat 인타이틀먼트에 액세스할 수 있어야 합니다. 인타이틀먼트 보안은 Insights Operator에 의해 자동으로 생성됩니다.
RHEL(Red Hat Enterprise Linux) 7을 사용하여 인타이틀먼트 빌드를 수행할 때 yum
명령을 실행하기 전에 Dockerfile에 다음 지침이 있어야 합니다.
RUN rm /etc/rhsm-host
프로세스
빌드 구성의 Docker 전략에 빌드 볼륨으로 etc-pki-entitlement 보안을 추가합니다.
strategy: dockerStrategy: from: kind: ImageStreamTag name: ubi:latest volumes: - name: etc-pki-entitlement mounts: - destinationPath: /etc/pki/entitlement source: type: Secret secret: secretName: etc-pki-entitlement
2.10.3. 서브스크립션 관리자를 사용한 빌드 실행
2.10.3.1. 서브스크립션 관리자를 사용하는 Docker 빌드
Docker 전략 빌드에서는 Subscription Manager를 사용하여 서브스크립션 콘텐츠를 설치할 수 있습니다.
사전 요구 사항
인타이틀먼트 키를 빌드 전략 볼륨으로 추가해야 합니다.
절차
다음을 예제 Dockerfile로 사용하여 서브스크립션 관리자를 통해 콘텐츠를 설치합니다.
FROM registry.redhat.io/ubi8/ubi:latest RUN dnf search kernel-devel --showduplicates && \ dnf install -y kernel-devel
2.10.4. Red Hat Satellite 서브스크립션을 사용하여 빌드 실행
2.10.4.1. 빌드에 Red Hat Satellite 구성 추가
Red Hat Satellite를 사용하여 콘텐츠를 설치하는 빌드에서는 Satellite 리포지토리에서 콘텐츠를 가져오기 위해 적절한 구성을 제공해야 합니다.
사전 요구 사항
Satellite 인스턴스에서 콘텐츠를 다운로드하는
yum
호환 리포지토리 구성 파일을 제공하거나 생성해야 합니다.리포지토리 구성 샘플
[test-<name>] name=test-<number> baseurl = https://satellite.../content/dist/rhel/server/7/7Server/x86_64/os enabled=1 gpgcheck=0 sslverify=0 sslclientkey = /etc/pki/entitlement/...-key.pem sslclientcert = /etc/pki/entitlement/....pem
절차
Satellite 리포지토리 구성 파일이 포함된
ConfigMap
을 생성합니다.$ oc create configmap yum-repos-d --from-file /path/to/satellite.repo
Satellite 리포지토리 구성 및 인타이틀먼트 키를 빌드 볼륨으로 추가합니다.
strategy: dockerStrategy: from: kind: ImageStreamTag name: ubi:latest volumes: - name: yum-repos-d mounts: - destinationPath: /etc/yum.repos.d source: type: ConfigMap configMap: name: yum-repos-d - name: etc-pki-entitlement mounts: - destinationPath: /etc/pki/entitlement source: type: Secret secret: secretName: etc-pki-entitlement
2.10.4.2. Red Hat Satellite 서브스크립션을 사용하는 Docker 빌드
Docker 전략 빌드에서는 Red Hat Satellite 리포지토리를 사용하여 서브스크립션 콘텐츠를 설치할 수 있습니다.
사전 요구 사항
- 자격 키와 Satellite 리포지토리 구성을 빌드 볼륨으로 추가했습니다.
절차
다음을 예제 Dockerfile로 사용하여 Satellite를 통해 콘텐츠를 설치합니다.
FROM registry.redhat.io/ubi8/ubi:latest RUN dnf search kernel-devel --showduplicates && \ dnf install -y kernel-devel