자습서: Arc에서 사용하도록 설정된 AKS에 워크로드 클러스터 배포
적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS
Kubernetes는 컨테이너화된 애플리케이션에 대해 분산 플랫폼을 제공합니다.
7부 중 3부인 이 자습서에서는 Kubernetes 클러스터가 Azure Local의 AKS에 배포됩니다. 이 문서에서 배울 내용은 다음과 같습니다.
- Azure Local에 AKS 클러스터 배포
- Kubernetes CLI 설치(kubectl)
- 워크로드 클러스터에 연결하도록 kubectl 구성
이후 자습서에서는 Azure Vote 애플리케이션이 클러스터에 배포되고, 크기가 조정되고, 업데이트됩니다.
시작하기 전에
이전 자습서에서는 컨테이너 이미지를 만들어 Azure Container Registry 인스턴스에 업로드했습니다. 이러한 단계를 수행하지 않은 경우 자습서 1 - 컨테이너 이미지 만들기에서 시작합니다.
이 자습서에서는 AksHci PowerShell 모듈을 사용합니다.
Azure 로컬 클러스터 또는 Windows Server 클러스터의 모든 노드에서 다음 단계를 수행합니다.
참고 항목
원격 PowerShell을 사용하는 경우 CredSSP를 사용해야 합니다.
열려 있는 PowerShell 창을 모두 닫고, 관리자 권한으로 새 PowerShell 세션을 열고, Azure 로컬 또는 Windows Server 클러스터의 모든 노드에서 다음 명령을 실행합니다.
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false
로드된 모듈을 새로 고치려면 기존 PowerShell 창을 모두 다시 닫아야 합니다. 열려 있는 PowerShell 창을 모두 닫을 때까지 다음 단계를 계속하지 마세요.
Azure 로컬 또는 Windows Server 클러스터의 모든 노드에서 다음 명령을 실행하여 AKS-HCI PowerShell 모듈을 설치합니다.
Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
로드된 모듈을 새로 고치려면 기존 PowerShell 창을 모두 다시 닫아야 합니다. 열려 있는 PowerShell 창을 모두 닫을 때까지 다음 단계를 계속하지 마세요.
도우미 스크립트를 사용하여 이전 AKS-HCI PowerShell 모듈을 삭제하여 AKS 배포에서 PowerShell 버전 관련 문제를 방지할 수 있습니다.
설치 유효성 검사
Get-Command -Module AksHci
AksHci PowerShell 명령의 전체 목록을 보려면 AksHci PowerShell을 참조하세요.
Azure Kubernetes Service 호스트 설치
먼저 등록 설정을 구성합니다.
Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup
Azure 구독 및 리소스 그룹 이름에 따라 이러한 값을 사용자 지정해야 합니다.
그런 다음, 다음 명령을 실행하여 각 물리적 노드의 모든 요구 사항을 충족하여 Azure Local에 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인 하나의 Linux 노드 풀을 linuxnodepool
사용하여 명명 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
하여 클러스터 정보, 필드 WindowsNodeCount
및 LinuxNodeCount
출력 반환 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
다음 단계
이 자습서에서는 Kubernetes 클러스터를 AKS에 배포하고 연결하도록 구성 kubectl
했습니다. 다음 방법에 대해 알아보았습니다.
- Azure Local에 AKS 클러스터 배포
- Kubernetes CLI 설치(kubectl)
- AKS 클러스터에 연결하도록 kubectl 구성
클러스터에 애플리케이션을 배포하는 방법을 알아보려면 다음 자습서로 진행합니다.