Gerir conjuntos de nós para um cluster (AKS no Azure Stack HCI 22H2)
Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server
Nota
Para obter informações sobre a gestão de conjuntos de nós no AKS no Azure Stack HCI 23H2, veja Gerir conjuntos de nós.
No AKS ativado pelo Azure Arc, os nós da mesma configuração são agrupados em conjuntos de nós. Estes conjuntos de nós contêm as VMs subjacentes que executam as suas aplicações. Este artigo mostra-lhe como criar e gerir conjuntos de nós para um cluster no AKS Arc.
Nota
Esta funcionalidade permite um maior controlo sobre como criar e gerir múltiplos conjuntos de nós. Como resultado, são necessários comandos separados para criar, atualizar e eliminar operações. Anteriormente, as operações de cluster através de New-AksHciCluster ou Set-AksHciCluster eram a única opção para criar ou dimensionar um cluster com um conjunto de nós do Windows e um conjunto de nós do Linux. Esta funcionalidade expõe um conjunto de operações separado para conjuntos de nós que requerem a utilização dos comandos do conjunto de nós New-AksHciNodePool, Set-AksHciNodePool, Get-AksHciNodePool e Remove-AksHciNodePool para executar operações num conjunto de nós individual.
Antes de começar
Recomendamos que instale a versão 1.1.6. Se já tiver o módulo do PowerShell instalado, execute o seguinte comando para localizar a versão:
Get-Command -Module AksHci
Se precisar de atualizar o PowerShell, siga as instruções em Atualizar o anfitrião do AKS.
Criar um cluster do AKS (Create an AKS cluster)
Para começar, crie um cluster do AKS com um único conjunto de nós. O exemplo seguinte utiliza o comando New-AksHciCluster para criar um novo cluster do Kubernetes com um conjunto de nós linux com o nome linuxnodepool, que tem 1 nó. Se já tiver um cluster implementado com uma versão mais antiga do AKS e quiser continuar a utilizar a sua implementação antiga, pode ignorar este passo. Ainda pode utilizar o novo conjunto de comandos do conjunto de nós para adicionar mais conjuntos de nós ao cluster existente.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux
Nota
O parâmetro antigo definido para New-AksHciCluster
ainda é suportado.
Adicionar um conjunto de nós
O cluster com o nome mycluster
*', criado no passo anterior, tem um único conjunto de nós. Pode adicionar um segundo conjunto de nós ao cluster existente com o comando New-AksHciNodePool . O exemplo seguinte cria um conjunto de nós do Windows com o nome windowsnodepool com um nó. Certifique-se de que o nome do conjunto de nós não é o mesmo nome que qualquer conjunto de nós existente.
New-AksHciNodePool -clusterName mycluster -name windowsnodepool -count 1 -osType Windows -osSku Windows2022
Obter informações de configuração de um conjunto de nós
Para ver as informações de configuração dos conjuntos de nós, utilize o comando Get-AksHciNodePool .
Get-AksHciNodePool -clusterName mycluster
Exemplo de saída:
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Para ver as informações de configuração de um conjunto de nós específico, utilize o -name
parâmetro em Get-AksHciNodePool.
Get-AksHciNodePool -clusterName mycluster -name linuxnodepool
Exemplo de saída:
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Get-AksHciNodePool -clusterName mycluster -name windowsnodepool
Exemplo de saída:
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Nota
Se utilizar os novos conjuntos de parâmetros para implementar um cluster e, em New-AksHciCluster
seguida, executar Get-AksHciCluster
para obter as informações do cluster, os campos WindowsNodeCount
e LinuxNodeCount
na saída irão devolver 0
. Para obter o número preciso de nós em cada conjunto de nós, utilize o comando Get-AksHciNodePool
com o nome de cluster especificado.
Dimensionar um conjunto de nós
Pode aumentar ou reduzir verticalmente o número de nós num conjunto de nós.
Para dimensionar o número de nós num conjunto de nós, utilize o comando Set-AksHciNodePool . O exemplo seguinte dimensiona o número de nós para 3 num conjunto de nós com o nome linuxnodepool
no mycluster
cluster.
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Nós do plano de controlo de dimensionamento
A gestão dos nós do plano de controlo não mudou. A forma como são criadas, dimensionadas e removidas permanece a mesma. Continuará a implementar nós do plano de controlo com o comando New-AksHciCluster com os parâmetros controlPlaneNodeCount
e controlPlaneVmSize
com os valores predefinidos de 1 e Standard_A4_V2, respetivamente, se não fornecer valores.
Poderá ter de dimensionar os nós do plano de controlo à medida que a procura da carga de trabalho das suas aplicações é alterada. Para dimensionar os nós do plano de controlo, utilize o comando Set-AksHciCluster . O exemplo seguinte dimensiona os nós do plano de controlo para 3 no mycluster
cluster, que foi criado nos passos anteriores.
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
Eliminar um conjunto de nós
Se precisar de eliminar um conjunto de nós, utilize o comando Remove-AksHciNodePool . O exemplo seguinte remove o conjunto de nós com o nome windowsnodepool
do mycluster
cluster.
Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool
Especificar um taint para um conjunto de nós
Ao criar um conjunto de nós, pode adicionar taints a esse conjunto de nós. Quando adiciona um taint, todos os nós nesse conjunto de nós também obtêm essa taint. Para obter mais informações sobre taints e tolerâncias, veja Kubernetes Taints and Tolerations (Taints e Tolerâncias do Kubernetes).
Definir taints do conjunto de nós
Para criar um conjunto de nós com um taint, utilize New-AksHciNodePool. Especifique o nome taintnp
e utilize o -taints
parâmetro para especificar sku=gpu:noSchedule
para o taint.
New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule
Nota
Um taint só pode ser definido para conjuntos de nós durante a criação do conjunto de nós.
Execute o seguinte comando para se certificar de que o conjunto de nós foi implementado com êxito com o taint especificado.
Get-AksHciNodePool -clusterName mycluster -name taintnp
Saída
Status : {Phase, Details}
ClusterName : mycluster
NodePoolName : taintnp
Version : v1.20.7-kvapkg.1
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Taints : {sku=gpu:NoSchedule}
No passo anterior, aplicou o taint sku=gpu:NoSchedule quando criou o conjunto de nós. O seguinte manifesto YAML de exemplo básico utiliza uma tolerância para permitir que o agendador do Kubernetes execute um pod NGINX num nó nesse conjunto de nós.
Crie um ficheiro com o nome nginx-toleration.yaml
e copie as informações no texto seguinte.
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- image: mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine
name: mypod
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 1
memory: 2G
tolerations:
- key: "sku"
operator: "Equal"
value: "gpu"
effect: "NoSchedule"
Em seguida, agende o pod com o seguinte comando.
kubectl apply -f nginx-toleration.yaml
Para verificar se o pod foi implementado, execute o seguinte comando:
kubectl describe pod mypod
[...]
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
sku=gpu:NoSchedule
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 32s default-scheduler Successfully assigned default/mypod to moc-lk4iodl7h2y
Normal Pulling 30s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
Normal Pulled 26s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" in 4.529046457s
Normal Created 26s kubelet Created container mypod
Passos seguintes
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários