6.2. Azure Stack Hub 계정 구성

OpenShift Container Platform을 설치하려면 먼저 Microsoft Azure 계정을 구성해야 합니다.

중요

공용 끝점을 통해 사용할 수 있는 모든 Azure 리소스에는 리소스 이름 제한 사항이 적용되며, 특정 용어를 사용하는 리소스를 생성할 수 없습니다. Azure가 제한하는 용어 목록은 Azure 문서의 예약된 리소스 이름 오류 해결을 참조하십시오.

6.2.1. Azure Stack Hub 계정 제한

OpenShift Container Platform 클러스터는 여러 Microsoft Azure Stack Hub 구성 요소를 사용하며 Azure Stack Hub의 기본 할당량 유형은 OpenShift Container Platform 클러스터를 설치하는 기능에 영향을 줍니다.

다음 표에는 OpenShift Container Platform 클러스터를 설치 및 실행하는 기능에 영향을 줄 수 있는 제한이 있는 Azure Stack Hub 구성 요소가 요약되어 있습니다.

구성 요소기본적으로 필요한 구성 요소 수설명

vCPU

56

기본 클러스터에는 56개의 vCPU가 필요하므로 계정 제한을 늘려야 합니다.

기본적으로 각 클러스터는 다음 인스턴스를 생성합니다.

  • 설치 후 제거되는 하나의 부트스트랩 시스템
  • 컨트롤 플레인 시스템 세 개
  • 컴퓨팅 시스템 세 개

부트스트랩, 컨트롤 플레인 및 작업자 시스템은 8개의 vCPU를 사용하는 Standard_DS4_v2 가상 시스템을 사용하기 때문에 기본 클러스터에는 56개의 vCPU가 필요합니다. 부트스트랩 노드 VM은 설치 중에만 사용됩니다.

더 많은 작업자 노드를 배포하거나, 자동 크기 조정을 활성화하거나, 대규모 워크로드를 배포하거나, 다른 인스턴스 유형을 사용하려면 필요한 시스템을 클러스터가 배포할 수 있도록 계정의 vCPU 제한값을 더 늘려야 합니다.

OS 디스크

7

VM OS 디스크는 컨트롤 플레인 시스템에 대해 테스트되고 권장되는 최소 처리량 5000 IOPS/200MBps를 유지할 수 있어야 합니다. 이 처리량은 최소 1 TiB Premium SSD (P30)를 보유하여 제공할 수 있습니다. Azure Stack Hub에서 디스크 성능은 SSD 디스크 크기에 직접 의존하므로 Standard_D8s_v3 또는 기타 유사한 머신 유형 및 5000 IOPS 대상에서 지원하는 처리량을 달성해야 합니다. 최소 P30 디스크가 필요합니다.

읽기 대기 시간이 짧고 읽기 IOPS 및 처리량을 높이려면 호스트 캐싱을 ReadOnly로 설정해야 합니다. VM 메모리 또는 로컬 SSD 디스크에 있는 캐시에서 수행된 읽기는 Blob 스토리지에 있는 데이터 디스크에서 읽기보다 훨씬 빠릅니다.

VNet

1

각 기본 클러스터에는 두 개의 서브넷이 포함된 하나의 가상 네트워크(VNet)가 필요합니다.

네트워크 인터페이스

7

각 기본 클러스터에는 7개의 네트워크 인터페이스가 필요합니다. 더 많은 시스템을 생성하거나 배포된 워크로드가 로드 밸런서를 생성하는 경우 클러스터는 더 많은 네트워크 인터페이스를 사용합니다.

네트워크 보안 그룹

2

각 클러스터는 VNet의 각 서브넷에 대한 네트워크 보안 그룹을 생성합니다. 기본 클러스터는 컨트롤 플레인과 컴퓨팅 노드 서브넷에 대한 네트워크 보안 그룹을 생성합니다:

controlplane

어디에서나 포트 6443에서 컨트롤 플레인 시스템에 도달할 수 있습니다.

node

포트 80 및 443을 통해 인터넷에서 작업자 노드에 도달할 수 있습니다.

네트워크 로드 밸런서

3

각 클러스터는 다음 로드 밸런서를 생성합니다.

default

작업자 시스템에서 포트 80과 443에 대한 요청을 로드 밸런싱하는 공용 IP 주소

internal

컨트롤 플레인 시스템에서 포트 6443과 22623에 대한 요청을 로드 밸런싱하는 개인 IP 주소

external

컨트롤 플레인 시스템에서 포트 6443에 대한 요청을 로드 밸런싱하는 공용 IP 주소

애플리케이션이 더 많은 Kubernetes LoadBalancer Service 개체를 생성하면 클러스터가 더 많은 로드 밸런서를 사용합니다.

공용 IP 주소

2

공용 로드 밸런서는 공용 IP 주소를 사용합니다. 또한 부트스트랩 시스템은 공용 IP 주소를 사용하므로 설치 중 문제를 해결하기 위해 시스템으로 SSH를 실행할 수 있습니다. 부트스트랩 노드의 IP 주소는 설치 중에만 사용됩니다.

개인 IP 주소

7

내부 로드 밸런서, 3개의 컨트롤 플레인 시스템 및 3개의 각 작업자 시스템은 각각 개인 IP 주소를 사용합니다.

6.2.2. Azure Stack Hub에서 DNS 영역 구성

Azure Stack Hub에 OpenShift Container Platform을 성공적으로 설치하려면 Azure Stack Hub DNS 영역에서 DNS 레코드를 생성해야 합니다. DNS 영역은 도메인에 대한 권한이 있어야 합니다. 등록 프로그램의 DNS 영역을 Azure Stack Hub에 위임하려면 Azure Stack Hub 데이터센터 DNS 통합에 대한 Microsoft 설명서를 참조하십시오.

6.2.3. 필수 Azure Stack Hub 역할

Microsoft Azure Stack Hub 계정에는 사용하는 서브스크립션에 대한 다음 역할이 있어야 합니다.

  • 소유자

Azure 포털에서 역할을 설정하려면 Microsoft 문서의 역할 기반 액세스 제어를 사용하여 Azure Stack Hub의 리소스에 대한 액세스 관리를 참조하십시오.

6.2.4. 서비스 주체 생성

OpenShift Container Platform 및 해당 설치 프로그램은 Azure Resource Manager를 사용하여 Microsoft Azure 리소스를 생성하므로 이를 나타내는 서비스 주체를 생성해야 합니다.

사전 요구 사항

  • Azure CLI를 설치 또는 업데이트합니다.
  • Azure 계정은 사용하는 서브스크립션에 대한 필요한 역할을 갖습니다.

절차

  1. 환경을 등록합니다.

    $ az cloud register -n AzureStackCloud --endpoint-resource-manager <endpoint> 1
    1
    Azure Resource Manager 끝점을 'https://management.<region>.<fqdn>/'로 지정합니다.

    자세한 내용은 Microsoft 설명서를 참조하십시오.

  2. 활성 환경을 설정합니다.

    $ az cloud set -n AzureStackCloud
  3. Azure Stack Hub의 특정 API 버전을 사용하도록 환경 구성을 업데이트합니다.

    $ az cloud update --profile 2019-03-01-hybrid
  4. Azure CLI에 로그인합니다.

    $ az login

    다중 테넌트 환경에 있는 경우 테넌트 ID도 제공해야 합니다.

  5. Azure 계정이 서브스크립션을 사용하는 경우 올바른 서브스크립션을 사용하고 있는지 확인합니다.

    1. 사용 가능한 계정 목록을 보고 클러스터에 사용하려는 서브스크립션의 tenantId 값을 기록합니다.

      $ az account list --refresh

      출력 예

      [
        {
          "cloudName": AzureStackCloud",
          "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"
          }
        }
      ]

    2. 활성 계정 세부 사항을 보고 tenantId 값이 사용하려는 서브스크립션과 일치하는지 확인합니다.

      $ az account show

      출력 예

      {
        "environmentName": AzureStackCloud",
        "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 매개변수 값이 올바른 서브스크립션 ID인지 확인합니다.
    3. 올바른 서브스크립션을 사용하지 않는 경우, 활성 서브스크립션을 변경합니다.

      $ az account set -s <subscription_id> 1
      1
      서브스크립션 ID를 지정합니다.
    4. 서브스크립션 ID 업데이트를 확인합니다.

      $ az account show

      출력 예

      {
        "environmentName": AzureStackCloud",
        "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"
        }
      }

  6. 출력의 tenantIdid 매개변수 값을 기록합니다. OpenShift Container Platform 설치 중에 이러한 값이 필요합니다.
  7. 계정에 대한 서비스 주체를 생성합니다.

    $ az ad sp create-for-rbac --role Contributor --name <service_principal> \ 1
      --scopes /subscriptions/<subscription_id> 2
      --years <years> 3
    1
    서비스 주체 이름을 지정합니다.
    2
    서브스크립션 ID를 지정합니다.
    3
    년 수를 지정합니다. 기본적으로 서비스 주체는 1년 후에 만료됩니다. --years 옵션을 사용하면 서비스 주체의 유효성을 확장할 수 있습니다.

    출력 예

    Creating 'Contributor' role assignment under scope '/subscriptions/<subscription_id>'
    The output includes credentials that you must protect. Be sure that you do not
    include these credentials in your code or check the credentials into your source
    control. For more information, see https://aka.ms/azadsp-cli
    {
      "appId": "ac461d78-bf4b-4387-ad16-7e32e328aec6",
      "displayName": <service_principal>",
      "password": "00000000-0000-0000-0000-000000000000",
      "tenantId": "8049c7e9-c3de-762d-a54e-dc3f6be6a7ee"
    }

  8. 이전 출력의 appIdpassword 매개변수 값을 기록합니다. OpenShift Container Platform 설치 중에 이러한 값이 필요합니다.

추가 리소스

6.2.5. 다음 단계