This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.19.16. 여러 관리 클러스터에 대한 ZTP 사용자 정의 리소스 생성
여러 관리 클러스터를 설치하는 경우 제로 터치 프로비저닝(ZTP)은 ArgoCD 및 SiteConfig 를 사용하여 CR(사용자 정의 리소스)을 생성하고 여러 클러스터에 대한 정책을 생성하여 GitOps 접근법을 사용하여 100개 이하의 배치로 여러 클러스터에 대한 정책을 생성하고 적용합니다.
클러스터 설치 및 배포는 다음과 같이 2단계 프로세스입니다.
19.16.1. ZTP 파이프라인 배포를 위한 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- OpenShift Container Platform 클러스터 버전 4.8 이상 및 Red Hat GitOps Operator가 설치되어 있습니다.
- RHACM(Red Hat Advanced Cluster Management) 버전 2.3 이상이 설치되어 있습니다.
-
연결이 끊긴 환경의 경우 허브 클러스터에서 소스 데이터 Git 리포지토리 및
ztp-site-generator컨테이너 이미지에 액세스할 수 있는지 확인합니다. 정책에 대한 추가 설치 매니페스트 또는 CR(사용자 정의 리소스)과 같은 추가 사용자 정의 콘텐츠를 원하는 경우
/usr/src/hook/ztp/source-crs/extra-manifest/디렉터리에 추가합니다. 마찬가지로PolicyGenTemplate에서 참조한 대로/usr/src/hook/ztp/source-crs/디렉터리에 추가 구성 CR을 추가할 수 있습니다.Red Hat 제공 이미지에 추가 매니페스트를 추가하는
Containerfile을 생성합니다. 예를 들면 다음과 같습니다.FROM <registry fqdn>/ztp-site-generator:latest COPY myInstallManifest.yaml /usr/src/hook/ztp/source-crs/extra-manifest/ COPY mySourceCR.yaml /usr/src/hook/ztp/source-crs/
FROM <registry fqdn>/ztp-site-generator:latest1 COPY myInstallManifest.yaml /usr/src/hook/ztp/source-crs/extra-manifest/ COPY mySourceCR.yaml /usr/src/hook/ztp/source-crs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <registry fqdn>은 Red Hat에서 제공하는
ztp-site-generator컨테이너 이미지가 포함된 레지스트리를 가리켜야 합니다.
이러한 추가 파일이 포함된 새 컨테이너 이미지를 빌드합니다.
$> podman build Containerfile.example
$> podman build Containerfile.exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19.16.2. GitOps ZTP 파이프라인 설치 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션의 절차에서는 다음 작업을 완료하는 방법을 설명합니다.
- 사이트 구성 데이터를 호스팅하는 데 필요한 Git 리포지토리를 준비합니다.
- 필요한 설치 및 정책 CR(사용자 정의 리소스)을 생성하도록 허브 클러스터를 구성합니다.
- 제로 터치 프로비저닝(ZTP)을 사용하여 관리 클러스터를 배포합니다.
19.16.2.1. ZTP Git 리포지토리 준비 링크 복사링크가 클립보드에 복사되었습니다!
사이트 구성 데이터를 호스팅하기 위한 Git 리포지토리를 생성합니다. 제로 터치 프로비저닝(ZTP) 파이프라인에는 이 리포지토리에 대한 읽기 권한이 필요합니다.
절차
-
SiteConfig및PolicyGenTemplate사용자 정의 리소스(CR)에 대해 별도의 경로를 사용하여 디렉터리 구조를 생성합니다. -
resource-sync.yaml을 추가합니다.-hook-example/<policygentemplates>/에서PolicyGenTemplateCR의 경로에 pre-sync.yaml및 post resource-sync.yaml을-hook및 post-example/<siteconfig>/에서 pre-sync.yamlSiteConfigCR 경로에 추가합니다.참고허브 클러스터가 연결이 끊긴 환경에서 작동하는 경우 사전 및 사후 동기화 후크 CR 모두의
이미지를업데이트해야 합니다.-
policygentemplates.ran.openshift.io및siteconfigs.ran.openshift.ioCR 정의를 적용합니다.
19.16.2.2. ZTP를 위한 허브 클러스터 준비 링크 복사링크가 클립보드에 복사되었습니다!
제로 터치 프로비저닝(ZTP) GitOps 플로우를 기반으로 각 사이트에 필요한 설치 및 정책 CR(사용자 정의 리소스)을 생성하는 ArgoCD 애플리케이션 세트로 허브 클러스터를 구성할 수 있습니다.
절차
- hub 클러스터에 Red Hat OpenShift GitOps Operator를 설치합니다.
ArgoCD의 관리자 암호를 추출합니다.
oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d$ oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow ArgoCD 파이프라인 구성을 준비합니다.
최신 컨테이너 이미지 버전을 사용하여 ZTP 사이트 생성기 컨테이너에서 ArgoCD 배포 CR을 추출합니다.
mkdir ztp podman run --rm -v `pwd`/ztp:/mnt/ztp:Z registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.9.0-1 /bin/bash -c "cp -ar /usr/src/hook/ztp/* /mnt/ztp/"
$ mkdir ztp $ podman run --rm -v `pwd`/ztp:/mnt/ztp:Z registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.9.0-1 /bin/bash -c "cp -ar /usr/src/hook/ztp/* /mnt/ztp/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 섹션의 나머지 단계는
ztp/gitops-subscriptions/argocd/디렉터리와 관련이 있습니다.두 ArgoCD 애플리케이션, deployment
/clusters-app.yaml 및의 소스 값을 적절한 URL,deployment/policies-app.yamltargetRevision분기 및 경로 값으로 수정합니다. 경로 값은 Git 리포지토리에 사용된 값과 일치해야 합니다.deployment/clusters-app.yaml수정 :Copy to Clipboard Copied! Toggle word wrap Toggle overflow deployment/policies-app.yaml수정 :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
허브 클러스터에 파이프라인 구성을 적용하려면 다음 명령을 입력합니다.
oc apply -k ./deployment
$ oc apply -k ./deploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19.16.3. 사이트 시크릿 생성 링크 복사링크가 클립보드에 복사되었습니다!
사이트에 필요한 시크릿을 hub 클러스터에 추가합니다. 이러한 리소스는 클러스터 이름과 일치하는 이름이 있는 네임스페이스에 있어야 합니다.
절차
사이트 BMC(Baseboard Management Controller)로 인증하기 위한 시크릿을 생성합니다. 시크릿 이름이
SiteConfig에서 사용된 이름과 일치하는지 확인합니다. 이 예에서 시크릿 이름은test-sno-bmh-secret입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사이트에 대한 풀 시크릿을 생성합니다. 가져오기 보안에는 OpenShift 및 모든 애드온 Operator를 설치하는 데 필요한 모든 인증 정보가 포함되어야 합니다. 이 예에서 시크릿 이름은
assisted-deployment-pull-secret입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
보안은 이름으로 SiteConfig CR(사용자 정의 리소스)에서 참조됩니다. 네임스페이스는 SiteConfig 네임스페이스와 일치해야 합니다.
19.16.4. SiteConfig 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
ArgoCD는 사이트 배포의 GitOps 메서드의 엔진 역할을 합니다. 사이트 설치에 필요한 사용자 지정 리소스가 포함된 사이트 계획을 완료한 후 정책 생성기에서 매니페스트를 생성하여 허브 클러스터에 적용합니다.
절차
클러스터의
site-plan 데이터가 포함된 하나 이상의파일을 만듭니다. 예를 들면 다음과 같습니다.SiteConfig사용자 정의 리소스인 site-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
UEFI SecureBoot를 사용하는 경우 유효하지 않거나 로컬 인증서로 인한 오류를 방지하려면 이 행을 추가합니다.
- 파일을 저장하고 hub 클러스터에서 액세스할 수 있는 제로 터치 프로비저닝(ZTP) Git 리포지토리로 푸시하고 ArgoCD 애플리케이션의 소스 리포지토리로 정의합니다.
ArgoCD는 애플리케이션이 동기화되지 않았음을 감지합니다. 자동 또는 수동 동기화 시 ArgoCD는 PolicyGenTemplate 을 허브 클러스터에 동기화하고 관련 리소스 후크를 시작합니다. 이러한 후크는 spoke 클러스터에 적용되는 정책 래핑 구성 CR을 생성합니다. 리소스 후크는 사이트 정의를 설치 사용자 지정 리소스로 변환하고 허브 클러스터에 적용합니다.
-
네임 스페이스- 사이트당 고유 -
AgentClusterInstall -
BareMetalHost -
ClusterDeployment -
InfraEnv -
NMStateConfig -
ExtraManifestsConfigMap- Extra manifests. 추가 매니페스트에는 워크로드 파티셔닝, chronyd, 마운트 지점 숨기기, sctp 활성화 등이 포함됩니다. -
ManagedCluster -
KlusterletAddonConfig
RHACM(Red Hat Advanced Cluster Management)(ACM)은 허브 클러스터를 배포합니다.
19.16.5. PolicyGenTemplates 생성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 허브 클러스터의 Git 리포지토리에 정책을 생성하는 데 필요한 PolicyGenTemplates 를 생성합니다.
절차
-
PolicyGenTemplates를 생성하고 hub 클러스터에서 액세스할 수 있는 제로 터치 프로비저닝(ZTP) Git 리포지토리에 저장하고 ArgoCD 애플리케이션의 소스 리포지토리로 정의합니다. ArgoCD는 애플리케이션이 동기화되지 않았음을 감지합니다. 자동 또는 수동 동기화 시 ArgoCD는 허브 클러스터에 새
PolicyGenTemplate을 적용하고 관련 리소스 후크를 시작합니다. 이러한 후크는 스포크 클러스터에 적용되는 정책 래핑 구성 CR을 생성하고 다음 작업을 수행합니다.- 기본 분산 장치(DU) 프로필 및 필수 사용자 지정에 따라 Red Hat Advanced Cluster Management(RHACM) 정책을 만듭니다.
- 생성된 정책을 hub 클러스터에 적용합니다.
ZTP 프로세스는 ACM을 지시하여 클러스터 노드에 원하는 구성을 적용하는 정책을 생성합니다.
19.16.6. 설치 상태 확인 링크 복사링크가 클립보드에 복사되었습니다!
ArgoCD 파이프라인은 Git 리포지토리에서 SiteConfig 및 PolicyGenTemplate 사용자 정의 리소스(CR)를 감지하고 허브 클러스터에 동기화합니다. 이 프로세스에서는 설치 및 정책 CR을 생성하여 hub 클러스터에 적용합니다. ArgoCD 대시보드에서 이 동기화의 진행률을 모니터링할 수 있습니다.
절차
다음 명령을 사용하여 클러스터 설치 진행 상황을 모니터링합니다.
export CLUSTER=<cluster_name>
$ export CLUSTER=<cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Completed")]}' | jq$ oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Completed")]}' | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow curl -sk $(oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.debugInfo.eventsURL}') | jq '.[-2,-1]'$ curl -sk $(oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.debugInfo.eventsURL}') | jq '.[-2,-1]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Advanced Cluster Management(RHACM) 대시보드를 사용하여 정책 조정 진행 상황을 모니터링합니다.
19.16.7. 사이트 정리 링크 복사링크가 클립보드에 복사되었습니다!
사이트 및 관련 설치 및 정책 CR(사용자 정의 리소스)을 제거하려면 Git 리포지토리에서 SiteConfig 및 사이트별 PolicyGenTemplate CR을 제거합니다. 파이프라인 후크는 생성된 CR을 제거합니다.
SiteConfig CR을 제거하기 전에 ACM에서 클러스터를 분리해야 합니다.
19.16.7.1. ArgoCD 파이프라인 제거 링크 복사링크가 클립보드에 복사되었습니다!
ArgoCD 파이프라인 및 모든 생성된 아티팩트를 제거하려면 다음 절차를 사용하십시오.
절차
- ACM에서 모든 클러스터를 분리합니다.
-
Git 리포지토리에서 모든
SiteConfig및PolicyGenTemplateCR(사용자 정의 리소스)을 삭제합니다. 다음 네임스페이스를 삭제합니다.
모든 정책 네임스페이스:
oc get policy -A
$ oc get policy -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow -
clusters-sub -
policies-sub
Kustomize 툴을 사용하여 디렉터리를 처리합니다.
oc delete -k cnf-features-deploy/ztp/gitops-subscriptions/argocd/deployment
$ oc delete -k cnf-features-deploy/ztp/gitops-subscriptions/argocd/deploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow