4.2. AWS에서 사용자 프로비저닝 인프라에 대한 설치 요구 사항
프로비저닝하는 인프라에 설치를 시작하기 전에 AWS 환경이 다음 설치 요구 사항을 충족하는지 확인하십시오.
사용자 프로비저닝 인프라가 포함된 클러스터의 경우, 필요한 모든 시스템을 배포해야 합니다.
4.2.1. 클러스터 설치에 필요한 시스템
최소 OpenShift Container Platform 클러스터에 다음과 같은 호스트가 필요합니다.
호스트 | 설명 |
---|---|
임시 부트스트랩 시스템 한 개 | 컨트롤 플레인 시스템 세 개에 OpenShift Container Platform 클러스터를 배포하기 위한 부트스트랩 시스템이 클러스터에 필요합니다. 클러스터를 설치한 후 부트스트랩 시스템을 제거할 수 있습니다. |
컨트롤 플레인 시스템 세 개 | 컨트롤 플레인 시스템은 컨트롤 플레인을 구성하는 Kubernetes 및 OpenShift Container Platform 서비스를 실행합니다. |
두 개 이상의 컴퓨팅 시스템(작업자 시스템이라고도 함). | OpenShift Container Platform 사용자가 요청한 워크로드는 컴퓨팅 머신에서 실행됩니다. |
클러스터의 고가용성을 유지하려면 이러한 클러스터 시스템에 대해 별도의 물리적 호스트를 사용하십시오.
부트스트랩, 컨트롤 플레인 시스템은 운영 체제로 RHCOS (Red Hat Enterprise Linux CoreOS)를 사용해야 합니다. 그러나 컴퓨팅 머신은 RHCOS(Red Hat Enterprise Linux CoreOS), RHEL(Red Hat Enterprise Linux) 8.6 이상 중에서 선택할 수 있습니다.
RHCOS는 RHEL (Red Hat Enterprise Linux) 9.2를 기반으로 하며 모든 하드웨어 인증 및 요구 사항을 상속합니다. Red Hat Enterprise Linux 기술 기능 및 제한을 참조하십시오.
4.2.1.1. 클러스터 설치를 위한 최소 리소스 요구 사항
각 클러스터 시스템이 다음과 같은 최소 요구사항을 충족해야 합니다.
머신 | 운영 체제 | vCPU [1] | 가상 RAM | 스토리지 | 초당 입력/출력(IOPS)[2] |
---|---|---|---|---|---|
부트스트랩 | RHCOS | 4 | 16GB | 100GB | 300 |
컨트롤 플레인 | RHCOS | 4 | 16GB | 100GB | 300 |
Compute | RHCOS, RHEL 8.6 이상 [3] | 2 | 8GB | 100GB | 300 |
- SMT(동시 멀티 스레딩) 또는 Hyper-Threading이 활성화되지 않은 경우 하나의 vCPU는 하나의 물리적 코어와 동일합니다. 활성화하면 다음과 같은 공식을 사용하여 해당 비율을 계산합니다. (코어 당 스레드 수 × 코어 수) × 소켓 수 = vCPU 수
- OpenShift Container Platform 및 Kubernetes는 디스크 성능에 민감하며 특히 10ms p99 fsync 기간이 필요한 컨트롤 플레인 노드의 etcd에 더 빠른 스토리지가 권장됩니다. 많은 클라우드 플랫폼에서 스토리지 크기와 IOPS를 함께 확장되므로 충분한 성능을 얻으려면 스토리지 볼륨을 과도하게 할당해야 할 수 있습니다.
- 사용자가 프로비저닝한 모든 설치와 마찬가지로 클러스터에서 RHEL 컴퓨팅 머신을 사용하기로 선택한 경우 시스템 업데이트 수행, 패치 적용 및 기타 필요한 모든 작업 실행을 포함한 모든 운영 체제의 라이프 사이클 관리 및 유지 관리에 대한 책임이 있습니다. RHEL 7 컴퓨팅 머신 사용은 더 이상 사용되지 않으며 OpenShift Container Platform 4.10 이상에서 제거되었습니다.
OpenShift Container Platform 버전 4.13부터 RHCOS는 RHEL 버전 9.2를 기반으로 하며 마이크로 아키텍처 요구 사항을 업데이트합니다. 다음 목록에는 각 아키텍처에 필요한 최소 명령 세트 아키텍처(ISA)가 포함되어 있습니다.
- x86-64 아키텍처에는 x86-64-v2 ISA가 필요합니다.
- ARM64 아키텍처에는 ARMv8.0-A ISA가 필요합니다.
- IBM Power 아키텍처에는 Power 9 ISA가 필요합니다.
- s390x 아키텍처에는 z14 ISA가 필요합니다.
자세한 내용은 RHEL 아키텍처를 참조하십시오.
플랫폼의 인스턴스 유형이 클러스터 머신의 최소 요구 사항을 충족하는 경우 OpenShift Container Platform에서 사용할 수 있습니다.
추가 리소스
4.2.1.2. AWS에서 테스트된 인스턴스 유형
다음 AWS(Amazon Web Services) 인스턴스 유형은 OpenShift Container Platform에서 테스트되었습니다.
AWS 인스턴스의 다음 차트에 포함된 머신 유형을 사용합니다. 차트에 나열되지 않은 인스턴스 유형을 사용하는 경우 사용하는 인스턴스 크기가 "클러스터 설치에 대한 최소 리소스 요구 사항" 섹션에 나열된 최소 리소스 요구 사항과 일치하는지 확인합니다.
예 4.1. 64비트 x86 아키텍처를 기반으로 하는 머신 유형
-
c4.*
-
c5.*
-
c5a.*
-
i3.*
-
m4.*
-
m5.*
-
m5a.*
-
m6a.*
-
m6i.*
-
r4.*
-
r5.*
-
r5a.*
-
r6i.*
-
t3.*
-
t3a.*
4.2.1.3. 64비트 ARM 인프라에서 AWS의 테스트된 인스턴스 유형
다음 AWS(Amazon Web Services) 64비트 ARM 인스턴스 유형은 OpenShift Container Platform에서 테스트되었습니다.
AWS ARM 인스턴스의 다음 차트에 포함된 머신 유형을 사용합니다. 차트에 나열되지 않은 인스턴스 유형을 사용하는 경우 사용하는 인스턴스 크기가 "클러스터 설치에 대한 최소 리소스 요구 사항"에 나열된 최소 리소스 요구 사항과 일치하는지 확인합니다.
예 4.2. 64비트 ARM 아키텍처를 기반으로 하는 시스템 유형
-
c6g.*
-
c7g.*
-
m6g.*
-
m7g.*
-
r8g.*
4.2.2. 인증서 서명 요청 관리
사용자가 프로비저닝하는 인프라를 사용하는 경우 자동 시스템 관리 기능으로 인해 클러스터의 액세스가 제한되므로 설치한 후 클러스터 인증서 서명 요청(CSR)을 승인하는 메커니즘을 제공해야 합니다. kube-controller-manager
는 kubelet 클라이언트 CSR만 승인합니다. machine-approver
는 올바른 시스템에서 발행한 요청인지 확인할 수 없기 때문에 kubelet 자격 증명을 사용하여 요청하는 서비스 인증서의 유효성을 보장할 수 없습니다. kubelet 서빙 인증서 요청의 유효성을 확인하고 요청을 승인하는 방법을 결정하여 구현해야 합니다.
4.2.3. 필수 AWS 인프라 구성 요소
AWS(Amazon Web Services)의 사용자 프로비저닝 인프라에 OpenShift Container Platform을 설치하려면 시스템과 지원 인프라를 모두 수동으로 생성해야 합니다.
다른 플랫폼의 통합 테스트에 대한 자세한 내용은 OpenShift Container Platform 4.x 통합 테스트 페이지를 참조하십시오.
제공된 CloudFormation 템플릿을 사용하면 다음 구성 요소를 나타내는 AWS 리소스 스택을 생성할 수 있습니다.
- AWS 가상 사설 클라우드(VPC)
- 네트워킹 및 로드 밸런싱 구성 요소
- 보안 그룹 및 역할
- OpenShift Container Platform 부트스트랩 노드
- OpenShift Container Platform 컨트롤 플레인 노드
- OpenShift Container Platform 컴퓨팅 노드
대안으로, 구성 요소를 수동으로 생성하거나 클러스터 요구 사항을 충족하는 기존 인프라를 재사용할 수 있습니다. 구성 요소의 상호 관계에 대한 자세한 내용은 CloudFormation 템플릿을 검토하십시오.
4.2.3.1. 기타 인프라 구성 요소
- A VPC
- DNS 항목
- 로드 밸런서(클래식 또는 네트워크) 및 리스너
- 공개 및 개인 Route 53 영역
- 보안 그룹
- IAM 역할
- S3 버킷
연결이 끊긴 환경에서 작업하는 경우 EC2, ELB 및 S3 끝점의 공용 IP 주소에 연결할 수 없습니다. 설치 중에 인터넷 트래픽을 제한하려는 수준에 따라 다음 구성 옵션을 사용할 수 있습니다.
옵션 1: VPC 엔드 포인트 생성
VPC 끝점을 생성하여 클러스터가 사용 중인 서브넷에 연결합니다. 엔드포인트의 이름을 다음과 같이 지정합니다.
-
ec2.<aws_region>.amazonaws.com
-
elasticloadbalancing.<aws_region>.amazonaws.com
-
s3.<aws_region>.amazonaws.com
이 옵션을 사용하면 VPC와 필요한 AWS 서비스 간에 네트워크 트래픽이 비공개로 유지됩니다.
옵션 2: VPC 엔드 포인트없이 프록시 생성
설치 프로세스의 일부로 HTTP 또는 HTTPS 프록시를 구성할 수 있습니다. 이 옵션을 사용하면 인터넷 트래픽이 프록시를 통과하여 필요한 AWS 서비스에 도달합니다.
옵션 3: VPC 끝점을 사용하여 프록시 생성
설치 프로세스의 일부로 VPC 끝점을 사용하여 HTTP 또는 HTTPS 프록시를 구성할 수 있습니다. VPC 끝점을 생성하여 클러스터가 사용 중인 서브넷에 연결합니다. 엔드포인트의 이름을 다음과 같이 지정합니다.
-
ec2.<aws_region>.amazonaws.com
-
elasticloadbalancing.<aws_region>.amazonaws.com
-
s3.<aws_region>.amazonaws.com
install-config.yaml
파일에서 프록시를 구성할 때 해당 끝점을 noProxy
필드에 추가합니다. 이 옵션을 사용하면 프록시에서 클러스터가 인터넷에 직접 액세스할 수 없습니다. 그러나 네트워크 트래픽은 VPC와 필요한 AWS 서비스 간에 프라이빗으로 유지됩니다.
필수 VPC 구성 요소
시스템과의 통신을 허용하는 서브넷과 적합한 VPC를 제공해야 합니다.
구성 요소 | AWS 유형 | 설명 | |
---|---|---|---|
VPC |
| 클러스터에서 사용할 공용 VPC를 제공해야 합니다. VPC는 각 서브넷의 라우팅 테이블을 참조하는 끝점을 사용하여 S3에서 호스팅되는 레지스트리와의 통신을 개선합니다. | |
퍼블릭 서브넷 |
| VPC에는 1 ~ 3개의 가용성 영역에 대한 퍼블릭 서브넷이 있어야 하며 이 서브넷을 적절한 인그레스 규칙과 연결해야 합니다. | |
인터넷 게이트웨이 |
| 공용 경로가 있는 공용 인터넷 게이트웨이가 VPC에 연결되어 있어야 합니다. 제공된 템플릿에서 각 퍼블릭 서브넷에는 EIP 주소를 갖는 NAT 게이트웨이가 있습니다. 이러한 NAT 게이트웨이를 사용하면 프라이빗 서브넷 인스턴스와 같은 클러스터 리소스가 인터넷에 도달할 수 있으므로 일부 제한된 네트워크 또는 프록시 시나리오에는 필요하지 않습니다. | |
네트워크 액세스 제어 |
| VPC가 다음 포트에 액세스할 수 있어야 합니다. | |
포트 | 이유 | ||
| 인바운드 HTTP 트래픽 | ||
| 인바운드 HTTPS 트래픽 | ||
| 인바운드 SSH 트래픽 | ||
| 인바운드 임시 트래픽 | ||
| 아웃바운드 임시 트래픽 | ||
프라이빗 서브넷 |
| VPC에 프라이빗 서브넷이 포함될 수 있습니다. 제공된 CloudFormation 템플릿은 1 ~ 3개 가용성 영역의 프라이빗 서브넷을 생성할 수 있습니다. 프라이빗 서브넷을 사용하는 경우 적절한 경로와 테이블을 제공해야 합니다. |
필수 DNS 및 로드 밸런싱 구성 요소
DNS 및 로드 밸런서 구성은 공개 호스팅 영역을 사용해야 하며 클러스터 인프라를 프로비저닝하는 경우 설치 프로그램이 사용하는 것과 유사한 개인 호스팅 영역을 사용할 수 있습니다. 로드 밸런서로 확인되는 DNS 항목을 생성해야 합니다. api.<cluster_name>.<domain>
에 대한 항목은 외부 로드 밸런서를 가리켜야 하고 api-int.<cluster_name>.<domain>
에 대한 항목은 내부 로드 밸런서를 가리켜야 합니다.
클러스터에는 또한 Kubernetes API 및 해당 확장에 필요한 포트 6443 및 새 시스템의 Ignition 구성 파일에 필요한 포트 22623용 로드 밸런서와 리스너가 필요합니다. 대상은 컨트롤 플레인 노드가 됩니다. 포트 6443은 클러스터 외부의 클라이언트와 클러스터 내부의 노드에서 모두 액세스할 수 있어야 합니다. 포트 22623은 클러스터 내부 노드에서 액세스할 수 있어야 합니다.
구성 요소 | AWS 유형 | 설명 |
---|---|---|
DNS |
| 내부 DNS의 호스팅 영역입니다. |
공용 로드 밸런서 |
| 퍼블릭 서브넷의 로드 밸런서입니다. |
외부 API 서버 레코드 |
| 외부 API 서버의 별칭 레코드입니다. |
외부 리스너 |
| 외부 로드 밸런서용 포트 6443의 리스너입니다. |
외부 대상 그룹 |
| 외부 로드 밸런서의 대상 그룹입니다. |
프라이빗 로드 밸런서 |
| 프라이빗 서브넷의 로드 밸런서입니다. |
내부 API 서버 레코드 |
| 내부 API 서버의 별칭 레코드입니다. |
내부 리스너 |
| 내부 로드 밸런서용 포트 22623의 리스너입니다. |
내부 대상 그룹 |
| 내부 로드 밸런서의 대상 그룹입니다. |
내부 리스너 |
| 내부 로드 밸런서용 포트 6443의 리스너입니다. |
내부 대상 그룹 |
| 내부 로드 밸런서의 대상 그룹입니다. |
보안 그룹
컨트롤 플레인 및 작업자 시스템에는 다음 포트에 대한 액세스 권한이 필요합니다.
그룹 | 유형 | IP 프로토콜 | 포트 범위 |
---|---|---|---|
|
|
|
|
|
| ||
|
| ||
|
| ||
|
|
|
|
|
| ||
|
|
|
|
|
|
컨트롤 플레인 인그레스
컨트롤 플레인 시스템에는 다음과 같은 인그레스 그룹이 필요합니다. 각 인그레스 그룹은 AWS::EC2::SecurityGroupIngress
리소스입니다.
인그레스 그룹 | 설명 | IP 프로토콜 | 포트 범위 |
---|---|---|---|
| etcd |
|
|
| Vxlan 패킷 |
|
|
| Vxlan 패킷 |
|
|
| 내부 클러스터 통신 및 Kubernetes 프록시 메트릭 |
|
|
| 내부 클러스터 통신 |
|
|
| Kubernetes kubelet, 스케줄러 및 컨트롤러 관리자 |
|
|
| Kubernetes kubelet, 스케줄러 및 컨트롤러 관리자 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
| Geneve 패킷 |
|
|
| Geneve 패킷 |
|
|
| IPsec IKE 패킷 |
|
|
| IPsec IKE 패킷 |
|
|
| IPsec NAT-T 패킷 |
|
|
| IPsec NAT-T 패킷 |
|
|
| IPsec ESP 패킷 |
|
|
| IPsec ESP 패킷 |
|
|
| 내부 클러스터 통신 |
|
|
| 내부 클러스터 통신 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
작업자 인그레스
작업자 시스템에는 다음과 같은 인그레스 그룹이 필요합니다. 각 인그레스 그룹은 AWS::EC2::SecurityGroupIngress
리소스입니다.
인그레스 그룹 | 설명 | IP 프로토콜 | 포트 범위 |
---|---|---|---|
| Vxlan 패킷 |
|
|
| Vxlan 패킷 |
|
|
| 내부 클러스터 통신 |
|
|
| 내부 클러스터 통신 |
|
|
| Kubernetes kubelet, 스케줄러 및 컨트롤러 관리자 |
|
|
| Kubernetes kubelet, 스케줄러 및 컨트롤러 관리자 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
| Geneve 패킷 |
|
|
| Geneve 패킷 |
|
|
| IPsec IKE 패킷 |
|
|
| IPsec IKE 패킷 |
|
|
| IPsec NAT-T 패킷 |
|
|
| IPsec NAT-T 패킷 |
|
|
| IPsec ESP 패킷 |
|
|
| IPsec ESP 패킷 |
|
|
| 내부 클러스터 통신 |
|
|
| 내부 클러스터 통신 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
| Kubernetes 인그레스 서비스 |
|
|
역할 및 인스턴스 프로필
AWS에서 시스템 권한을 부여해야 합니다. 제공된 CloudFormation 템플릿은 다음 AWS::IAM::Role
오브젝트에 대한 허용
권한을 머신에 부여하며 각 역할 세트의 AWS::IAM::InstanceProfile
을 제공합니다. 템플릿을 사용하지 않는 경우 다음과 같은 광범위한 권한 또는 다음과 같은 개별 권한을 시스템에 부여할 수 있습니다.
역할 | 효과 | 동작 | 리소스 이름 |
---|---|---|---|
Master |
|
|
|
|
|
| |
|
|
| |
|
|
| |
Worker |
|
|
|
부트스트랩 |
|
|
|
|
|
| |
|
|
|
4.2.3.2. 클러스터 시스템
다음 시스템의 AWS:: EC2:: Instance
개체가 필요합니다.
- 부트스트랩 시스템. 이 시스템은 설치 중에 필요하지만 클러스터가 배포된 후 제거할 수 있습니다.
- 컨트롤 플레인 시스템 세 개 컨트롤 플레인 시스템은 컨트롤 플레인 머신 세트에 의해 관리되지 않습니다.
- 컴퓨팅 시스템. 설치 중에 두 개 이상의 컴퓨팅 시스템(작업자 시스템이라고도 함)을 생성해야 합니다. 이러한 시스템은 컴퓨팅 머신 세트에 의해 관리되지 않습니다.
4.2.4. IAM 사용자에게 필요한 AWS 권한
기본 클러스터 리소스를 삭제하려면 IAM 사용자에게 us-east-1
리전에 권한 tag:GetResources
가 있어야 합니다. AWS API 요구 사항의 일부로 OpenShift Container Platform 설치 프로그램은 이 리전에서 다양한 작업을 수행합니다.
AWS(Amazon Web Services)에서 생성되는 IAM 사용자에게 AdministratorAccess
정책을 연결하면 해당 사용자에게 필요한 모든 권한이 부여됩니다. OpenShift Container Platform 클러스터의 모든 구성 요소를 배포하려면 IAM 사용자에게 다음과 같은 권한이 필요합니다.
예 4.3. 설치에 필요한 EC2 권한
-
ec2:AttachNetworkInterface
-
ec2:AuthorizeSecurityGroupEgress
-
ec2:AuthorizeSecurityGroupIngress
-
ec2:CopyImage
-
ec2:CreateNetworkInterface
-
ec2:CreateSecurityGroup
-
ec2:CreateTags
-
ec2:CreateVolume
-
ec2:DeleteSecurityGroup
-
ec2:DeleteSnapshot
-
ec2:DeleteTags
-
ec2:DeregisterImage
-
ec2:DescribeAccountAttributes
-
ec2:DescribeAddresses
-
ec2:DescribeAvailabilityZones
-
ec2:DescribeDhcpOptions
-
ec2:DescribeImages
-
ec2:DescribeInstanceAttribute
-
ec2:DescribeInstanceCreditSpecifications
-
ec2:DescribeInstances
-
ec2:DescribeInstanceTypes
-
ec2:DescribeInternetGateways
-
ec2:DescribeKeyPairs
-
ec2:DescribeNatGateways
-
ec2:DescribeNetworkAcls
-
ec2:DescribeNetworkInterfaces
-
ec2:DescribePrefixLists
-
ec2:DescribePublicIpv4Pools
(publicIpv4Pool
이install-config.yaml
에 지정된 경우에만 필요) -
ec2:DescribeRegions
-
ec2:DescribeRouteTables
-
ec2:DescribeSecurityGroupRules
-
ec2:DescribeSecurityGroups
-
ec2:DescribeSubnets
-
ec2:DescribeTags
-
ec2:DescribeVolumes
-
ec2:DescribeVpcAttribute
-
ec2:DescribeVpcClassicLink
-
ec2:DescribeVpcClassicLinkDnsSupport
-
ec2:DescribeVpcEndpoints
-
ec2:DescribeVpcs
-
ec2:DisassociateAddress
(publicIpv4Pool
이install-config.yaml
에 지정된 경우에만 필요) -
ec2:GetEbsDefaultKmsKeyId
-
ec2:ModifyInstanceAttribute
-
ec2:ModifyNetworkInterfaceAttribute
-
ec2:RevokeSecurityGroupEgress
-
ec2:RevokeSecurityGroupIngress
-
ec2:RunInstances
-
ec2:TerminateInstances
예 4.4. 설치 과정에서 네트워크 리소스를 생성하는 데 필요한 권한
-
ec2:AllocateAddress
-
ec2:AssociateAddress
-
ec2:AssociateDhcpOptions
-
ec2:AssociateRouteTable
-
ec2:AttachInternetGateway
-
ec2:CreateDhcpOptions
-
ec2:CreateInternetGateway
-
ec2:CreateNatGateway
-
ec2:CreateRoute
-
ec2:CreateRouteTable
-
ec2:CreateSubnet
-
ec2:CreateVpc
-
ec2:CreateVpcEndpoint
-
ec2:ModifySubnetAttribute
-
ec2:ModifyVpcAttribute
기존 VPC(Virtual Private Cloud)를 사용하는 경우 네트워크 리소스를 생성하기 위한 이러한 권한이 계정에 필요하지 않습니다.
예 4.5. 설치에 필요한 ELB(Elastic Load Balancing 권한)
-
elasticloadbalancing:AddTags
-
elasticloadbalancing:ApplySecurityGroupsToLoadBalancer
-
elasticloadbalancing:AttachLoadBalancerToSubnets
-
elasticloadbalancing:ConfigureHealthCheck
-
elasticloadbalancing:CreateListener
-
elasticloadbalancing:CreateLoadBalancer
-
elasticloadbalancing:CreateLoadBalancerListeners
-
elasticloadbalancing:CreateTargetGroup
-
elasticloadbalancing:DeleteLoadBalancer
-
elasticloadbalancing:DeregisterInstancesFromLoadBalancer
-
elasticloadbalancing:DeregisterTargets
-
elasticloadbalancing:DescribeInstanceHealth
-
elasticloadbalancing:DescribeListeners
-
elasticloadbalancing:DescribeLoadBalancerAttributes
-
elasticloadbalancing:DescribeLoadBalancers
-
elasticloadbalancing:DescribeTags
-
elasticloadbalancing:DescribeTargetGroupAttributes
-
elasticloadbalancing:DescribeTargetHealth
-
elasticloadbalancing:ModifyLoadBalancerAttributes
-
elasticloadbalancing:ModifyTargetGroup
-
elasticloadbalancing:ModifyTargetGroupAttributes
-
elasticloadbalancing:RegisterInstancesWithLoadBalancer
-
elasticloadbalancing:RegisterTargets
-
elasticloadbalancing:SetLoadBalancerPoliciesOfListener
-
elasticloadbalancing:SetSecurityGroups
OpenShift Container Platform은 ELB 및 ELBv2 API 서비스를 모두 사용하여 로드 밸런서를 프로비저닝합니다. 권한 목록에는 두 서비스에 모두 필요한 권한이 표시됩니다. 두 서비스가 동일한 elasticloadbalancing
작업 접두사를 사용하지만 동일한 작업을 인식하지 못하는 AWS 웹 콘솔에 알려진 문제가 있습니다. 특정 탄력적
로드 밸런싱 작업을 인식하지 못하는 서비스에 대한 경고를 무시할 수 있습니다.
예 4.6. 설치에 필요한 IAM 권한
-
iam:AddRoleToInstanceProfile
-
iam:CreateInstanceProfile
-
iam:CreateRole
-
iam:DeleteInstanceProfile
-
iam:DeleteRole
-
iam:DeleteRolePolicy
-
iam:GetInstanceProfile
-
iam:GetRole
-
iam:GetRolePolicy
-
iam:GetUser
-
iam:ListInstanceProfilesForRole
-
iam:ListRoles
-
iam:ListUsers
-
iam:PassRole
-
iam:PutRolePolicy
-
iam:RemoveRoleFromInstanceProfile
-
iam:SimulatePrincipalPolicy
-
iam:TagInstanceProfile
-
iam:TagRole
-
install-config.yaml
파일에서 기존 IAM 역할을 지정하는 경우 다음 IAM 권한이 필요하지 않습니다.iam:CreateRole
,iam:DeleteRole
,iam:DeleteRolePolicy
,iam:PutRolePolicy
. -
AWS 계정에서 로드 밸런서를 생성하지 않은 경우 IAM 사용자에게
iam:CreateServiceLinkedRole
권한이 필요합니다.
예 4.7. 설치에 필요한 Route 53 권한
-
route53:ChangeResourceRecordSets
-
route53:ChangeTagsForResource
-
route53:CreateHostedZone
-
route53:DeleteHostedZone
-
route53:GetChange
-
route53:GetHostedZone
-
route53:ListHostedZones
-
route53:ListHostedZonesByName
-
route53:ListResourceRecordSets
-
route53:ListTagsForResource
-
route53:UpdateHostedZoneComment
예 4.8. 설치에 필요한 Amazon S3(Simple Storage Service) 권한
-
s3:CreateBucket
-
s3:DeleteBucket
-
s3:GetAccelerateConfiguration
-
s3:GetBucketAcl
-
s3:GetBucketCors
-
s3:GetBucketLocation
-
s3:GetBucketLogging
-
s3:GetBucketObjectLockConfiguration
-
s3:GetBucketPolicy
-
s3:GetBucketRequestPayment
-
s3:GetBucketTagging
-
s3:GetBucketVersioning
-
s3:GetBucketWebsite
-
s3:GetEncryptionConfiguration
-
s3:GetLifecycleConfiguration
-
s3:GetReplicationConfiguration
-
s3:ListBucket
-
s3:PutBucketAcl
-
s3:PutBucketPolicy
-
s3:PutBucketTagging
-
s3:PutEncryptionConfiguration
예 4.9. 클러스터 Operator에 필요한 S3 권한
-
s3:DeleteObject
-
s3:GetObject
-
s3:GetObjectAcl
-
s3:GetObjectTagging
-
s3:GetObjectVersion
-
s3:PutObject
-
s3:PutObjectAcl
-
s3:PutObjectTagging
예 4.10. 기본 클러스터 리소스를 삭제하는 데 필요한 권한
-
autoscaling:DescribeAutoScalingGroups
-
ec2:DeleteNetworkInterface
-
ec2:DeletePlacementGroup
-
ec2:DeleteVolume
-
elasticloadbalancing:DeleteTargetGroup
-
elasticloadbalancing:DescribeTargetGroups
-
iam:DeleteAccessKey
-
iam:DeleteUser
-
iam:DeleteUserPolicy
-
iam:ListAttachedRolePolicies
-
iam:ListInstanceProfiles
-
iam:ListRolePolicies
-
iam:ListUserPolicies
-
s3:DeleteObject
-
s3:ListBucketVersions
-
tag:GetResources
예 4.11. 네트워크 리소스를 삭제하는 데 필요한 권한
-
ec2:DeleteDhcpOptions
-
ec2:DeleteInternetGateway
-
ec2:DeleteNatGateway
-
ec2:DeleteRoute
-
ec2:DeleteRouteTable
-
ec2:DeleteSubnet
-
ec2:DeleteVpc
-
ec2:DeleteVpcEndpoints
-
ec2:DetachInternetGateway
-
ec2:DisassociateRouteTable
-
ec2:ReleaseAddress
-
ec2:ReplaceRouteTableAssociation
기존 VPC를 사용하는 경우 네트워크 리소스를 삭제하기 위해 계정에 이러한 권한이 필요하지 않습니다. 대신 사용자 계정에는 네트워크 리소스를 삭제하기 위한 tag:UntagResources
권한만 필요합니다.
예 4.12. 사용자 정의 KMS(Key Management Service) 키를 사용하여 클러스터를 설치할 수 있는 선택적 권한
-
kms:CreateGrant
-
kms:Decrypt
-
kms:DescribeKey
-
kms:Encrypt
-
kms:GenerateDataKey
-
kms:GenerateDataKeyWithoutPlainText
-
kms:ListGrants
-
kms:RevokeGrant
예 4.13. 공유 인스턴스 역할이 있는 클러스터를 삭제하는 데 필요한 권한
-
iam:UntagRole
예 4.14. 매니페스트를 생성하는 데 필요한 추가 IAM 및 S3 권한
-
iam:GetUserPolicy
-
iam:ListAccessKeys
-
iam:PutUserPolicy
-
iam:TagUser
-
s3:AbortMultipartUpload
-
s3:GetBucketPublicAccessBlock
-
s3:ListBucket
-
s3:ListBucketMultipartUploads
-
s3:PutBucketPublicAccessBlock
-
s3:PutLifecycleConfiguration
Mint 모드로 클라우드 공급자 인증 정보를 관리하는 경우 IAM 사용자에게 iam:CreateAccessKey
및 iam:CreateUser
권한도 필요합니다.
예 4.15. 인스턴스에 대한 선택적 권한 및 설치에 대한 할당량 검사
-
ec2:DescribeInstanceTypeOfferings
-
servicequotas:ListAWSDefaultServiceQuotas
예 4.16. 공유 VPC에 클러스터를 설치할 때 클러스터 소유자 계정에 대한 선택적 권한
-
sts:AssumeRole
예 4.17. 설치에 필요한 공용 IPv4 주소(BYOIP) 기능 Bring your own public IPv4 addresses (BYOIP) feature for installation
-
ec2:DescribePublicIpv4Pools
-
ec2:DisassociateAddress
4.2.5. AWS Marketplace 이미지 가져오기
AWS Marketplace 이미지를 사용하여 OpenShift Container Platform 클러스터를 배포하는 경우 먼저 AWS를 통해 등록해야 합니다. 이 프로모션을 구독하면 설치 프로그램이 컴퓨팅 노드를 배포하는 데 사용하는 AMI ID가 제공됩니다.
사전 요구 사항
- 서비스를 구매할 AWS 계정이 있습니다. 이 계정은 클러스터를 설치하는 데 사용되는 계정과 같을 필요는 없습니다.
프로세스
- AWS Marketplace 에서 OpenShift Container Platform 서브스크립션을 완료합니다.