다음을 통해 공유


Azure Red Hat OpenShift 4 프라이빗 클러스터 만들기

이 문서에서는 OpenShift 4를 실행하는 Azure Red Hat OpenShift 프라이빗 클러스터를 만들기 위한 환경을 준비합니다. 이 문서에서 배울 내용은 다음과 같습니다.

  • 필수 구성 요소를 설정하고 필요한 가상 네트워크 및 서브넷 만들기
  • 프라이빗 API 서버 엔드포인트 및 프라이빗 수신 컨트롤러를 사용하여 클러스터 배포

CLI를 로컬로 설치하여 사용하도록 선택하는 경우 이 자습서에서는 Azure CLI 버전 2.30.0 이상을 실행해야 합니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.

시작하기 전에

리소스 공급자 등록

  1. 여러 Azure 구독이 있는 경우 관련 구독 ID를 지정합니다.

    az account set --subscription <SUBSCRIPTION ID>
    
  2. Microsoft.RedHatOpenShift 리소스 공급자를 등록합니다.

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. Microsoft.Compute 리소스 공급자를 등록합니다(아직 등록하지 않은 경우).

    az provider register -n Microsoft.Compute --wait
    
  4. Microsoft.Network 리소스 공급자를 등록합니다(아직 등록하지 않은 경우).

    az provider register -n Microsoft.Network --wait
    
  5. Microsoft.Storage 리소스 공급자를 등록합니다(아직 등록하지 않은 경우).

    az provider register -n Microsoft.Storage --wait
    

Red Hat 풀 비밀 가져오기(선택 사항)

Red Hat 풀 비밀을 사용하면 클러스터에서 다른 콘텐츠와 함께 Red Hat 컨테이너 레지스트리에 액세스할 수 있습니다. 이 단계는 선택 사항이지만 권장됩니다.

  1. Red Hat OpenShift 클러스터 관리자 포털로 이동하여 로그인합니다.

    Red Hat 계정에 로그인하거나 비즈니스 이메일로 새 Red Hat 계정을 만들고 사용 조건에 동의합니다.

  2. 풀 비밀 다운로드를 클릭합니다.

저장된 pull-secret.txt 파일을 안전한 곳에 보관합니다. 각 클러스터 만들기에 사용됩니다.

az aro create 명령을 실행하는 경우 --pull-secret @pull-secret.txt 매개 변수를 사용하여 풀 비밀을 참조할 수 있습니다. pull-secret.txt 파일을 저장한 디렉터리에서 az aro create를 실행합니다. 그렇지 않으면 @pull-secret.txt@<path-to-my-pull-secret-file로 바꿉니다.

풀 비밀을 복사하거나 다른 스크립트에서 참조하는 경우에는 풀 비밀을 유효한 JSON 문자열로 포맷해야 합니다.

두 개의 빈 서브넷이 있는 가상 네트워크 만들기

다음으로, 두 개의 빈 서브넷이 있는 가상 네트워크를 만듭니다.

  1. 다음 변수를 설정합니다.

    LOCATION=eastus                 # the location of your cluster
    RESOURCEGROUP="v4-$LOCATION"    # the name of the resource group where you want to create your cluster
    CLUSTER=aro-cluster             # the name of your cluster
    
  2. 리소스 그룹 만들기

    Azure 리소스 그룹은 Azure 리소스가 배포되고 관리되는 논리 그룹입니다. 리소스 그룹을 만들 때 위치를 지정합니다. 이 위치는 리소스 그룹 메타데이터가 저장되는 위치이며 리소스를 만드는 동안 다른 지역을 지정하지 않으면 리소스가 Azure에서 실행되는 위치입니다. [az group create][az-group-create] 명령을 사용하여 리소스 그룹을 만듭니다.

    az group create --name $RESOURCEGROUP --location $LOCATION
    

    다음 예제 출력에서는 성공적으로 만들어진 리소스 그룹이 나와 있습니다.

    {
    "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
    "location": "eastus",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  3. 가상 네트워크를 만듭니다.

    OpenShift 4를 실행하는 Azure Red Hat OpenShift 클러스터에는 제어 및 작업자 노드에 사용할 두 개의 빈 서브넷이 있는 가상 네트워크가 필요합니다.

    이전에 만든 동일한 리소스 그룹에 새 가상 네트워크를 만듭니다.

    az network vnet create \
    --resource-group $RESOURCEGROUP \
    --name aro-vnet \
    --address-prefixes 10.0.0.0/22
    

    다음 예제 출력을 보면 가상 네트워크가 성공적으로 만들어졌습니다.

    {
    "newVNet": {
        "addressSpace": {
        "addressPrefixes": [
            "10.0.0.0/22"
        ]
        },
        "id": "/subscriptions/<guid>/resourceGroups/aro-rg/providers/Microsoft.Network/virtualNetworks/aro-vnet",
        "location": "eastus",
        "name": "aro-vnet",
        "provisioningState": "Succeeded",
        "resourceGroup": "aro-rg",
        "type": "Microsoft.Network/virtualNetworks"
    }
    }
    
  4. 마스터 노드에 사용할 빈 서브넷을 추가합니다.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name master-subnet \
    --address-prefixes 10.0.0.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  5. 작업자 노드에 사용할 빈 서브넷을 추가합니다.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name worker-subnet \
    --address-prefixes 10.0.2.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  6. 마스터 서브넷에서 서브넷 프라이빗 엔드포인트 정책을 사용하지 않도록 설정합니다. 클러스터에 연결하고 관리하는 데 필요합니다.

    az network vnet subnet update \
    --name master-subnet \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --disable-private-link-service-network-policies true
    

클러스터 만들기

다음 명령을 실행하여 클러스터를 만듭니다. 선택적으로 클러스터가 다른 콘텐츠와 함께 Red Hat 컨테이너 레지스트리에 액세스할 수 있도록 하는 Red Hat 끌어오기 비밀을 전달할 수 있습니다.

참고 항목

복사/붙여넣기 명령 및 선택적 매개 변수 중 하나를 사용하는 경우 초기 해시 태그 및 후행 주석 텍스트를 삭제해야 합니다. 또한 뒤에 오는 백슬래시를 사용하여 명령의 이전 줄에서 인수를 닫습니다.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private
  # --domain foo.example.com # [OPTIONAL] custom domain
  # --pull-secret @pull-secret.txt # [OPTIONAL]

az aro create 명령은 일반적으로 클러스터를 만드는 데 약 35분 정도 걸립니다.

참고 항목

클러스터를 만들려고 할 때 리소스 할당량이 초과되었다는 오류 메시지가 표시되면 ARO 계정에 할당량 추가를 참조하여 진행 방법을 알아봅니다.

Important

사용자 지정 도메인(예: foo.example.com)을 지정하도록 선택하면 기본 제공 도메인 https://console-openshift-console.apps.<random>.<location>.aroapp.io 대신 https://console-openshift-console.apps.foo.example.com 같은 URL에서 OpenShift 콘솔을 사용할 수 있습니다.

기본적으로 OpenShift는 *.apps.<random>.<location>.aroapp.io에서 생성되는 모든 경로에 자체 서명된 인증서를 사용합니다. 사용자 지정 DNS를 선택하는 경우 클러스터에 연결한 후 OpenShift 설명서에 따라 수신 컨트롤러용 사용자 지정 인증서API 서버용 사용자 지정 인증서를 구성해야 합니다.

공용 IP 주소 없이 프라이빗 클러스터 만들기

일반적으로 프라이빗 클러스터는 공용 IP 주소 및 부하 분산 장치를 사용하여 만들어지므로 다른 서비스에 대한 아웃바운드 연결 수단을 제공합니다. 그러나 공용 IP 주소 없이 프라이빗 클러스터를 만들 수 있습니다. 보안 또는 정책 요구 사항에서 공용 IP 주소 사용을 금지하는 상황에서 필요할 수 있습니다.

공용 IP 주소 없이 프라이빗 클러스터를 만들려면 위의 절차에 따라 다음 예제와 같이 --outbound-type UserDefinedRouting 매개 변수를 aro create 명령에 추가합니다.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private \
  --outbound-type UserDefinedRouting

참고 항목

UserDefinedRouting 플래그는 --apiserver-visibility Private--ingress-visibility Private 매개 변수를 사용하여 클러스터를 만들 경우에만 사용할 수 있습니다. 최신 Azure CLI를 사용하고 있는지 확인합니다. Azure CLI 2.52.0 이하로 배포된 클러스터는 공용 IP를 사용하여 배포됩니다.

이 사용자 정의 라우팅 옵션은 공용 IP 주소가 프로비저닝되는 것을 방지합니다. UDR(사용자 정의 경로)를 사용하면 Azure에서 사용자 지정 경로를 만들어 기본 시스템 경로를 재정의하거나 서브넷의 경로 테이블에 더 많은 경로를 추가할 수 있습니다. 가상 네트워크 트래픽 라우팅에 대해 자세히 알아봅니다.

Important

프라이빗 클러스터를 만들 때 올바르게 구성된 라우팅 테이블을 사용하여 올바른 서브넷을 지정해야 합니다.

송신의 경우 사용자 정의 라우팅 옵션을 사용하면 새로 만든 클러스터에 새 프라이빗 클러스터의 아웃바운드 트래픽을 보호할 수 있도록 송신 잠금 기능이 사용하도록 설정되어 있는지 확인할 수 있습니다. 자세한 내용은 ARO(Azure Red Hat OpenShift) 클러스터에 대한 송신 트래픽 제어를 참조하세요.

참고 항목

사용자 정의 라우팅 네트워크 유형을 선택하는 경우 가상 네트워크 외부에서 클러스터의 라우팅 송신을 관리할 책임이 있습니다(예: 공용 인터넷에 액세스). Azure Red Hat OpenShift는 이를 관리할 수 없습니다.

공용 IP 주소가 없는 프라이빗 클러스터의 네임스페이스에 있는 특정 Pod 또는 네임스페이스에 대해 하나 이상의 송신 IP 주소를 구성할 수 있습니다. 이렇게 하려면 위의 절차에 따라 공용 IP 주소 없이 프라이빗 클러스터를 만든 다음, 이 Red Hat OpenShift 문서에 따라 송신 IP를 구성합니다. 이러한 송신 IP 주소는 ARO 클러스터와 연결된 서브넷에 있어야 합니다.

ARO 프라이빗 클러스터에 대한 송신 IP 구성은 --outbound-type UserDefinedRouting 매개 변수가 있는 클러스터에 대해서만 지원됩니다. --outbound-type LoadBalancer 매개 변수가 있는 공용 ARO 클러스터에는 지원되지 않습니다.

프라이빗 클러스터에 연결

kubeadmin 사용자를 사용하여 클러스터에 로그인할 수 있습니다. 다음 명령을 실행하여 kubeadmin 사용자의 암호를 찾습니다.

az aro list-credentials \
  --name $CLUSTER \
  --resource-group $RESOURCEGROUP

다음 출력 예는 kubeadminPassword의 암호를 보여 줍니다.

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

https://console-openshift-console.apps.<random>.<region>.aroapp.io/와 같은 다음 명령을 실행하여 클러스터 콘솔 URL을 찾을 수 있습니다.

 az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "consoleProfile.url" -o tsv

Important

프라이빗 Azure Red Hat OpenShift 클러스터에 연결하려면 사용자가 만든 Virtual Network 또는 클러스터가 배포된 Virtual Network로 피어링된 Virtual Network가 있는 호스트에서 다음 단계를 수행해야 합니다.

브라우저에서 콘솔 URL을 시작하고 kubeadmin 자격 증명을 사용하여 로그인합니다.

OpenShift CLI 설치

OpenShift 웹 콘솔에 로그인한 후 오른쪽 상단에서 ?를 선택한 다음 명령줄 도구를 선택합니다. 머신에 맞는 릴리스를 다운로드합니다.

Azure Red Hat OpenShift 로그인 화면을 보여 주는 이미지

현재 사용하는 머신에 맞는 최신 CLI 릴리스를 다운로드할 수도 있습니다.

OpenShift CLI를 사용하여 연결

API 서버 주소를 검색합니다.

apiServer=$(az aro show -g $RESOURCEGROUP -n $CLUSTER --query apiserverProfile.url -o tsv)

Important

프라이빗 Azure Red Hat OpenShift 클러스터에 연결하려면 사용자가 만든 Virtual Network 또는 클러스터가 배포된 Virtual Network로 피어링된 Virtual Network가 있는 호스트에서 다음 단계를 수행해야 합니다.

다음 명령을 사용하여 OpenShift 클러스터의 API 서버에 로그인합니다. <kubeadmin 암호>를 검색한 암호로 바꿉니다.

oc login $apiServer -u kubeadmin -p <kubeadmin password>

다음 단계

이 문서에서는 OpenShift 4를 실행하는 Azure Red Hat OpenShift 클러스터가 배포되었습니다. 다음 방법에 대해 알아보았습니다.

  • 필수 구성 요소를 설정하고 필요한 가상 네트워크 및 서브넷 만들기
  • 클러스터 배포
  • kubeadmin 사용자를 사용하여 클러스터에 연결

Microsoft Entra ID를 사용하여 인증을 위해 클러스터를 구성하는 방법을 알아보려면 다음 문서로 이동합니다.