이 항목에서는 Tanzu Kubernetes Grid를 실행하기 위해 Microsoft Azure를 준비하는 방법을 설명합니다.
AVS(Azure VMware Solution)에 Tanzu Kubernetes Grid를 설치하는 경우 vSphere 환경에 설치합니다. 환경을 준비하려면 VMware 클라우드 환경에 관리 클러스터 배포 준비의 Microsoft Azure에서 Azure VMware 솔루션 준비를 참조하고 관리 클러스터를 배포하려면 vSphere에 관리 클러스터 배포 준비를 참조하십시오.
편의를 위해 이 페이지 끝에 있는 준비 체크리스트를 참고하여 Tanzu Kubernetes Grid 관리 클러스터를 Azure에 배포할 준비가 되었는지 확인하십시오.
다음이 있는 Microsoft Azure 계정:
Owner
역할을 할당하는 데 필요한 사용 권한입니다. prod
또는 dev
계획을 사용할지 여부에 따라 다릅니다. 계획에 대한 자세한 내용은 워크로드 클러스터 계획을 참조하십시오.dev
계획: vCPU 4개(기본 1개, 작업자 1개)prod
계획: vCPU 8개(기본 3개, 작업자 1개)dev
계획: vCPU 4개(기본 1개, 작업자 1개)prod
계획: vCPU 12개(기본 3개, 작업자 3개)예를 들어 단일 관리 클러스터, 그리고 동일한 계획을 가진 모든 클러스터를 가정합니다.
계획 | 워크로드 클러스터 | 워크로드용 vCPU | 관리용 vCPU | 총 vCPU |
---|---|---|---|---|
개발 | 1 | 4 | 4 | 8 |
5 | 20 | 24 | ||
운영 | 1 | 12 | 8 | 20 |
5 | 60 | 68 |
공용 IP 주소 - 표준, 공용 IP 주소 - 기본, 고정 공용 IP 주소의 할당량을 포함하여 클러스터에 충분한 공용 IP 주소 할당량. 표준 Azure 계정에는 지역당 10개의 공용 IP 주소 할당량이 있습니다. 모든 Tanzu Kubernetes Grid 클러스터에는 제어부 노드 수와 Worker 노드 수에 관계없이 2개의 공용 IP 주소가 필요합니다. 유형이 LoadBalancer
인 각 Kubernetes 서비스 개체에 1개의 공용 IP 주소가 필요합니다.
~/.config/tanzu/tkg/bom/
아래에 있으며 이름에는 Tanzu Kubernetes Grid 버전이 포함됩니다. 예: tkg-bom-v2.2.0+vmware.1 .yaml
.imageRepository
값에서 DNS 조회를 실행하여 해당 CNAMEs를 찾습니다.(선택 사항) 다음이 있는 VNet(가상 네트워크):
CLUSTER_API_SERVER_PORT
변수를 설정합니다.기존 VNet을 사용하지 않는 경우 설치 프로세스에서 새 VNet을 생성합니다.
Azure CLI가 로컬로 설치됩니다. Microsoft Azure 설명서의 Azure CLI 설치를 참조하십시오.
LoadBalancer
유형의 서비스를 클래스 기반 워크로드 클러스터에 배포하려면 Azure의 클래스 기반 워크로드 클러스터용 LoadBalancer
서비스에 수동 게이트웨이 또는 프런트 엔드 구성이 필요합니다에 설명된 대로 NAT 게이트웨이 또는 프런트 엔드 구성이 필요합니다.
*또는 외부 네트워크 액세스 없이 설치하려면 인터넷 제한 환경 준비를 참조하십시오.
아래 표는 Azure의 관리 클러스터의 크기 조정 예를 설명합니다. 이 데이터를 참고하여 배포하려는 워크로드 클러스터 수를 처리하도록 관리 클러스터를 확장합니다. 워크로드 클러스터 VM 크기 열에는 관리 가능… 열의 예에 사용된 VM 크기가 나타납니다.
관리 클러스터 계획 | 관리 클러스터 VM 크기 | 관리 가능 … | 워크로드 클러스터 VM 크기 |
---|---|---|---|
제어부 노드 3개 및 Worker 노드 3개 |
|
예:
|
|
제어부 노드 3개 및 Worker 노드 3개 |
|
예: 워크로드 클러스터 1개(제어부 3개와 Worker 노드 250개로 배포) |
|
제어부 노드 3개 및 Worker 노드 3개 |
|
예: 199개 워크로드 클러스터(각각 제어부 3개와 Worker 노드 3개로 배포) |
|
Azure의 Tanzu Kubernetes Grid 관리 및 워크로드 클러스터를 사용하려면 해당 VNet과 해당 VNet 리소스 그룹에 두 개의 NSG(네트워크 보안 그룹)를 정의해야 합니다.
CLUSTER-NAME-controlplane-nsg
이고 클러스터의 제어부 서브넷과 연결된 NSG이름이 CLUSTER-NAME-node-nsg
이고 클러스터의 Worker 노드 서브넷과 연결된 NSG
여기서 CLUSTER-NAME
은 클러스터의 이름입니다.
주의위 형식을 따르지 않는 NSG 이름을 지정하면 배포되지 않을 수 있습니다.
관리 클러스터에 기존 VNet을 지정하는 경우 위의 일반 요구 사항에 설명된 대로 이러한 NSG를 생성해야 합니다. 관리 클러스터용 기존 VNet은 설치 관리자 인터페이스에서 기존 VNet 선택으로 또는 구성 파일에서 AZURE_VNET_NAME
으로 지정됩니다.
클러스터에 기존 VNet을 지정하지 않으면 배포 프로세스에서 새 VNet과 필요한 NSG를 생성합니다.
클러스터의 VNet, 리소스 그룹, 서브넷을 구성하는 방법은 구성 파일 변수 참조의 Microsoft Azure 표를 참조하십시오.
Tanzu Kubernetes Grid는 Azure 리소스를 서비스 주체를 통해 Azure에 액세스하는 등록된 클라이언트 애플리케이션으로 관리합니다. 서비스 주체를 생성하고 Azure 리소스에 대한 액세스를 구성하려면 az ad sp create-for-rbac
명령을 사용합니다.
az login
을 실행하여 Azure CLI에 로그인합니다.
서비스 주체를 생성하고 Owner
역할을 할당합니다.
az ad sp create-for-rbac --role "Owner" --name "APP-NAME" --scopes /subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP
az role assignment create --assignee APP-ID --role "Owner"
형식 설명:
APP-NAME
은 서비스 주체에게 부여할 이름입니다.SUBSCRIPTION-ID
및 RESOURCE-GROUP
은 Azure 구독 ID와 VNet 리소스 그룹입니다.APP-ID
는 az ad sp create-for-rbac
에서 반환된 appId
값입니다.예를 들어 Owner
역할을 생성하고 tkg
라는 서비스 주체에 할당합니다.
$ az ad sp create-for-rbac --role "Owner" --name "tkg" --scopes /subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405/resourceGroups/myrg
Creating 'Owner' role assignment under scope '/subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405'
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
'name' property in the output is deprecated and will be removed in the future. Use 'appId' instead.
{
"appId": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
"displayName": "tkg",
"name": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
"password": "R6yM_.aaaabbbbccccdddd111122223333",
"tenant": "9c117323-aaaa-bbbb-cccc-9ee430723ba3"
}
$ az role assignment create --assignee c407cfd4-aaaa-bbbb-cccc-80af703eb0ed --role "Owner"
출력을 기록합니다. 관리 클러스터를 배포할 때 다음 기본 이미지 라이센스 액세스 단계에서 이 정보를 사용합니다. az ad sp create-for-rbac
에서 지원하는 전체 옵션 목록은 Azure 설명서의 az ad sp create-for-rbac를 참조하십시오.
Azure에서 관리 클러스터 VM을 실행하려면 기본 Kubernetes 버전과 시스템 OS에 대한 라이센스를 수락합니다.
az vm image terms accept
명령을 실행하고 --plan
과 구독 ID를 지정합니다.
Tanzu Kubernetes Grid v2.2에서 기본 클러스터 이미지 --plan
값은 kubernetes 버전 1.25.7과 시스템 OS인 Ubuntu 20.04를 기준으로 k8s-1dot25dot7-ubuntu-2004
입니다. 다음 명령을 실행합니다.
az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot25dot7-ubuntu-2004 --subscription AZURE_SUBSCRIPTION_ID
여기서 AZURE_SUBSCRIPTION_ID
는 Azure 구독 ID입니다.
클러스터를 배포할 때 그리고 새 버전의 Tanzu Kubernetes Grid로 업그레이드할 때마다 사용하려는 Kubernetes 또는 OS의 모든 버전에 대해 기본 이미지 라이선스를 수락하려면 이 작업을 반복해야 합니다.
Tanzu CLI를 사용하여 bootstrap 시스템이라고 하는 시스템에서 관리 클러스터를 배포합니다. Azure에 연결하려면 부트스트랩 시스템이 SSH 키 쌍의 공개 키 부분을 제공해야 합니다. 부트스트랩 시스템에 아직 SSH 키 쌍이 없는 경우 ssh-keygen
과 같은 도구를 사용하여 하나를 생성할 수 있습니다.
부트스트랩 시스템에서 다음 ssh-keygen
명령을 실행합니다.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Enter file in which to save the key (/root/.ssh/id_rsa):
프롬프트에서 Enter 키를 눌러 기본값을 수락합니다.
시스템에서 실행 중인 SSH 에이전트에 개인 키를 추가하고 이전 단계에서 생성한 암호를 입력합니다.
ssh-add ~/.ssh/id_rsa
관리 클러스터를 배포할 때 쉽게 복사하여 붙여 넣을 수 있도록 텍스트 편집기에서 .ssh/id_rsa.pub
파일을 엽니다.
이 체크리스트를 사용하여 Tanzu Kubernetes Grid 관리 클러스터를 Azure에 배포할 준비가 되었는지 확인합니다.
설치된 Tanzu CLI
tanzu version
을 실행합니다. 출력에는 Tanzu Kubernetes Grid v2.2의 Tanzu Framework 버전인 version: v0.29.0
이 나와야 합니다.Azure 계정
https://portal.azure.com
에서 Azure 웹 포털에 로그인합니다.설치된 Azure CLI
az version
을 실행합니다. 출력에는 Microsoft Azure 설명서의 Azure CLI설치 나열된 대로 Azure CLI의 현재 버전이 나열되어야 합니다.등록된 tkg
앱
tkg
애플리케이션이 위의 Tanzu Kubernetes Grid를 Azure Client 애플리케이션으로 등록에 따라 현재 암호와 함께 나와 있는지 확인합니다.az ad sp show --id.
를 실행합니다.수락된 기본 VM 이미지 라이센스
az vm image terms show --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot25dot7-ubuntu-2004
를 실행합니다. 출력에 "accepted": true
가 포함되어야 합니다.프로덕션 배포의 경우 클러스터에 ID 관리를 사용하도록 설정하는 것이 좋습니다. * 관리 클러스터를 배포하기 전에 수행할 준비 단계에 대한 자세한 내용은 구성 ID 관리의 ID 제공자 세부 정보를 참조하십시오. * Tanzu Kubernetes Grid의 ID 관리 및 액세스 제어에 대한 개념 정보는 ID 및 액세스 관리 정보를 참조하십시오.
외부 인터넷 연결이 있는 환경에서 Tanzu Kubernetes Grid를 사용하는 경우, ID 관리를 설정하면 관리 클러스터를 Azure에 배포할 준비가 된 것입니다.