Azure Stack HCI 및 Windows Server에서 Azure Kubernetes Service 호스트 설정 및 PowerShell을 사용하여 워크로드 클러스터 배포

적용 대상: Azure Stack HCI 또는 Windows Server Datacenter

이 빠른 시작에서는 AKS(Azure Kubernetes Service) 호스트 설정을 안내합니다. PowerShell을 사용하여 Azure Stack HCI 및 Windows Server에서 Kubernetes 클러스터를 만듭니다. 대신 Windows Admin Center 사용하려면 Windows Admin Center 설정을 참조하세요.

참고

시작하기 전에

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-HCI PowerShell 모듈을 삭제하여 AKS 배포에서 PowerShell 버전 관련 문제를 방지할 수 있습니다.

설치 유효성 검사

Get-Command -Module AksHci

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

구독에 리소스 공급자 등록

등록 프로세스 전에 Arc 등록에서 사용하도록 설정된 AKS용 Azure에서 적절한 리소스 공급자를 사용하도록 설정합니다. 이렇게 하려면 다음 PowerShell 명령을 실행합니다.

Azure에 로그인하려면 Connect-AzAccount PowerShell 명령을 실행합니다.

Connect-AzAccount

다른 구독으로 전환하려면 Set-AzContext PowerShell 명령을 실행합니다.

Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"

다음 명령을 실행하여 Azure Arc 지원 Kubernetes 리소스 공급자에 Azure 구독을 등록합니다. 이 등록 프로세스는 최대 10분이 걸릴 수 있지만 특정 구독에서 한 번만 수행해야 합니다.

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

등록 프로세스의 유효성을 검사하려면 다음 PowerShell 명령을 실행합니다.

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

1단계: 배포를 위해 머신 준비

모든 실제 노드에서 검사를 실행하여 Arc에서 사용하도록 설정된 AKS를 설치하기 위한 모든 요구 사항이 충족되는지 확인합니다. 관리자 권한으로 PowerShell을 열고 Azure Stack HCI 및 Windows Server 클러스터의 모든 노드에서 다음 Initialize-AksHciNode 명령을 실행합니다.

Initialize-AksHciNode

2단계: 가상 네트워크 만들기

Azure Stack HCI 및 Windows Server 클러스터의 한 노드에서 다음 명령을 실행합니다.

사용 가능한 스위치의 이름을 얻으려면 다음 명령을 실행합니다. VM 스위치의 가 SwitchType "외부"인지 확인합니다.

Get-VMSwitch

샘플 출력:

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

배포에서 사용할 노드에 대한 가상 네트워크를 만들려면 New-AksHciNetworkSetting PowerShell 명령을 사용하여 환경 변수를 만듭니다. 이 가상 네트워크는 나중에 고정 IP를 사용하는 배포를 구성하는 데 사용됩니다. DHCP를 사용하여 AKS 배포를 구성하려는 경우 예제는 New-AksHciNetworkSetting을 참조하세요. 일부 네트워킹 노드 개념을 검토할 수도 있습니다.

#static IP
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -k8sNodeIpPoolStart "172.16.10.1" -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

참고

환경에 대해 이 예제 명령에 표시된 값을 사용자 지정해야 합니다.

3단계: 배포 구성

Azure Stack HCI 및 Windows Server 클러스터의 한 노드에서 다음 명령을 실행합니다.

AKS 호스트에 대한 구성 설정을 만들려면 Set-AksHciConfig 명령을 사용합니다. , workingDircloudConfigLocation 매개 변수를 imageDir지정해야 합니다. 구성 세부 정보를 다시 설정하려면 새 매개 변수를 사용하여 명령을 다시 실행합니다.

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

$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet

참고

환경에 대해 이 예제 명령에 표시된 값을 사용자 지정해야 합니다.

4단계: Azure에 로그인하고 등록 설정 구성

옵션 1: "소유자" 권한이 있는 경우 Microsoft Entra 계정 사용

구독 및 리소스 그룹 이름으로 다음 Set-AksHciRegistration PowerShell 명령을 실행하여 Azure에 로그인합니다. 오스트레일리아 동부, 미국 동부, 동남 아시아 또는 서유럽 Azure 지역에 Azure 구독 및 기존 Azure 리소스 그룹이 있어야 합니다.

Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"

옵션 2: Azure 서비스 주체 사용

"소유자"인 구독에 액세스할 수 없는 경우 서비스 주체를 사용하여 청구를 위해 AKS 호스트를 Azure에 등록할 수 있습니다. 서비스 주체를 사용하는 방법에 대한 자세한 내용은 서비스 주체를 사용하여 Azure Stack HCI 및 Windows Server에 AKS 등록을 참조하세요.

5단계: 새 배포 시작

Azure Stack HCI 또는 Windows Server 클러스터의 한 노드에서 다음 명령을 실행합니다.

배포를 구성한 후에는 AKS 에이전트/서비스 및 AKS 호스트를 설치하기 위해 배포를 시작해야 합니다. 배포를 시작하려면 다음 명령을 실행합니다.

설치하는 동안 추가 상태 세부 정보를 보려면 계속하기 전에 를 설정합니다$VerbosePreference = "Continue".

Install-AksHci

경고

AKS 호스트를 설치하는 동안 등록 중에 설정된 리소스 그룹에 Kubernetes - Azure Arc 리소스 종류가 만들어집니다. 이 리소스는 AKS 호스트를 나타내기 때문에 삭제하지 마세요. 의 값 aks_management에 대한 배포 필드를 확인하여 리소스를 식별할 수 있습니다. 이 리소스를 삭제하면 정책 외 배포가 발생합니다.

6단계: Kubernetes 클러스터 만들기

AKS 호스트를 설치한 후 Kubernetes 클러스터를 배포할 수 있습니다. 관리자 권한으로 PowerShell을 열고 다음 New-AksHciCluster 명령을 실행합니다. 이 예제 명령은 노드 수가 1인 라는 linuxnodepool 하나의 Linux 노드 풀을 사용하여 새 Kubernetes 클러스터를 만듭니다.

노드 풀에 대한 자세한 내용은 AKS에서 노드 풀 사용을 참조하세요.

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

배포된 클러스터 확인

배포된 Kubernetes 클러스터 목록을 얻으려면 다음 Get-AksHciCluster PowerShell 명령을 실행합니다.

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

클러스터의 노드 풀 목록을 얻으려면 다음 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

7단계: Arc 지원 Kubernetes에 클러스터 연결

Enable-AksHciArcConnection 명령을 실행하여 클러스터를 Arc 지원 Kubernetes에 연결합니다. 다음 예제에서는 명령에서 전달한 구독 및 리소스 그룹 세부 정보를 사용하여 Kubernetes 클러스터를 Arc에 Set-AksHciRegistration 연결합니다.

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

참고

설치 프로세스 중에 문제 또는 오류 메시지가 발생하는 경우 자세한 내용은 알려진 설치 문제 및 오류를 참조하세요.

Kubernetes 클러스터 크기 조정

클러스터를 확장 또는 축소해야 하는 경우 Set-AksHciCluster 명령을 사용하여 컨트롤 플레인 노드 수를 변경할 수 있습니다. 노드 풀의 Linux 또는 Windows 작업자 노드 수를 변경하려면 Set-AksHciNodePool 명령을 사용합니다.

컨트롤 플레인 노드의 크기를 조정하려면 다음 명령을 실행합니다.

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

노드 풀에서 작업자 노드의 크기를 조정하려면 다음 명령을 실행합니다.

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

참고

Azure Stack HCI 및 Windows Server의 이전 버전의 AKS에서 Set-AksHciCluster 명령은 작업자 노드 크기를 조정하는 데도 사용되었습니다. 이제 AKS가 워크로드 클러스터에 노드 풀을 도입했으므로 New-AksHciCluster에서 설정된 이전 매개 변수를 사용하여 클러스터를 만든 경우에만 이 명령을 사용하여 작업자 노드의 크기를 조정할 수 있습니다.

노드 풀에서 작업자 노드의 크기를 조정하려면 Set-AksHciNodePool 명령을 사용합니다.

kubectl을 사용하여 클러스터에 액세스

kubectl을 사용하여 Kubernetes 클러스터에 액세스하려면 Get-AksHciCredential PowerShell 명령을 실행합니다. 지정된 클러스터의 kubeconfig 파일을 kubectl의 기본 kubeconfig 파일로 사용합니다. kubectl을 사용하여 Helm을 사용하여 애플리케이션을 배포할 수도 있습니다.

Get-AksHciCredential -name mycluster

Kubernetes 클러스터 삭제

Kubernetes 클러스터를 삭제하려면 다음 명령을 실행합니다.

Remove-AksHciCluster -name mycluster

참고

Hyper-V 관리자에서 기존 VM을 확인하여 클러스터가 삭제되었는지 확인합니다. 삭제되지 않은 경우 VM을 수동으로 삭제할 수 있습니다. 그런 다음, 명령을 Restart-Service wssdagent실행합니다. 장애 조치(failover) 클러스터의 각 노드에서 이 명령을 실행합니다.

로그 가져오기

모든 Pod에서 로그를 얻으려면 Get-AksHciLogs 명령을 실행합니다. 이 명령은 작업 디렉터리에 라는 akshcilogs.zip 출력 압축 폴더를 만듭니다. 폴더의 akshcilogs.zip 전체 경로는 다음 명령을 실행한 후의 출력입니다.

Get-AksHciLogs

이 빠른 시작에서는 POWERShell을 사용하여 AKS 호스트를 설정하고 Kubernetes 클러스터를 만드는 방법을 알아보았습니다. 또한 PowerShell을 사용하여 Kubernetes 클러스터의 크기를 조정하고 를 사용하여 클러스터에 kubectl액세스하는 방법도 알아보았습니다.

다음 단계