3.9. 통신사 코어 참조 구성 CR
다음 CR(사용자 정의 리소스)을 사용하여 telco core 프로필로 OpenShift Container Platform 클러스터를 구성하고 배포합니다. 달리 표시되지 않는 한 모든 특정 사용 모델에 사용되는 공통 기준을 형성하려면 CR을 사용합니다.
3.9.1. telco 코어 참조 설계 구성 CR 추출 링크 복사링크가 클립보드에 복사되었습니다!
telco-core-rds-rhel9 컨테이너 이미지에서 telco core 프로필의 전체 CR(사용자 정의 리소스) 세트를 추출할 수 있습니다. 컨테이너 이미지에는 telco core 프로필에 대한 필수 CR과 선택적 CR이 모두 있습니다.
사전 요구 사항
-
podman을 설치했습니다.
프로세스
다음 명령을 실행하여 자격 증명을 사용하여 컨테이너 이미지 레지스트리에 로그인합니다.
$ podman login registry.redhat.io다음 명령을 실행하여
telco-core-rds-rhel9컨테이너 이미지에서 콘텐츠를 추출합니다.$ mkdir -p ./out$ podman run -it registry.redhat.io/openshift4/openshift-telco-core-rds-rhel9:v4.19 | base64 -d | tar xv -C out
검증
out디렉토리는 다음과 같은 디렉토리 구조를 가지고 있습니다. 다음 명령을 실행하면out/telco-core-rds/디렉토리에서 Telco core CR을 볼 수 있습니다.$ tree -L 4출력 예
. ├── configuration │ ├── compare.sh │ ├── core-baseline.yaml │ ├── core-finish.yaml │ ├── core-overlay.yaml │ ├── core-upgrade.yaml │ ├── kustomization.yaml │ ├── Makefile │ ├── ns.yaml │ ├── README.md │ ├── reference-crs │ │ ├── custom-manifests │ │ │ ├── mcp-worker-1.yaml │ │ │ ├── mcp-worker-2.yaml │ │ │ ├── mcp-worker-3.yaml │ │ │ └── README.md │ │ ├── optional │ │ │ ├── logging │ │ │ ├── networking │ │ │ ├── other │ │ │ └── tuning │ │ └── required │ │ ├── networking │ │ ├── other │ │ ├── performance │ │ ├── scheduling │ │ └── storage │ ├── reference-crs-kube-compare │ │ ├── compare_ignore │ │ ├── comparison-overrides.yaml │ │ ├── metadata.yaml │ │ ├── optional │ │ │ ├── logging │ │ │ ├── networking │ │ │ ├── other │ │ │ └── tuning │ │ ├── ReferenceVersionCheck.yaml │ │ ├── required │ │ │ ├── networking │ │ │ ├── other │ │ │ ├── performance │ │ │ ├── scheduling │ │ │ └── storage │ │ ├── unordered_list.tmpl │ │ └── version_match.tmpl │ └── template-values │ ├── hw-types.yaml │ └── regional.yaml ├── install │ ├── custom-manifests │ │ ├── mcp-worker-1.yaml │ │ ├── mcp-worker-2.yaml │ │ └── mcp-worker-3.yaml │ ├── example-standard.yaml │ ├── extra-manifests │ │ ├── control-plane-load-kernel-modules.yaml │ │ ├── kdump-master.yaml │ │ ├── kdump-worker.yaml │ │ ├── mc_rootless_pods_selinux.yaml │ │ ├── mount_namespace_config_master.yaml │ │ ├── mount_namespace_config_worker.yaml │ │ ├── sctp_module_mc.yaml │ │ └── worker-load-kernel-modules.yaml │ └── README.md └── README.md
3.9.2. 통신사 코어 참조 구성과 클러스터 비교 링크 복사링크가 클립보드에 복사되었습니다!
통신사 코어 클러스터를 배포한 후 cluster-compare 플러그인을 사용하여 클러스터가 통신사 코어 참조 설계 사양(RDS)을 준수하는지 평가할 수 있습니다. 클러스터 비교 플러그인은 OpenShift CLI( oc ) 플러그인입니다. 이 플러그인은 텔코 코어 참조 구성을 사용하여 텔코 코어 사용자 정의 리소스(CR)로 클러스터를 검증합니다.
Telco Core에 대한 플러그인별 참조 구성은 Telco Core CR과 함께 컨테이너 이미지에 패키징되어 있습니다.
클러스터 비교 플러그인에 대한 자세한 내용은 "클러스터 비교 플러그인 이해"를 참조하세요.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
registry.redhat.io컨테이너 이미지 레지스트리에 액세스할 수 있는 자격 증명이 있습니다. -
클러스터 비교플러그인을 설치했습니다.
프로세스
다음 명령을 실행하여 자격 증명을 사용하여 컨테이너 이미지 레지스트리에 로그인합니다.
$ podman login registry.redhat.io다음 명령을 실행하여
telco-core-rds-rhel9컨테이너 이미지에서 콘텐츠를 추출합니다.$ mkdir -p ./out$ podman run -it registry.redhat.io/openshift4/openshift-telco-core-rds-rhel9:v4.19 | base64 -d | tar xv -C out다음 명령을 실행하면
out/telco-core-rds/configuration/reference-crs-kube-compare디렉토리에서 참조 구성을 볼 수 있습니다.$ tree -L 2출력 예
. ├── compare_ignore ├── comparison-overrides.yaml ├── metadata.yaml1 ├── optional2 │ ├── logging │ ├── networking │ ├── other │ └── tuning ├── ReferenceVersionCheck.yaml ├── required3 │ ├── networking │ ├── other │ ├── performance │ ├── scheduling │ └── storage ├── unordered_list.tmpl └── version_match.tmpl다음 명령을 실행하여 클러스터 구성을 통신사 코어 참조 구성과 비교하세요.
$ oc cluster-compare -r out/telco-core-rds/configuration/reference-crs-kube-compare/metadata.yaml출력 예
W1212 14:13:06.281590 36629 compare.go:425] Reference Contains Templates With Types (kind) Not Supported By Cluster: BFDProfile, BGPAdvertisement, BGPPeer, ClusterLogForwarder, Community, IPAddressPool, MetalLB, MultiNetworkPolicy, NMState, NUMAResourcesOperator, NUMAResourcesScheduler, NodeNetworkConfigurationPolicy, SriovNetwork, SriovNetworkNodePolicy, SriovOperatorConfig, StorageCluster ... ********************************** Cluster CR: config.openshift.io/v1_OperatorHub_cluster1 Reference File: required/other/operator-hub.yaml2 Diff Output: diff -u -N /tmp/MERGED-2801470219/config-openshift-io-v1_operatorhub_cluster /tmp/LIVE-2569768241/config-openshift-io-v1_operatorhub_cluster --- /tmp/MERGED-2801470219/config-openshift-io-v1_operatorhub_cluster 2024-12-12 14:13:22.898756462 +0000 +++ /tmp/LIVE-2569768241/config-openshift-io-v1_operatorhub_cluster 2024-12-12 14:13:22.898756462 +0000 @@ -1,6 +1,6 @@ apiVersion: config.openshift.io/v1 kind: OperatorHub metadata: + annotations:3 + include.release.openshift.io/hypershift: "true" name: cluster -spec: - disableAllDefaultSources: true ********************************** Summary4 CRs with diffs: 3/45 CRs in reference missing from the cluster: 226 other: other: Missing CRs:7 - optional/other/control-plane-load-kernel-modules.yaml - optional/other/worker-load-kernel-modules.yaml required-networking: networking-root: Missing CRs: - required/networking/nodeNetworkConfigurationPolicy.yaml networking-sriov: Missing CRs: - required/networking/sriov/sriovNetwork.yaml - required/networking/sriov/sriovNetworkNodePolicy.yaml - required/networking/sriov/SriovOperatorConfig.yaml - required/networking/sriov/SriovSubscription.yaml - required/networking/sriov/SriovSubscriptionNS.yaml - required/networking/sriov/SriovSubscriptionOperGroup.yaml required-other: scheduling: Missing CRs: - required/other/catalog-source.yaml - required/other/icsp.yaml required-performance: performance: Missing CRs: - required/performance/PerformanceProfile.yaml required-scheduling: scheduling: Missing CRs: - required/scheduling/nrop.yaml - required/scheduling/NROPSubscription.yaml - required/scheduling/NROPSubscriptionNS.yaml - required/scheduling/NROPSubscriptionOperGroup.yaml - required/scheduling/sched.yaml required-storage: storage-odf: Missing CRs: - required/storage/odf-external/01-rook-ceph-external-cluster-details.secret.yaml - required/storage/odf-external/02-ocs-external-storagecluster.yaml - required/storage/odf-external/odfNS.yaml - required/storage/odf-external/odfOperGroup.yaml - required/storage/odf-external/odfSubscription.yaml No CRs are unmatched to reference CRs8 Metadata Hash: fe41066bac56517be02053d436c815661c9fa35eec5922af25a1be359818f2979 No patched CRs10 - 1
- 비교 중인 CR입니다. 이 플러그인은 각 CR을 해당 템플릿과 다르게 표시합니다.
- 2
- 비교를 위한 CR과 일치하는 템플릿입니다.
- 3
- Linux diff 형식의 출력은 템플릿과 클러스터 CR의 차이점을 보여줍니다.
- 4
- 플러그인이 각 CR에 대한 줄 차이를 보고한 후, 차이점 요약이 보고됩니다.
- 5
- 해당 템플릿과의 차이점을 비교한 CR의 수입니다.
- 6
- 참조 구성에는 표현되었지만 라이브 클러스터에는 누락된 CR의 수입니다.
- 7
- 참조 구성에 표현되었지만 라이브 클러스터에는 없는 CR 목록입니다.
- 8
- 참조 구성의 해당 템플릿과 일치하지 않는 CR입니다.
- 9
- 메타데이터 해시는 참조 구성을 식별합니다.
- 10
- 패치된 CR 목록입니다.
3.9.3. 노드 구성 참조 CR 링크 복사링크가 클립보드에 복사되었습니다!
| Component | 참조 CR | 설명 | 선택 사항 |
|---|---|---|---|
| 추가 커널 모듈 |
| 선택 사항: 컨트롤 플레인 노드에 대한 커널 모듈을 구성합니다. | 없음 |
| 추가 커널 모듈 |
| 선택 사항: 작업자 노드에서 SCTP 커널 모듈을 로드합니다. | 없음 |
| 추가 커널 모듈 |
| 선택 사항: 작업자 노드에 대한 커널 모듈을 구성합니다. | 없음 |
| 컨테이너 마운트 네임스페이스 숨기기 |
| 컨트롤 플레인 노드에서 kubelet과 CRI-O 간에 컨테이너별 마운트를 공유하기 위해 마운트 네임스페이스를 구성합니다. | 없음 |
| 컨테이너 마운트 네임스페이스 숨기기 |
| 작업자 노드에서 kubelet과 CRI-O 간에 컨테이너별 마운트를 공유하기 위해 마운트 네임스페이스를 구성합니다. | 없음 |
| kdump 활성화 |
| 마스터 노드에서 kdump 충돌 보고를 구성합니다. | 없음 |
| kdump 활성화 |
| 작업자 노드에서 kdump 충돌 보고를 구성합니다. | 없음 |
3.9.4. 클러스터 인프라 참조 CR 링크 복사링크가 클립보드에 복사되었습니다!
| Component | 참조 CR | 설명 | 선택 사항 |
|---|---|---|---|
| 클러스터 로깅 |
| 지정된 서비스 계정으로 로그 전달 인스턴스를 구성하고 구성이 유효한지 확인합니다. | 제공됨 |
| 클러스터 로깅 |
| 클러스터 로깅 네임스페이스를 구성합니다. | 제공됨 |
| 클러스터 로깅 |
| openshift-logging 네임스페이스에서 Operator 그룹을 생성하여 Cluster Logging Operator가 리소스를 감시하고 관리할 수 있습니다. | 제공됨 |
| 클러스터 로깅 |
| 클러스터 로깅 서비스 계정을 구성합니다. | 제공됨 |
| 클러스터 로깅 |
| collect-audit-logs 클러스터 역할을 logs 수집기 서비스 계정에 부여합니다. | 제공됨 |
| 클러스터 로깅 |
| 수집기 서비스 계정에서 인프라 리소스에서 로그를 수집할 수 있습니다. | 제공됨 |
| 클러스터 로깅 |
| 설치 계획에 대한 수동 승인을 사용하여 Cluster Logging Operator에 대한 서브스크립션 리소스를 생성합니다. | 제공됨 |
| 연결이 끊긴 구성 |
| 연결이 끊긴 Red Hat Operator 카탈로그를 정의합니다. | 없음 |
| 연결이 끊긴 구성 |
| 연결이 끊긴 레지스트리의 미러링된 저장소 다이제스트 목록을 정의합니다. | 없음 |
| 연결이 끊긴 구성 |
| 모든 기본 소스를 비활성화하는 OperatorHub 구성을 정의합니다. | 없음 |
| 모니터링 및 관찰 기능 |
| Prometheus 및 Alertmanager에 대한 스토리지 및 보존 구성. | 제공됨 |
| 전원 관리 |
| 선택한 노드의 성능 최적화를 위해 CPU 격리, hugepages 구성 및 워크로드 힌트를 지정하여 성능 프로필 리소스를 정의합니다. | 없음 |
3.9.5. 리소스 튜닝 참조 CR 링크 복사링크가 클립보드에 복사되었습니다!
| Component | 참조 CR | 설명 | 선택 사항 |
|---|---|---|---|
| 시스템 예약 용량 |
| 선택 사항: kubelet을 구성하여 컨트롤 플레인 노드 풀에 예약된 리소스를 자동으로 조정합니다. | 제공됨 |
3.9.6. 네트워킹 참조 CR 링크 복사링크가 클립보드에 복사되었습니다!
| Component | 참조 CR | 설명 | 선택 사항 |
|---|---|---|---|
| 기준 |
| 호스트를 통한 라우팅과 같은 OVN Kubernetes 설정을 지정하여 기본 클러스터 네트워크를 구성합니다. 또한 사용자 정의 CNI 구성을 포함하여 추가 네트워크의 정의를 허용하고 여러 네트워크에서 네트워크 정책에 MultiNetworkPolicy CR을 사용할 수 있습니다. | 없음 |
| 기준 |
| 선택 사항: 노드 선택기 및 CNI 구성과 같은 네트워크 구성 세부 정보를 지정하는 NetworkAttachmentDefinition 리소스를 정의합니다. | 제공됨 |
| 로드 밸런서 |
| 지정된 범위에서 IP의 동적 할당에 대해 자동 할당이 활성화된 IP 주소 풀을 관리하도록 MetalLB를 구성합니다. | 없음 |
| 로드 밸런서 |
| 보다 빠른 네트워크 오류 감지 및 로드 밸런싱 장애 조치를 위해 사용자 지정 간격, 감지 승수 및 모드를 사용하여 BFD(전방향 전달 감지)를 구성합니다. | 없음 |
| 로드 밸런서 |
| MetalLB에 대한 BGP 광고 리소스를 정의하여 IP 주소 풀이 BGP 피어에 광고되는 방법을 지정합니다. 이를 통해 트래픽 라우팅 및 공지를 세밀하게 제어할 수 있습니다. | 없음 |
| 로드 밸런서 |
| MetalLB에서 BGP 피어를 정의하고 동적 라우팅을 위한 BGP 인접을 나타냅니다. | 없음 |
| 로드 밸런서 |
| MetalLB 커뮤니티를 정의합니다. 이 커뮤니티는 이름이 지정된 리소스 아래에 하나 이상의 BGP 커뮤니티를 그룹화합니다. 커뮤니티는 BGP 알림에 적용하여 라우팅 정책을 제어하고 트래픽 라우팅을 변경할 수 있습니다. | 제공됨 |
| 로드 밸런서 |
| 클러스터에서 MetalLB 리소스를 정의합니다. | 없음 |
| 로드 밸런서 |
| 클러스터에서 metallb-system 네임스페이스를 정의합니다. | 없음 |
| 로드 밸런서 |
| MetalLB Operator의 Operator group을 정의합니다. | 없음 |
| 로드 밸런서 |
| 설치 계획에 대한 수동 승인을 사용하여 MetalLB Operator에 대한 서브스크립션 리소스를 생성합니다. | 없음 |
| Multus - rootless DPDK Pod의 경우 Tap CNI |
| 작업자 노드에서 탭 CNI 플러그인에 대한 SELinux 부울을 설정하는 MachineConfig 리소스를 구성합니다. | 제공됨 |
| NMState Operator |
| NMState Operator에서 노드 네트워크 구성을 관리하는 데 사용하는 NMState 리소스를 정의합니다. | 없음 |
| NMState Operator |
| NMState Operator 네임스페이스를 생성합니다. | 없음 |
| NMState Operator |
| openshift-nmstate 네임스페이스에 Operator group을 생성하여 NMState Operator에서 리소스를 감시하고 관리할 수 있습니다. | 없음 |
| NMState Operator |
| OLM을 통해 관리되는 NMState Operator에 대한 구독을 생성합니다. | 없음 |
| SR-IOV 네트워크 Operator |
| 네트워크 기능, IP 주소 관리(ipam), 관련 네트워크 네임스페이스 및 리소스를 지정하는 SR-IOV 네트워크를 정의합니다. | 없음 |
| SR-IOV 네트워크 Operator |
| 특정 노드의 SR-IOV 장치에 대한 네트워크 정책을 구성합니다. 여기에는 장치 선택, VF 할당(numVfs), 노드별 설정(nodeSelector) 및 우선 순위의 사용자 정의가 포함됩니다. | 없음 |
| SR-IOV 네트워크 Operator |
| SR-IOV Operator에 대한 다양한 설정을 구성합니다. 여기에는 인젝터 및 Operator 웹훅 활성화, Pod 드레이닝 비활성화, 구성 데몬에 대한 노드 선택기 정의 등이 포함됩니다. | 없음 |
| SR-IOV 네트워크 Operator |
| OLM을 통해 관리되는 SR-IOV 네트워크 운영자에 대한 구독을 생성합니다. | 없음 |
| SR-IOV 네트워크 Operator |
| SR-IOV 네트워크 운영자 구독 네임스페이스를 생성합니다. | 없음 |
| SR-IOV 네트워크 Operator |
| SR-IOV 네트워크 운영자에 대한 운영자 그룹을 생성하여 대상 네임스페이스의 리소스를 감시하고 관리할 수 있도록 합니다. | 없음 |
3.9.7. 참조 CR 예약 링크 복사링크가 클립보드에 복사되었습니다!
| Component | 참조 CR | 설명 | 선택 사항 |
|---|---|---|---|
| NUMA 인식 스케줄러 |
| NUMA 리소스 운영자를 활성화하여 워크로드를 특정 NUMA 노드 구성에 맞춥니다. 다중 NUMA 노드가 있는 클러스터에 필요합니다. | 없음 |
| NUMA 인식 스케줄러 |
| OLM을 통해 관리되는 NUMA 리소스 운영자에 대한 구독을 만듭니다. 다중 NUMA 노드가 있는 클러스터에 필요합니다. | 없음 |
| NUMA 인식 스케줄러 |
| NUMA 리소스 운영자 구독 네임스페이스를 생성합니다. 다중 NUMA 노드가 있는 클러스터에 필요합니다. | 없음 |
| NUMA 인식 스케줄러 |
| numaresources-operator 네임스페이스에 Operator 그룹을 생성하여 NUMA Resources Operator가 리소스를 감시하고 관리할 수 있도록 합니다. 다중 NUMA 노드가 있는 클러스터에 필요합니다. | 없음 |
| NUMA 인식 스케줄러 |
| 노드 전체에 걸쳐 NUMA 인식 포드 스케줄링을 처리할 수 있는 클러스터 내 토폴로지 인식 스케줄러를 구성합니다. | 없음 |
| NUMA 인식 스케줄러 |
| 작업 부하에 대해 제어 평면 노드를 예약 불가능으로 구성합니다. | 없음 |
3.9.8. 스토리지 참조 CR 링크 복사링크가 클립보드에 복사되었습니다!
| Component | 참조 CR | 설명 | 선택 사항 |
|---|---|---|---|
| 외부 ODF 구성 |
| openshift-storage 네임스페이스의 외부 Ceph 클러스터에 대한 base64로 인코딩된 구성 데이터를 포함하는 비밀 리소스를 정의합니다. | 없음 |
| 외부 ODF 구성 |
| 클러스터가 외부 스토리지 백엔드를 사용하도록 구성하는 OpenShift Container Storage(OCS) 스토리지 리소스를 정의합니다. | 없음 |
| 외부 ODF 구성 |
| OpenShift Data Foundation Operator에 대한 모니터링되는 openshift-storage 네임스페이스를 생성합니다. | 없음 |
| 외부 ODF 구성 |
| openshift-storage 네임스페이스에 Operator 그룹을 생성하여 OpenShift Data Foundation Operator가 리소스를 감시하고 관리할 수 있도록 합니다. | 없음 |