자습서: Arc에서 사용하도록 설정된 AKS에 워크로드 클러스터 배포

적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS

Kubernetes는 컨테이너화된 애플리케이션용 분산 플랫폼을 제공합니다.

7부 중 3부인 이 자습서에서는 Kubernetes 클러스터가 Azure Stack HCI의 AKS에 배포됩니다. 이 문서에서 배울 내용은 다음과 같습니다.

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

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

시작하기 전에

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

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

Azure Stack HCI 클러스터 또는 Windows Server 클러스터의 모든 노드에서 다음 단계를 수행합니다.

참고

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

  1. 열려 있는 모든 PowerShell 창을 닫고, 관리자 권한으로 새 PowerShell 세션을 열고, Azure Stack HCI 또는 Windows Server 클러스터의 모든 노드에서 다음 명령을 실행합니다.

    Install-PackageProvider -Name NuGet -Force 
    Install-Module -Name PowershellGet -Force -Confirm:$false
    

    로드된 모듈을 새로 고치려면 모든 기존 PowerShell 창을 다시 닫아야 합니다. 열려 있는 PowerShell 창을 모두 닫을 때까지 다음 단계를 계속하지 마세요.

  2. Azure Stack HCI 또는 Windows Server 클러스터의 모든 노드에서 다음 명령을 실행하여 AKS-HCI PowerShell 모듈을 설치합니다.

    Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
    

    로드된 모듈을 새로 고치려면 모든 기존 PowerShell 창을 다시 닫아야 합니다. 열려 있는 PowerShell 창을 모두 닫을 때까지 다음 단계를 계속하지 마세요.

도우미 스크립트를 사용하여 AKS 배포에서 PowerShell 버전 관련 문제를 방지하기 위해 이전 AKS-HCI PowerShell 모듈을 삭제할 수 있습니다.

설치 유효성 검사

Get-Command -Module AksHci

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

Azure Kubernetes Service 호스트 설치

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

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

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

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

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" 

이제 AKS 호스트를 설치할 준비가 되었습니다.

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 구성

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