1장. Azure에 설치
1.1. Azure 계정 구성
OpenShift Container Platform을 설치하려면 먼저 Microsoft Azure 계정을 구성해야 합니다.
공용 끝점을 통해 사용할 수 있는 모든 Azure 리소스에는 리소스 이름 제한 사항이 적용되며, 특정 용어를 사용하는 리소스를 생성할 수 없습니다. Azure가 제한하는 용어 목록은 Azure 문서의 예약된 리소스 이름 오류 해결을 참조하십시오.
1.1.1. Azure 계정 제한
OpenShift Container Platform 클러스터는 수많은 Microsoft Azure 구성 요소를 사용하며, 기본 Azure 서브크립션 및 서비스 제한, 할당량 및 제약 조건은 OpenShift Container Platform 클러스터 설치에 영향을 미칩니다.
기본 제한값은 무료 평가판 및 종량 과금제와 같은 상품 카테고리 유형과 Dv2, F, G 등 시리즈에 따라 다릅니다. 예를 들어 기업 계약 서브스크립션의 기본값은 350개 코어입니다.
서브스크립션 유형에 대한 제한값을 확인하고 필요한 경우 Azure에 기본 클러스터를 설치하기 전에 계정에 대한 할당량 제한값을 늘리십시오.
다음 표에 OpenShift Container Platform 클러스터를 설치하고 실행하는 데 영향을 미칠 수 있는 Azure 구성 요소 제한값이 요약되어 있습니다.
구성 요소 | 기본적으로 필요한 구성 요소 수 | 기본 Azure 제한값 | 설명 | ||||||
---|---|---|---|---|---|---|---|---|---|
vCPU | 40 | 리전당 20개 | 기본 클러스터의 경우 40개의 vCPU가 필요하므로 계정 제한을 늘려야 합니다. 기본적으로 각 클러스터는 다음 인스턴스를 생성합니다.
부트스트랩 시스템은 4개의 vCPU를 사용하는 더 많은 작업자 노드를 배포하거나, 자동 크기 조정을 활성화하거나, 대규모 워크로드를 배포하거나, 다른 인스턴스 유형을 사용하려면 필요한 시스템을 클러스터가 배포할 수 있도록 계정의 vCPU 제한값을 더 늘려야 합니다. 기본적으로 설치 프로그램은 컨트롤 플레인과 컴퓨팅 시스템을 한 리전 내의 모든 가용성 영역에 분배합니다. 클러스터의 고가용성을 보장하기 위해서는 가용성 영역이 세 개 이상인 리전을 선택하십시오. 각 리전에 가용성 영역이 세 개 미만인 경우에는 설치 프로그램이 사용 가능한 영역에 둘 이상의 컨트롤 플레인 시스템을 배치합니다. | ||||||
OS 디스크 | 7 |
VM OS 디스크는 최소 처리량 5000 IOPS/200MBps를 유지할 수 있어야 합니다. 이 처리량은 최소 1 TiB Premium SSD (P30)를 보유하여 제공할 수 있습니다. Azure에서는 디스크 성능은 SSD 디스크 크기에 직접적으로 의존하므로
읽기 대기 시간이 짧고 읽기 IOPS 및 처리량을 높이려면 호스트 캐싱을 | |||||||
VNet | 1 | 리전당 1000개 | 각 기본 클러스터에는 두 개의 서브넷이 포함된 하나의 가상 네트워크(VNet)가 필요합니다. | ||||||
네트워크 인터페이스 | 6 | 리전당 65,536개 | 각 기본 클러스터에는 여섯 개의 네트워크 인터페이스가 필요합니다. 더 많은 시스템을 생성하거나 배포된 워크로드가 로드 밸런서를 생성하는 경우 클러스터는 더 많은 네트워크 인터페이스를 사용합니다. | ||||||
네트워크 보안 그룹 | 2 | 5000 | 각 기본 클러스터 각 클러스터는 VNet의 각 서브넷에 대한 네트워크 보안 그룹을 생성합니다. 기본 클러스터는 컨트롤 플레인과 컴퓨팅 노드 서브넷에 대한 네트워크 보안 그룹을 생성합니다:
| ||||||
네트워크 로드 밸런서 | 3 | 리전당 1000개 | 각 클러스터는 다음 로드 밸런서를 생성합니다.
애플리케이션이 더 많은 Kubernetes | ||||||
공용 IP 주소 | 3 | 두 개의 공용 로드 밸런서 각각이 공용 IP 주소를 사용합니다. 또한 부트스트랩 시스템은 공용 IP 주소를 사용하므로 설치 중 문제를 해결하기 위해 시스템으로 SSH를 실행할 수 있습니다. 부트스트랩 노드의 IP 주소는 설치 중에만 사용됩니다. | |||||||
개인 IP 주소 | 7 | 내부 로드 밸런서, 3개의 컨트롤 플레인 시스템 및 3개의 각 작업자 시스템은 각각 개인 IP 주소를 사용합니다. | |||||||
스팟 VM vCPU (선택 사항) | 0 스팟 VM을 구성하는 경우 클러스터에 모든 컴퓨팅 노드에 대해 두 개의 스팟 VM vCPU가 있어야 합니다. | 리전당 20개 | 이는 선택적 구성 요소입니다. 스팟 VM을 사용하려면 클러스터의 컴퓨팅 노드 수를 두 배 이상 Azure 기본 제한으로 늘려야 합니다. 참고 컨트롤 플레인 노드에 스팟 VM을 사용하는 것은 권장되지 않습니다. |
1.1.2. Azure에서 퍼블릭 DNS 영역 구성
OpenShift Container Platform을 설치하려면 사용하는 Microsoft Azure 계정에 전용의 퍼블릭 호스팅 DNS 영역이 있어야 합니다. 도메인에 대한 권한도 이 영역에 있어야 합니다. 이 서비스는 클러스터와 외부 연결에 필요한 클러스터 DNS 확인 및 이름 조회 기능을 제공합니다.
프로세스
도메인 또는 하위 도메인과 등록 기관을 식별합니다. 기존 도메인 및 등록 기관을 이전하거나 Azure 또는 다른 소스를 통해 새 도메인과 등록 기관을 받을 수 있습니다.
참고Azure를 통한 도메인 구매에 대한 자세한 내용은 Azure 문서에서 Azure App Service의 사용자 지정 도메인 이름 구매를 참조하십시오.
- 기존 도메인과 등록 기관을 사용하는 경우 해당 DNS를 Azure로 마이그레이션합니다. Azure 문서의 활성 DNS 이름을 Azure App Service로 마이그레이션을 참조하십시오.
도메인에 맞게 DNS를 구성합니다. 강의 단계를 따르십시오. Azure 설명서의 Azure DNS 에서 도메인을 호스팅하여 도메인 또는 하위 도메인의 퍼블릭 호스팅 영역을 생성하고, 권한 있는 새 이름 서버를 추출하고, 도메인에서 사용하는 이름 서버의 등록 기관 레코드를 업데이트합니다.
적절한 루트 도메인(예:
openshiftcorp.com
) 또는 하위 도메인(예:clusters.openshiftcorp.com)
을 사용합니다.- 하위 도메인을 사용하는 경우, 회사의 프로시저에 따라 상위 도메인에 위임 레코드를 추가합니다.
1.1.3. Azure 계정 제한 늘리기
계정 제한을 늘리려면 Azure 포털에서 지원 요청을 제출하십시오.
지원 요청당 한 가지 유형의 할당량만 늘릴 수 있습니다.
프로세스
- Azure 포털의 왼쪽 하단 모서리에서 Help + support를 클릭합니다.
New support request를 클릭한 후 필요한 값을 선택합니다.
- Issue type 목록에서 Service and subscription limits (quotas)을 선택합니다.
- Subscription 목록에서 수정할 서브스크립션을 선택합니다.
- Quota type 목록에서 증가시킬 할당량을 선택합니다. 예를 들어 클러스터를 설치하는 데 필요해서 vCPU 수를 늘리려면 Compute-VM (cores-vCPUs) subscription limit increases를 선택합니다.
- 다음을 클릭합니다. 솔루션.
Problem Details 페이지에서 할당량 증가에 필요한 정보를 제공합니다.
- Provide details를 클릭하고 Quota details 창에서 필요한 세부 사항을 제공합니다.
- SUPPORT METHOD 및 CONTACT INFO 섹션에서 문제 심각도와 연락처 정보를 제공합니다.
- 다음을 클릭합니다. + create 을 검토한 다음 생성을 클릭합니다.
1.1.4. 필수 Azure 역할
OpenShift Container Platform에는 Microsoft Azure 리소스를 관리할 수 있도록 서비스 주체가 필요합니다. 서비스 주체를 만들려면 먼저 Azure 계정 구독에 다음 역할이 있어야 합니다.Before you can create a service principal, your Azure account subscription must have the following roles:
-
User Access Administrator
-
소유자
Azure 포털에서 역할을 설정하려면 Azure 문서의 RBAC 및 Azure 포털을 사용하여 Azure 리소스에 대한 액세스 관리를 참조하십시오.
1.1.5. 서비스 주체 생성
OpenShift Container Platform과 해당 설치 프로그램은 Azure Resource Manager를 통해 Microsoft Azure 리소스를 생성해야 하므로 이를 대표하는 서비스 주체를 생성해야 합니다.
사전 요구 사항
- Azure CLI를 설치 또는 업데이트합니다.
-
jq
패키지를 설치합니다. - Azure 계정은 사용하는 서브스크립션에 대한 필요한 역할을 갖습니다.
프로세스
Azure CLI에 로그인합니다.
$ az login
인증 정보를 사용하여 웹 콘솔에서 Azure에 로그인합니다.
Azure 계정이 서브스크립션을 사용하는 경우, 올바른 서브스크립션을 사용하고 있는지 확인합니다.
사용 가능한 계정 목록을 보고 클러스터에 사용하려는 서브스크립션의
tenantId
값을 기록합니다.$ az account list --refresh
출력 예
[ { "cloudName": "AzureCloud", "id": "9bab1460-96d5-40b3-a78e-17b15e978a80", "isDefault": true, "name": "Subscription Name", "state": "Enabled", "tenantId": "6057c7e9-b3ae-489d-a54e-de3f6bf6a8ee", "user": { "name": "you@example.com", "type": "user" } } ]
활성 계정 세부 사항을 보고
tenantId
값이 사용하려는 서브스크립션과 일치하는지 확인합니다.$ az account show
출력 예
{ "environmentName": "AzureCloud", "id": "9bab1460-96d5-40b3-a78e-17b15e978a80", "isDefault": true, "name": "Subscription Name", "state": "Enabled", "tenantId": "6057c7e9-b3ae-489d-a54e-de3f6bf6a8ee", 1 "user": { "name": "you@example.com", "type": "user" } }
- 1
tenantId
매개변수의 값이 올바른 서브스크립션의 UUID인지 확인합니다.
올바른 서브스크립션을 사용하지 않는 경우, 활성 서브스크립션을 변경합니다.
$ az account set -s <id> 1
- 1
<id>
에 사용하려는 서브스크립션의id
값을 대체합니다.
활성 서브스크립션을 변경한 경우 계정 정보를 다시 표시합니다.
$ az account show
출력 예
{ "environmentName": "AzureCloud", "id": "33212d16-bdf6-45cb-b038-f6565b61edda", "isDefault": true, "name": "Subscription Name", "state": "Enabled", "tenantId": "8049c7e9-c3de-762d-a54e-dc3f6be6a7ee", "user": { "name": "you@example.com", "type": "user" } }
-
이전 출력의
tenantId
및id
매개변수 값을 기록합니다. OpenShift Container Platform 설치 중에 이러한 값이 필요합니다. 계정에 대한 서비스 주체를 생성합니다.
$ az ad sp create-for-rbac --role Contributor --name <service_principal> 1
- 1
<service_principal>
을 서비스 주체에 할당할 이름으로 바꿉니다.
출력 예
Changing "<service_principal>" to a valid URI of "http://<service_principal>", which is the required format used for service principal names Retrying role assignment creation: 1/36 Retrying role assignment creation: 2/36 Retrying role assignment creation: 3/36 Retrying role assignment creation: 4/36 { "appId": "8bd0d04d-0ac2-43a8-928d-705c598c6956", "displayName": "<service_principal>", "name": "http://<service_principal>", "password": "ac461d78-bf4b-4387-ad16-7e32e328aec6", "tenant": "6048c7e9-b2ad-488d-a54e-dc3f6be6a7ee" }
-
이전 출력의
appId
및password
매개변수 값을 기록합니다. OpenShift Container Platform 설치 중에 이러한 값이 필요합니다. 서비스 주체에 추가 권한을 부여합니다.
-
클러스터가 해당 구성 요소에 대한 인증 정보를 할당할 수 있도록 항상
Contributor
및User Access Administrator
역할을 앱 등록 서비스 주체에 추가해야 합니다. -
mint 모드에서 CCO (Cloud Credential Operator)를 작동하려면 앱 등록 서비스 주체에도
Azure Active Directory Graph/Application.ReadWrite.OwnedBy
API 권한이 필요합니다. - passthrough 모드에서 CCO를 작동하기 위해 앱 등록 서비스 주체는 추가 API 권한이 필요하지 않습니다.
CCO 모드에 대한 자세한 내용은 Red Hat Operators 참조 콘텐츠의 Cloud Credential Operator 부분을 참조하십시오.
User Access Administrator
역할을 할당하려면 다음 명령을 실행합니다.$ az role assignment create --role "User Access Administrator" \ --assignee-object-id $(az ad sp list --filter "appId eq '<appId>'" \ | jq '.[0].id' -r) 1
- 1
<appId>
를 서비스 주체의appId
매개변수 값으로 대체합니다.
Azure Active Directory Graph
권한을 할당하려면 다음 명령을 실행합니다.$ az ad app permission add --id <appId> \ 1 --api 00000002-0000-0000-c000-000000000000 \ --api-permissions 824c81eb-e3f8-4ee6-8f6d-de7f50d565b7=Role
- 1
<appId>
를 서비스 주체의appId
매개변수 값으로 대체합니다.
출력 예
Invoking "az ad app permission grant --id 46d33abc-b8a3-46d8-8c84-f0fd58177435 --api 00000002-0000-0000-c000-000000000000" is needed to make the change effective
이 명령으로 부여한 특정 권한에 대한 자세한 내용은 Windows Azure Active Directory 권한에 대한 GUID 테이블을 참조하십시오.
권한 요청을 승인합니다. 계정에 Azure Active Directory 테넌트 관리자 역할이 없는 경우 조직의 지침에 따라 테넌트 관리자가 권한 요청을 승인해 주도록 요청하십시오.
$ az ad app permission grant --id <appId> \ 1 --api 00000002-0000-0000-c000-000000000000
- 1
<appId>
를 서비스 주체의appId
매개변수 값으로 대체합니다.
-
클러스터가 해당 구성 요소에 대한 인증 정보를 할당할 수 있도록 항상
1.1.6. 지원되는 Azure 리전
설치 프로그램은 서브스크립션을 기반으로 사용 가능한 Microsoft Azure 리전 목록을 동적으로 생성합니다. 다음 Azure 리전은 OpenShift Container Platform 버전 4.6.1에서 테스트하고 검증되었습니다.
지원되는 Azure 리전
-
australiacentral
(호주 중부) -
australiaeast
(호주 동부) -
australiasoutheast
(호주 남동부) -
brazilsouth
(브라질 남부) -
canadacentral
(캐나다 중부) -
canadaeast
(캐나다 동부) -
centralindia
(인도 중부) -
centralus
(미국 중부) -
eastasia
(동아시아) -
eastus
(미국 동부) -
eastus2
(미국 동부 2) -
francecentral
(프랑스 중부) -
germanywestcentral
(독일 중서부) -
japaneast
(일본 동부) -
japanwest
(일본 서부) -
koreacentral
(한국 중부) -
koreasouth
(한국 남부) -
northcentralus
(미국 중북부) -
northeurope
(북유럽) -
norwayeast
(노르웨이 동부) -
southafricanorth
(남아프리카 북부) -
southcentralus
(미국 중남부) -
southeastasia
(동남아시아) -
southindia
(인도 남부) -
switzerlandnorth
(스위스 북부) -
uaenorth
(UAE 북부) -
uksouth
(영국 남부) -
ukwest
(영국 서부) -
westcentralus
(미국 중서부) -
westeurope
(서유럽) -
westindia
(인도 서부) -
westus
(미국 서부) -
westus2
(미국 서부 2)
지원되는 Azure Government 리전
OpenShift Container Platform 버전 4.6에는 다음과 같은 MAG (Microsoft Azure Government) 리전에 대한 지원이 추가되어 있습니다.
-
usgovtexas
(US Gov Texas) -
usgovvirginia
(US Gov Virginia)
사용 가능한 모든 MAG 리전은 Azure 설명서에서 확인할 수 있습니다. 제공되는 다른 MAG 리전은 OpenShift Container Platform에서 작동할 것으로 예상되지만 아직 테스트되지 않았습니다.
1.1.7. 다음 단계
- OpenShift Container Platform 클러스터를 Azure에 설치합니다. 사용자 지정 클러스터를 설치하거나 기본 옵션을 적용하여 클러스터를 빠르게 설치할 수 있습니다.