16.2. 단일 노드 OpenShift 클러스터를 위한 이미지 기반 설치 준비
단일 노드 OpenShift 클러스터에 대한 이미지 기반 설치를 준비하려면 다음 작업을 완료해야 합니다.
- Lifecycle Agent를 사용하여 시드 이미지를 생성합니다.
- 모든 소프트웨어 구성 요소가 필수 버전을 충족하는지 확인합니다. 자세한 내용은 "이미지 기반 설치 및 배포에 대한 소프트웨어 사전 요구 사항"을 참조하십시오.
16.2.1. 라이프사이클 에이전트 설치
초기 클러스터에서 시드 이미지를 생성하려면 Lifecycle Agent를 사용합니다. OpenShift CLI(oc
) 또는 웹 콘솔을 사용하여 라이프사이클 에이전트를 설치할 수 있습니다.
16.2.1.1. CLI를 사용하여 라이프사이클 에이전트 설치
OpenShift CLI(oc
)를 사용하여 Lifecycle Agent를 설치할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 사용자로 로그인했습니다.
프로세스
Lifecycle Agent에 대한
Namespace
오브젝트 YAML 파일을 생성합니다.apiVersion: v1 kind: Namespace metadata: name: openshift-lifecycle-agent annotations: workload.openshift.io/allowed: management
다음 명령을 실행하여
네임스페이스
CR을 생성합니다.$ oc create -f <namespace_filename>.yaml
Lifecycle Agent에 대한
OperatorGroup
오브젝트 YAML 파일을 생성합니다.apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-lifecycle-agent namespace: openshift-lifecycle-agent spec: targetNamespaces: - openshift-lifecycle-agent
다음 명령을 실행하여
OperatorGroup
CR을 생성합니다.$ oc create -f <operatorgroup_filename>.yaml
Lifecycle Agent에 대한
서브스크립션
CR을 생성합니다.apiVersion: operators.coreos.com/v1 kind: Subscription metadata: name: openshift-lifecycle-agent-subscription namespace: openshift-lifecycle-agent spec: channel: "stable" name: lifecycle-agent source: redhat-operators sourceNamespace: openshift-marketplace
다음 명령을 실행하여
서브스크립션
CR을 생성합니다.$ oc create -f <subscription_filename>.yaml
검증
설치에 성공했는지 확인하려면 다음 명령을 실행하여 CSV 리소스를 검사합니다.
$ oc get csv -n openshift-lifecycle-agent
출력 예
NAME DISPLAY VERSION REPLACES PHASE lifecycle-agent.v4.17.0 Openshift Lifecycle Agent 4.17.0 Succeeded
다음 명령을 실행하여 Lifecycle Agent가 실행 중인지 확인합니다.
$ oc get deploy -n openshift-lifecycle-agent
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE lifecycle-agent-controller-manager 1/1 1 1 14s
16.2.1.2. 웹 콘솔을 사용하여 라이프사이클 에이전트 설치
OpenShift Container Platform 웹 콘솔을 사용하여 Lifecycle Agent를 설치할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인했습니다.
프로세스
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub로 이동합니다. - 사용 가능한 Operator 목록에서 Lifecycle Agent 를 검색한 다음 설치를 클릭합니다.
- Operator 설치 페이지의 클러스터의 특정 네임스페이스에서 openshift-lifecycle-agent 를 선택합니다.
- 설치를 클릭합니다.
검증
설치에 성공했는지 확인하려면 다음을 수행하십시오.
-
Operators
설치된 Operators를 클릭합니다. Lifecycle Agent가 openshift-lifecycle-agent 프로젝트에 InstallSucceeded 상태로 나열되어 있는지 확인합니다.
참고설치 중에 Operator는 실패 상태를 표시할 수 있습니다. 나중에 InstallSucceeded 메시지와 함께 설치에 성공하면 이 실패 메시지를 무시할 수 있습니다.
-
Operators
Operator가 성공적으로 설치되지 않은 경우 다음을 수행하십시오.
-
Operator
설치된 Operator 를 클릭하고 Operator 서브스크립션 및 설치 계획 탭의 상태에 장애 또는 오류가 있는지 검사합니다. -
워크로드
포드 를 클릭하고 openshift-lifecycle-agent 프로젝트에서 Pod 로그를 확인합니다.
16.2.3. 시드 이미지 구성
베어 메탈 호스트와 동일한 하드웨어를 사용하고 대상 클러스터 구성이 유사한 단일 노드 OpenShift 클러스터에서 시드 이미지를 생성할 수 있습니다. 그러나 시드 클러스터에서 생성된 시드 이미지에는 클러스터별 구성이 포함될 수 없습니다.
다음 표에는 시드 이미지에 포함되어야 하며 포함하지 않아야 하는 구성 요소, 리소스 및 구성이 나열되어 있습니다.
클러스터 구성 | 시드 이미지에 포함 |
---|---|
성능 프로필 | 제공됨 |
대상 클러스터의 | 제공됨 |
IP 버전 [1] | 제공됨 |
Lifecycle Agent 및 OADP Operator를 포함한 Day 2 Operator 세트 | 제공됨 |
연결이 끊긴 레지스트리 설정 [2] | 제공됨 |
유효한 프록시 설정 [3] | 제공됨 |
FIPS 설정 | 제공됨 |
대상 클러스터의 크기와 일치하는 컨테이너 스토리지를 위한 기본 디스크의 전용 파티션 | 제공됨 |
로컬 볼륨
| 없음 |
- 이번 릴리스에서는 듀얼 스택 네트워킹이 지원되지 않습니다.
- 시드 클러스터가 연결이 끊긴 환경에 설치된 경우 대상 클러스터도 연결이 끊긴 환경에 설치해야 합니다.
- 시드 및 대상 클러스터의 프록시 구성이 일치하지 않아도 됩니다.
16.2.3.1. RAN DU 프로필을 사용한 시드 이미지 구성
다음 표에는 RAN DU 프로필을 사용할 때 시드 이미지에 포함되어야 하는 구성 요소, 리소스 및 구성이 나열되어 있습니다.
리소스 | 시드 이미지에 포함 |
---|---|
Day 0 설치의 일부로 적용되는 모든 추가 매니페스트 | 제공됨 |
모든 Day 2 Operator 서브스크립션 | 제공됨 |
| 제공됨 |
| 제공됨 |
| 제공됨 |
| 제공됨 |
| 제공됨 |
|
아니요. |
| 없음 |
| 없음 |
다음 리소스 및 구성 목록을 추가 매니페스트로 적용하거나 RHACM 정책을 사용하여 적용할 수 있습니다.
-
ClusterLogForwarder.yaml
-
ReduceMonitoringFootprint.yaml
-
SriovFecClusterConfig.yaml
-
PtpOperatorConfigForEvent.yaml
-
DefaultCatsrc.yaml
-
PtpConfig.yaml
-
SriovNetwork.yaml
GitOps ZTP를 사용하는 경우 RHACM 정책을 사용하여 이러한 리소스를 활성화하여 클러스터 라이프사이클 전반에 구성 변경 사항을 적용할 수 있습니다.
16.2.4. Lifecycle Agent를 사용하여 시드 이미지 생성
Lifecycle Agent를 사용하여 관리 클러스터에서 시드 이미지를 생성합니다. Operator는 필수 시스템 구성을 확인하고 시드 이미지를 생성하기 전에 필요한 시스템 정리를 수행한 다음 이미지 생성을 시작합니다. 시드 이미지 생성에는 다음 작업이 포함됩니다.
- 클러스터 Operator 중지
- 시드 이미지 구성 준비
-
SeedGenerator
CR에 지정된 이미지 리포지토리로 시드 이미지를 생성하고 푸시 - 클러스터 Operator 복원
- 시드 클러스터 인증서 만료
- 시드 클러스터에 대한 새 인증서 생성
-
seed 클러스터에서
SeedGenerator
CR 복원 및 업데이트
사전 요구 사항
- Kubernetes Operator의 RHACM 및 다중 클러스터 엔진은 시드 클러스터에 설치되지 않습니다.
- seed 클러스터에 공유 컨테이너 디렉터리를 구성했습니다.
- seed 클러스터에 최소 버전의 OADP Operator 및 Lifecycle Agent를 설치했습니다.
- 영구 볼륨이 시드 클러스터에 구성되지 않았는지 확인합니다.
-
Local Storage Operator가 사용되는 경우
LocalVolume
CR이 시드 클러스터에 존재하지 않는지 확인합니다. -
LVM 스토리지가 사용되는 경우
LVMCluster
CR이 시드 클러스터에 존재하지 않는지 확인합니다. -
OADP가 사용되는 경우
DataProtectionApplication
CR이 시드 클러스터에 존재하지 않는지 확인합니다.
프로세스
관리 클러스터를 허브에서 분리하여 시드 이미지에 없는 초기 클러스터에서 RHACM 관련 리소스를 삭제합니다.
다음 명령을 실행하여 시드 클러스터를 수동으로 분리합니다.
$ oc delete managedcluster sno-worker-example
-
관리 클러스터가 제거될 때까지 기다립니다. 클러스터가 제거된 후 적절한
SeedGenerator
CR을 생성합니다. Lifecycle Agent는 RHACM 아티팩트를 정리합니다.
-
관리 클러스터가 제거될 때까지 기다립니다. 클러스터가 제거된 후 적절한
GitOps ZTP를 사용하는 경우
kustomization.yaml
에서 seed 클러스터의SiteConfig
CR을 제거하여 클러스터를 분리합니다.여러
SiteConfig
kustomization.yaml
파일이 있는 경우kustomization.yaml
에서 시드 클러스터의 siteConfig CR을 제거합니다.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: #- example-seed-sno1.yaml - example-target-sno2.yaml - example-target-sno3.yaml
하나의
SiteConfig
kustomization.yaml
이 있는 경우kustomization.yaml
에서 시드 클러스터의 siteConfig CR을 제거하고generators: {}
행을 추가합니다.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: {}
Git 리포지토리에서
kustomization.yaml
변경 사항을 커밋하고 변경 사항을 리포지토리로 내보냅니다.ArgoCD 파이프라인은 변경 사항을 감지하고 관리 클러스터를 제거합니다.
시드 이미지를 레지스트리로 푸시할 수 있도록
Secret
오브젝트를 생성합니다.다음 명령을 실행하여 인증 파일을 생성합니다.
$ MY_USER=myuserid $ AUTHFILE=/tmp/my-auth.json $ podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}
$ base64 -w 0 ${AUTHFILE} ; echo
openshift-lifecycle-agent
네임스페이스의seedgen
이라는Secret
YAML 파일의seedAuth
필드에 출력을 복사합니다.apiVersion: v1 kind: Secret metadata: name: seedgen 1 namespace: openshift-lifecycle-agent type: Opaque data: seedAuth: <encoded_AUTHFILE> 2
다음
명령을
실행하여 보안을 적용합니다.$ oc apply -f secretseedgenerator.yaml
SeedGenerator
CR을 생성합니다.apiVersion: lca.openshift.io/v1 kind: SeedGenerator metadata: name: seedimage 1 spec: seedImage: <seed_container_image> 2
다음 명령을 실행하여 시드 이미지를 생성합니다.
$ oc apply -f seedgenerator.yaml
중요클러스터가 재부팅되고 API 기능이 손실되는 동안 Lifecycle Agent에서 시드 이미지를 생성합니다.
SeedGenerator
CR을 적용하면kubelet
및 CRI-O 작업이 중지되고 이미지 생성이 시작됩니다.
더 많은 시드 이미지를 생성하려면 시드 이미지를 생성하려는 버전으로 새 시드 클러스터를 프로비저닝해야 합니다.
검증
클러스터가 복구되고 사용 가능한 후 다음 명령을 실행하여
SeedGenerator
CR의 상태를 확인할 수 있습니다.$ oc get seedgenerator -o yaml
출력 예
status: conditions: - lastTransitionTime: "2024-02-13T21:24:26Z" message: Seed Generation completed observedGeneration: 1 reason: Completed status: "False" type: SeedGenInProgress - lastTransitionTime: "2024-02-13T21:24:26Z" message: Seed Generation completed observedGeneration: 1 reason: Completed status: "True" type: SeedGenCompleted 1 observedGeneration: 1
- 1
- 시드 이미지 생성이 완료되었습니다.