1장. Kubernetes Operator용 다중 클러스터 엔진 개요
- Amazon Web Services에 대한 인증 정보 생성
- Microsoft Azure에 대한 인증 정보 생성
- Google Cloud Platform에 대한 인증 정보 생성
- VMware vSphere에 대한 인증 정보 생성
- Red Hat OpenStack Platform 인증 정보 생성
- Red Hat Virtualization 인증 정보 생성
- Red Hat OpenShift Cluster Manager에 대한 인증 정보 생성
- Ansible Automation Platform에 대한 인증 정보 생성
- 온-프레미스 환경에 대한 자격 증명 만들기Create a credential for an on-premises environment
- 클러스터 라이프사이클 아키텍처
- 인증 정보 관리 개요
- 생성된 클러스터 분리(기술 프리뷰)
- 테인트 및 허용 오차를 사용하여 관리 클러스터 배치
- 프록시 환경에서 클러스터 생성
- 클러스터 프록시 애드온 활성화
- 특정 클러스터 관리 역할 구성
- 클러스터 라벨 관리
- 관리 클러스터에서 실행되도록 Ansible Tower 작업 구성
- Enabling ManagedServiceAccount
- 클러스터 업그레이드
- 관리에서 클러스터 제거
- 문제를 해결하기 위해 must gather 명령 실행
- 설치 또는 보류 중 설치 상태 문제 해결
- 재설치 실패 문제 해결
- 오프라인 클러스터 문제 해결
- 관리형 클러스터 가져오기 장애 문제 해결
- 보류 중인 가져오기 상태로 클러스터 문제 해결
- 인증서 변경 후 가져온 클러스터 문제 해결
- 클러스터 상태 변경 문제 해결
- VMware vSphere에서 클러스터 생성 문제 해결
- 보류 중 또는 실패 상태의 콘솔에서 클러스터 문제 해결
- OpenShift Container Platform 버전 3.11 클러스터 가져오기 장애 문제 해결
- 성능 저하된 조건이 있는 Klusterlet 문제 해결
- 클러스터를 삭제한 후 네임스페이스가 남아 있음
- 클러스터를 가져올 때 Auto-import-secret-exists 오류
1.1. Kubernetes Operator용 다중 클러스터 엔진 정보 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes Operator용 멀티 클러스터 엔진은 Red Hat OpenShift Container Platform에 멀티 클러스터 라이프사이클 기능을 제공하는 클러스터 라이프사이클 Operator입니다. Kubernetes operator 2.1의 다중 클러스터 엔진 지원 매트릭스 와 Kubernetes Operator의 다중 클러스터 엔진에 대한 다음 문서를 참조하십시오.
1.1.1. 요구 사항 및 권장 사항 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes Operator용 다중 클러스터 엔진을 설치하기 전에 다음 시스템 구성 요구 사항 및 설정을 검토하십시오.
중요: Kubernetes Operator용 다중 클러스터 엔진을 2.5 설치 이전의 Kubernetes용 Red Hat Advanced Cluster Management가 없는 클러스터에 설치해야 합니다. Red Hat Advanced Cluster Management 버전 2.5 이상을 사용하는 경우 Kubernetes용 다중 클러스터 엔진이 클러스터에 이미 설치되어 있습니다.
1.1.1.1. 지원되는 브라우저 및 플랫폼 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes operator 2.1 지원 매트릭스의 다중 클러스터 엔진에서 지원되는 브라우저 및 기능에 대한 중요한 정보를 참조하십시오.
1.1.2. 네트워킹 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes Operator 허브 클러스터 및 관리 클러스터용 다중 클러스터 엔진의 네트워크 요구 사항에 대해 알아보십시오.
중요: 신뢰할 수 있는 CA 번들은 Kubernetes Operator 네임스페이스의 다중 클러스터 엔진에서 사용할 수 있지만 개선 사항을 적용하려면 네트워크를 변경해야 합니다. 신뢰할 수 있는 CA 번들 ConfigMap은 trusted-ca-bundle 의 기본 이름을 사용합니다. TRUSTED_CA_BUNDLE 이라는 환경 변수에서 이 이름을 operator에 제공하여 이름을 변경할 수 있습니다. 자세한 내용은 Red Hat OpenShift Container Platform의 네트워킹 섹션에서 클러스터 전체 프록시 구성을 참조하십시오.
1.1.2.1. hub 클러스터 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
hub 클러스터 네트워크의 구성을 참조할 수 있습니다.
다음 표에서 허브 클러스터 네트워크 요구 사항을 참조하십시오.
| direction | 연결 | 포트(지정된 경우) |
|---|---|---|
| outbound | 클라우드 공급자의 API | |
| outbound | (선택 사항) 프로비저닝된 관리 클러스터의 Kubernetes API 서버 | 6443 |
| 아웃바운드 및 인바운드 |
관리 클러스터의 | 443 |
| 인바운드 | 관리 클러스터에서 Kubernetes 클러스터에 대한 멀티 클러스터 엔진의 Kubernetes API 서버 | 6443 |
1.1.2.2. 관리형 클러스터 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리형 클러스터 네트워킹 요구 사항은 다음 표를 참조하십시오.
| direction | 연결 | 포트(지정된 경우) |
|---|---|---|
| 아웃바운드 및 인바운드 | Kubernetes 클러스터용 다중 클러스터 엔진의 Kubernetes API 서버 | 6443 |
1.1.2.3. 인프라 Operator를 사용하여 설치할 때 추가 네트워킹 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
Infrastructure Operator를 사용하여 베어 메탈 관리 클러스터를 설치할 때 추가 네트워킹 요구 사항은 다음 표를 참조하십시오.
| direction | 프로토콜 | 연결 | 포트(지정된 경우) |
|---|---|---|---|
| ISO/rootfs 이미지 리포지토리에 대한 Hub 클러스터 아웃바운드 | HTTPS(연결이 끊긴 환경의 HTTP) | Red Hat Advanced Cluster Management 허브에서 ISO 이미지를 생성하는 데 사용 | 443 (연결이 끊긴 환경에서 80) |
| 단일 노드 OpenShift Container Platform 관리 클러스터의 BMC 인터페이스에 대한 Hub 클러스터 아웃바운드 | HTTPS(연결이 끊긴 환경의 HTTP) | OpenShift Container Platform 클러스터를 부팅 | 443 |
| OpenShift Container Platform 관리 클러스터에서 허브 클러스터로의 아웃 바운드 | HTTPS |
| 443 |
| OpenShift Container Platform 관리 클러스터에서 ISO/rootfs 이미지 리포지토리로의 아웃 바운드 | HTTP, HTTPS 또는 TLS | rootfs 이미지 다운로드 | HTTP 80, HTTPS 443 |
|
OpenShift Container Platform 관리 클러스터에서 | HTTPS/TLS | 이미지 다운로드 | 443 |
1.1.2.4. Hive Operator를 사용하여 설치할 때 추가 네트워킹 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
중앙 인프라 관리 사용을 포함하는 Hive Operator를 사용하여 베어 메탈 관리 클러스터를 설치하는 경우 허브 클러스터와 libvirt 프로비저닝 호스트 간에 계층 2 또는 계층 3 포트 연결을 구성해야 합니다. 이 프로비저닝 호스트에 대한 연결은 Hive를 사용하여 기본 메탈 클러스터를 생성하는 동안 필요합니다. 자세한 내용은 다음 표를 참조하십시오.
| direction | 프로토콜 | 연결 | 포트(지정된 경우) |
|---|---|---|---|
|
Hub 클러스터 아웃바운드 및 | IP |
베어 메탈 클러스터를 생성할 때 부트스트랩 역할을 하는 |
참고: 이 요구 사항은 설치 시에만 적용되며 Infrastructure Operator와 함께 설치된 클러스터를 업그레이드할 때 필요하지 않습니다.
1.1.2.4.1. 호스트된 컨트롤 플레인 네트워킹 요구 사항 (기술 프리뷰) 링크 복사링크가 클립보드에 복사되었습니다!
호스팅 컨트롤 플레인을 사용하는 경우 HypershiftDeployment 리소스는 다음 표에 나열된 끝점에 연결되어 있어야 합니다.
| direction | 연결 | 포트(지정된 경우) |
|---|---|---|
| outbound | OpenShift Container Platform 컨트롤 플레인 및 작업자 노드 | |
| outbound | Amazon Web Services의 호스트 클러스터만의 경우: AWS API 및 S3 API에 대한 아웃 바운드 연결 | |
| outbound | Microsoft Azure 클라우드 서비스의 호스팅 클러스터의 경우: Azure API에 대한 아웃 바운드 연결 | |
| outbound | coreOS의 ISO 이미지와 OpenShift Container Platform Pod용 이미지 레지스트리를 저장하는 OpenShift Container Platform 이미지 리포지토리 |
1.1.3. 콘솔 개요 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 콘솔 플러그인은 OpenShift Container Platform 4.10 웹 콘솔에서 사용할 수 있으며 통합할 수 있습니다. 이 기능을 사용하려면 콘솔 플러그인이 활성화된 상태를 유지해야 합니다. Kubernetes Operator용 멀티 클러스터 엔진에는 인프라 및 인증 정보 탐색 항목의 특정 콘솔 기능이 표시됩니다. Red Hat Advanced Cluster Management를 설치하는 경우 더 많은 콘솔 기능이 표시됩니다.
참고: 플러그인이 활성화된 OpenShift Container Platform 4.10의 경우 드롭다운 메뉴에서 모든 클러스터를 선택하여 OpenShift Container Platform 콘솔 내에서 Red Hat Advanced Cluster Management에 액세스할 수 있습니다.
- 플러그인을 비활성화하려면 OpenShift Container Platform 콘솔의 관리자 화면에 있어야 합니다.
- 탐색 메뉴에서 Administration 을 찾아 Cluster Settings 을 클릭한 다음 Configuration 탭을 클릭합니다.
-
구성 리소스 목록에서 웹 콘솔에 대한 클러스터 전체 구성이 포함된
operator.openshift.ioAPI 그룹이 있는 Console 리소스를 클릭합니다. -
콘솔 플러그인 탭을 클릭합니다.
mce플러그인이 나열됩니다. 참고: Red Hat Advanced Cluster Management가 설치되어 있으면acm로도 나열됩니다. - 표에서 플러그인 상태를 수정합니다. 잠시 후에 콘솔을 새로 고침하라는 메시지가 표시됩니다.
1.1.4. 역할 기반 액세스 제어 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes Operator용 다중 클러스터 엔진은 역할 기반 액세스 제어(RBAC)를 지원합니다. 역할에 따라 수행할 수 있는 작업이 결정됩니다. RBAC는 Red Hat OpenShift Container Platform과 유사하게 Kubernetes의 권한 부여 메커니즘을 기반으로 합니다. RBAC에 대한 자세한 내용은 OpenShift Container Platform 설명서의 OpenShift Container Platform RBAC 개요를 참조하십시오.
참고: 사용자 역할 액세스가 불가능하면 콘솔에서 작업 버튼이 비활성화됩니다.
구성 요소에서 지원되는 RBAC에 대한 자세한 내용은 다음 섹션을 참조하십시오.
1.1.4.1. 역할 개요 링크 복사링크가 클립보드에 복사되었습니다!
일부 제품 리소스는 클러스터 전체이며 일부는 네임스페이스 범위입니다. 일관된 액세스 제어를 위해 사용자에게 클러스터 역할 바인딩 및 네임스페이스 역할 바인딩을 적용해야 합니다. 지원되는 다음 역할 정의의 표 목록을 확인합니다.
1.1.4.1.1. 역할 정의 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| Role | 정의 |
|---|---|
|
|
이는 OpenShift Container Platform 기본 역할입니다. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin, edit, view는 OpenShift Container Platform 기본 역할입니다. 이러한 역할에 대한 네임스페이스 범위 바인딩이 있는 사용자는 특정 네임스페이스의 |
중요:
- 모든 사용자는 OpenShift Container Platform에서 프로젝트를 생성할 수 있으므로 네임스페이스에 대한 관리자 역할 권한을 제공합니다.
-
사용자에게 클러스터에 대한 역할 액세스 권한이 없는 경우 클러스터 이름이 표시되지 않습니다. 클러스터 이름은 다음 기호
-를 사용하여 표시됩니다.
RBAC는 콘솔 수준 및 API 수준에서 검증됩니다. 사용자 액세스 역할 권한에 따라 콘솔의 작업을 활성화하거나 비활성화할 수 있습니다. 제품의 특정 라이프사이클에 대한 RBAC에 대한 자세한 내용은 다음 섹션을 참조하십시오.
1.1.4.1.2. 클러스터 라이프사이클 RBAC 링크 복사링크가 클립보드에 복사되었습니다!
모든 관리 클러스터를 생성하고 관리하려면 다음 정보를 참조하십시오.
다음 명령을 입력하여 클러스터 역할
open-cluster-management:cluster-manager-admin에 대한 클러스터 역할 바인딩을 생성합니다.oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin
oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 역할은 모든 리소스 및 작업에 액세스할 수 있는 슈퍼 유저입니다. 클러스터 범위의
관리 클러스터리소스, 관리 클러스터를 관리하는 리소스의 네임스페이스 및 이 역할이 있는 네임스페이스를 생성할 수 있습니다. 이 역할로 관리형 클러스터를 생성하는 데 사용되는 공급자 연결 및 베어 메탈 자산에 액세스할 수도 있습니다.
cluster-name이라는 관리 클러스터를 관리하려면 다음을 참조하십시오.다음 명령을 입력하여 클러스터 역할
open-cluster-management:admin:<cluster-name>에 대한 클러스터 역할 바인딩을 생성합니다.oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name>
oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 역할에는 클러스터 범위의
관리 클러스터리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다. 이는managedcluster가 네임스페이스 범위 리소스가 아닌 클러스터 범위 리소스이므로 필요합니다.다음 명령을 입력하여 클러스터 역할
admin에 네임스페이스 역할 바인딩을 생성합니다.oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=admin
oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 역할에는 관리 클러스터의 네임스페이스에 있는 리소스에 대한 읽기 및 쓰기 권한이 있습니다.
cluster-name이라는 관리 클러스터를 보려면 다음을 참조하십시오.다음 명령을 입력하여 클러스터 역할
open-cluster-management:view:<cluster-name>에 대한 클러스터 역할 바인딩을 생성합니다.oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name>
oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 역할에는 클러스터 범위의
managedcluster리소스에 대한 읽기 액세스 권한이 있습니다. 이는managedcluster가 네임스페이스 범위 리소스가 아닌 클러스터 범위 리소스이므로 필요합니다.다음 명령을 입력하여 클러스터 역할
보기에네임스페이스 역할 바인딩을 생성합니다.oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=view
oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=viewCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 역할에는 관리 클러스터의 네임스페이스에 있는 리소스에 대한 읽기 전용 액세스 권한이 있습니다.
다음 명령을 입력하여 액세스할 수 있는 관리형 클러스터 목록을 확인합니다.
oc get managedclusters.clusterview.open-cluster-management.io
oc get managedclusters.clusterview.open-cluster-management.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 클러스터 관리자 권한이 없는 관리자와 사용자가 사용합니다.
다음 명령을 입력하여 액세스할 수 있는 관리형 클러스터 세트 목록을 확인합니다.
oc get managedclustersets.clusterview.open-cluster-management.io
oc get managedclustersets.clusterview.open-cluster-management.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 클러스터 관리자 권한이 없는 관리자와 사용자가 사용합니다.
1.1.4.1.2.1. 클러스터 풀 RBAC 링크 복사링크가 클립보드에 복사되었습니다!
다음 클러스터 풀 RBAC 작업을 확인합니다.
클러스터 풀 프로비저닝 클러스터를 사용하려면 다음을 수행합니다.
클러스터 관리자는 그룹에 역할을 추가하여 관리형 클러스터 세트를 생성하고 역할에 관리자 권한을 부여합니다.
다음 명령을 사용하여
server-foundation-clusterset관리 클러스터에admin권한을 부여합니다.oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-admin:server-foundation-clusterset server-foundation-team-admin
oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-admin:server-foundation-clusterset server-foundation-team-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여
server-foundation-clusterset관리 클러스터에보기권한을 부여합니다.oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-view:server-foundation-clusterset server-foundation-team-user
oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-view:server-foundation-clusterset server-foundation-team-userCopy to Clipboard Copied! Toggle word wrap Toggle overflow
클러스터 풀의 네임스페이스인
server-foundation-clusterpool을 생성합니다.다음 명령을 실행하여
server-foundation-team-의adminserver-foundation-clusterpool에 admin 권한을 부여합니다.oc adm new-project server-foundation-clusterpool oc adm policy add-role-to-group admin server-foundation-team-admin --namespace server-foundation-clusterpool
oc adm new-project server-foundation-clusterpool oc adm policy add-role-to-group admin server-foundation-team-admin --namespace server-foundation-clusterpoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow
팀 관리자로 클러스터 세트 레이블
cluster.open-cluster-management.io/clusterset=server-foundation-clusterset를 클러스터 풀 네임스페이스에서ocp46-aws-clusterpool이라는 클러스터 풀을 생성합니다.-
server-foundation-webhook는 클러스터 풀에 클러스터 세트 레이블이 있는지, 사용자에게 클러스터 세트를 생성할 수 있는 권한이 있는지 확인합니다. -
server-foundation-controller는server-foundation-team-user의server-foundation-clusterpool네임스페이스에보기권한을 부여합니다.
-
클러스터 풀이 생성되면 클러스터 풀이
clusterdeployment을 생성합니다.-
server-foundation-controller는server-foundation-team-의adminclusterdeployment네임스페이스에 admin 권한을 부여합니다. server-foundation-controller는server-foundation-team-user에 대해view권한clusterdeployment네임스페이스를 부여합니다.참고:
team-admin및team-user로clusterpool,clusterdeplyment,clusterclaim에 대한관리자권한이 있습니다.
-
클러스터 라이프사이클에 대한 다음 콘솔 및 API RBAC 테이블을 확인합니다.
1.1.4.1.2.2. 클러스터 라이프사이클에 대한 콘솔 RBAC 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| 리소스 | admin | edit | view |
|---|---|---|---|
| 클러스터 | 읽기, 업데이트, 삭제 | 데이터 없음 | read |
| 클러스터 세트 | get, update, bind, join | 언급되지 않은 edit 역할 | get |
| 관리형 클러스터 | 읽기, 업데이트, 삭제 | 언급된 편집 역할 없음 | get |
| 공급자 연결 | 생성, 읽기, 업데이트 및 삭제 | 데이터 없음 | read |
| 베어 메탈 자산 | 만들기, 읽기, 업데이트, 삭제 | 데이터 없음 | read |
1.1.4.1.2.3. 클러스터 라이프사이클에 대한 RBAC API 테이블 테이블 링크 복사링크가 클립보드에 복사되었습니다!
| API | admin | edit | view |
|---|---|---|---|
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| read | read | read |
|
| 업데이트 | 업데이트 | none |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| read | read | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
|
| 만들기, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | read |
1.1.4.1.2.4. 인증 정보 역할 기반 액세스 제어 링크 복사링크가 클립보드에 복사되었습니다!
자격 증명에 대한 액세스는 Kubernetes에서 제어합니다. 인증 정보는 Kubernetes 시크릿으로 저장되고 보호됩니다. 보안 액세스에는 다음 권한이 적용됩니다.
- 네임스페이스에서 보안을 생성할 수 있는 액세스 권한이 있는 사용자는 인증 정보를 생성할 수 있습니다.
- 네임스페이스의 읽기 보안에 액세스할 수 있는 사용자는 인증 정보를 볼 수도 있습니다.
-
admin및edit의 Kubernetes 클러스터 역할이 있는 사용자는 시크릿을 생성하고 편집할 수 있습니다. -
Kubernetes 클러스터 역할이 있는 사용자는 시크릿 내용을 읽고 서비스 계정 자격 증명에 액세스할 수 있으므로 시크릿을 볼 수 없습니다.