Tutorial: Implementación de un clúster de cargas de trabajo en AKS habilitado por Arc

Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server

Kubernetes proporciona una plataforma distribuida para aplicaciones en contenedores.

En este tutorial, la parte tres de siete, un clúster de Kubernetes se implementa en AKS en Azure Stack HCI. Aprenderá a:

  • Implementación de un clúster de AKS en Azure Stack HCI
  • Instalar la CLI de Kubernetes (kubectl)
  • Configuración de kubectl para conectarse a un clúster de carga de trabajo

En tutoriales posteriores, la aplicación Azure Vote se implementa en el clúster, se escala y se actualiza.

Antes de empezar

En los tutoriales anteriores, se creó una imagen de contenedor y se actualizó en una instancia de Azure Container Registry. Si no ha realizado estos pasos, comience con el Tutorial 1: Creación de imágenes de contenedor.

En este tutorial se usa el módulo AksHci de PowerShell.

Siga estos pasos en todos los nodos del clúster de Azure Stack HCI o del clúster de Windows Server:

Nota

Si usa PowerShell remoto, debe utilizar CredSSP.

  1. Cierre todas las ventanas de PowerShell abiertas, abra una nueva sesión de PowerShell como administrador y ejecute el siguiente comando en todos los nodos del clúster de Azure Stack HCI o Windows Server:

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

    Debe cerrar todas las ventanas de PowerShell existentes de nuevo para asegurarse de que se actualicen los módulos cargados. No continúe con el paso siguiente hasta que cierre todas las ventanas de PowerShell abiertas.

  2. Instale el módulo AKS-HCI de PowerShell mediante la ejecución del siguiente comando en todos los nodos del clúster de Azure Stack HCI o Windows Server:

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

    Debe cerrar todas las ventanas de PowerShell existentes de nuevo para asegurarse de que se actualicen los módulos cargados. No continúe con el paso siguiente hasta que cierre todas las ventanas de PowerShell abiertas.

Puede usar un script auxiliar para eliminar los módulos antiguos de PowerShell de AKS-HCI, para evitar cualquier problema relacionado con la versión de PowerShell en la implementación de AKS.

Validación de la instalación

Get-Command -Module AksHci

Para ver la lista completa de comandos de AksHci para PowerShell, consulte AksHci para PowerShell.

Instalación del host de Azure Kubernetes Service

En primer lugar, configure los valores de registro.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

Estos valores se deben personalizar en función según el nombre de la suscripción y el grupo de recursos de Azure.

A continuación, ejecute el siguiente comando para asegurarse de que se cumplen todos los requisitos de cada nodo físico para instalar AKS en Azure Stack HCI:

Initialize-AksHciNode

A continuación, cree una red virtual. Necesitará los nombres de los conmutadores externos disponibles:

Get-VMSwitch

Resultados del ejemplo:

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

Ejecute el siguiente comando para crear una red virtual con una dirección IP estática:

$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

Después, configure la implementación con el siguiente comando.

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

Ahora, está listo para instalar el host de AKS:

Install-AksHCi

Creación de un clúster de Kubernetes

Cree un clúster de Kubernetes mediante el comando New-AksHciCluster. En el ejemplo siguiente se crea un clúster denominado mycluster con un grupo de nodos de Linux denominado linuxnodepool, que tiene un recuento de nodos de 1:

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

Para comprobar que la implementación se ha realizado correctamente, ejecute el siguiente comando.

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

Nota

Si usa los nuevos conjuntos de parámetros en New-AksHciCluster para implementar un clúster y, a continuación, ejecuta Get-AksHciCluster para obtener la información del clúster, los campos WindowsNodeCount y LinuxNodeCount en la salida devuelven 0. Para obtener el número preciso de nodos de cada grupo de nodos, use el comando Get-AksHciNodePool con el nombre de clúster especificado.

Para obtener una lista de los grupos de nodos del clúster, ejecute el siguiente comando de PowerShell Get-AksHciNodePool :

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

Instalación de la CLI de Kubernetes

Para conectarse al clúster de Kubernetes desde el equipo local, use kubectl, el cliente de línea de comandos de Kubernetes.

Conexión a un clúster mediante kubectl

Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando Get-AksHciCredential. En el ejemplo siguiente se obtienen las credenciales del clúster denominado mycluster:

Get-AksHciCredential -name mycluster

Para comprobar la conexión al clúster, use ejecute el comando kubectl get nodes para devolver una lista de los nodos del clúster:

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

Pasos siguientes

En este tutorial, se ha implementado un clúster de Kubernetes en AKS y se ha configurado kubectl para conectarse a él. Ha aprendido a:

  • Implementación de un clúster de AKS en Azure Stack HCI
  • Instalar la CLI de Kubernetes (kubectl)
  • Configurar kubectl para conectarse a un clúster de AKS

Vaya al siguiente tutorial para aprender a implementar una aplicación en el clúster.