자습서: Azure Stack HCI의 Azure Kubernetes Service 워크로드 클러스터 배포

Kubernetes는 컨테이너화된 애플리케이션용 분산 플랫폼을 제공합니다. 이 자습서에서는 7부 중 3부에서 Azure Stack HCI 클러스터의 AKS가 Azure Stack HCI의 Azure Kubernetes Service 배포됩니다. 이 문서에서 배울 내용은 다음과 같습니다.

  • Azure Stack HCI에 AKS 클러스터 배포
  • Kubernetes CLI(kubectl) 설치
  • 워크로드 클러스터에 연결하도록 kubectl 구성

후속 자습서에서 Azure Vote 애플리케이션은 클러스터에 배포되고, 크기가 조정되며, 업데이트됩니다.

시작하기 전에

이전 자습서에서는 컨테이너 이미지를 만들어 Azure Container Registry 인스턴스에 업로드했습니다. 이러한 단계를 수행하지 않은 경우 자습서 1 - 컨테이너 이미지 만들기에서 시작합니다.

이 자습서에서는 AksHci PowerShell 모듈을 사용합니다.

AksHci PowerShell 모듈을 설치하지 않은 경우 다음 명령을 실행하여 모듈을 설치합니다.

중요

기존 PowerShell 창을 모두 닫고 새 관리 세션을 열어 필수 PowerShell 패키지 및 모듈을 설치해야 합니다.

Install-Module -Name Az.Accounts -Repository PSGallery -RequiredVersion 2.2.4
Install-Module -Name Az.Resources -Repository PSGallery -RequiredVersion 3.2.0
Install-Module -Name AzureAD -Repository PSGallery -RequiredVersion 2.0.2.128
Install-Module -Name AksHci -Repository PSGallery
Import-Module Az.Accounts
Import-Module Az.Resources
Import-Module AzureAD
Import-Module AksHci

원격 PowerShell을 사용하는 경우 CredSSP를 사용해야 합니다.

중요

로드된 모듈이 새로 고쳐지도록 기존 PowerShell 창을 모두 다시 닫아야 합니다. 모든 PowerShell 창을 닫을 때까지 다음 단계로 계속 진행하지 마세요.

설치의 유효성을 검사합니다.

중요

모든 PowerShell 창을 닫 고 새 관리 세션을 다시 열어 최신 버전의 PowerShell 모듈이 있는지 확인합니다.

Get-Command -Module AksHci

AksHci PowerShell 명령의 전체 목록을 보려면 AksHci PowerShell을 참조하세요.

Azure Kubernetes Service 호스트 설치

먼저 등록 설정을 구성해야 합니다.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

Azure 구독 및 리소스 그룹 이름에 따라 이러한 값을 사용자 지정해야 합니다.

그런 다음, 다음 명령을 실행하여 각 물리적 노드의 모든 요구 사항을 충족하여 Azure Stack HCI에 Azure Kubernetes 서비스를 설치합니다.

Initialize-AksHciNode

다음으로 가상 네트워크를 만듭니다. 사용 가능한 외부 스위치의 이름을 가져와야 합니다.

Get-VMSwitch

예제 출력:

Name        SwitchType    NetAdapterInterfaceDescription
----        ----------    ------------------------------
extSwitch   External      Mellanox ConnectX-3 Pro Ethernet Adapter

다음 명령을 실행하여 고정 IP를 사용하여 가상 네트워크를 만듭니다.

$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -macPoolName myMacPool -k8sNodeIpPoolStart "172.16.10.0" -k8sNodeIpPoolEnd "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipAddressPrefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsServers "172.16.0.1" -vlanId 9

그런 다음, 다음 명령을 사용하여 배포를 구성합니다.

Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16" 

이제 Azure Stack HCI 호스트에 Azure Kubernetes Service 설치할 준비가 되었습니다.

Install-AksHCi

Kubernetes 클러스터 만들기

New-AksHciCluster 명령을 사용하여 Kubernetes 클러스터를 만듭니다. 다음 예제에서는 노드 수가 1인 linuxnodepool이라는 하나의 Linux 노드 풀을 사용하여 mycluster라는 클러스터를 만듭니다.

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1

배포가 성공했는지 확인하려면 다음 명령을 실행합니다.

Get-AksHcicluster -name mycluster

출력:

ProvisioningState     : provisioned
KubernetesVersion     : v1.20.7
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

참고

새 매개 변수 집합 New-AksHciCluster 을 사용하여 클러스터를 배포한 다음 실행 Get-AksHciCluster 하여 클러스터 정보를 가져오는 경우 필드 WindowsNodeCountLinuxNodeCount 출력에서 반환 0됩니다. 각 노드 풀의 정확한 노드 수를 얻으려면 지정된 클러스터 이름을 가진 명령을 Get-AksHciNodePool 사용하세요.

클러스터의 노드 풀 목록을 얻으려면 다음 Get-AksHciNodePool PowerShell 명령을 실행합니다.

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Kubernetes CLI 설치

로컬 컴퓨터에서 Kubernetes 클러스터에 연결하려면 Kubernetes 명령줄 클라이언트인 kubectl을 사용합니다.

kubectl을 사용하여 클러스터에 연결

Kubernetes 클러스터에 연결하도록 구성 kubectl 하려면 Get-AksHciCredential 명령을 사용합니다. 다음 예제에서는 mycluster라는 클러스터에 대한 자격 증명을 가져옵니다.

Get-AksHciCredential -name mycluster

클러스터에 대한 연결을 확인하려면 kubectl get nodes 명령을 실행하여 클러스터 노드 목록을 반환합니다.

kubectl get nodes

출력:

NAME              STATUS   ROLES                  AGE     VERSION
moc-lbs6got5dqo   Ready    <none>                 6d20h   v1.20.7
moc-lel7tzxdt30   Ready    control-plane,master   6d20h   v1.20.7

다음 단계

이 자습서에서는 AKS에 Kubernetes 클러스터를 배포하고, 이 클러스터에 연결하도록 kubectl을 구성했습니다. 구체적으로 다음 작업 방법을 알아보았습니다.

  • Azure Stack HCI에 AKS 클러스터 배포
  • Kubernetes CLI(kubectl) 설치
  • AKS 클러스터에 연결하도록 kubectl 구성

그 다음 자습서를 계속 진행하여 클러스터에 애플리케이션을 배포하는 방법을 알아보세요.