Creare cluster Kubernetes con l'interfaccia della riga di comando di Azure
Si applica a: Azure Stack HCI, versione 23H2
Questo articolo descrive come creare cluster Kubernetes in Azure Stack HCI usando l'interfaccia della riga di comando di Azure. Il flusso di lavoro prevede le fasi seguenti:
- Creare un cluster Kubernetes in Azure Stack HCI 23H2 usando l'interfaccia della riga di comando di Azure. Il cluster è connesso ad Azure Arc per impostazione predefinita.
- Durante la creazione del cluster, viene fornito un gruppo di Microsoft Entra che contiene l'elenco di utenti Microsoft Entra con accesso amministratore del cluster Kubernetes.
- Accedere al cluster usando kubectl e il Microsoft Entra ID.
- Eseguire un'applicazione multi-contenitore di esempio con un front-end Web e un'istanza Redis nel cluster.
Prima di iniziare
- Prima di iniziare, assicurarsi di avere i dettagli seguenti dall'amministratore dell'infrastruttura locale:
- ID sottoscrizione di Azure : ID sottoscrizione di Azure in cui Azure Stack HCI viene usato per la distribuzione e la registrazione.
- ID percorso personalizzato - ID Resource Manager di Azure della posizione personalizzata. Il percorso personalizzato viene configurato durante la distribuzione del cluster Azure Stack HCI. L'amministratore dell'infrastruttura deve fornire l'ID Resource Manager della posizione personalizzata. Questo parametro è necessario per creare cluster Kubernetes. È anche possibile ottenere l'ID Resource Manager usando
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
, se l'amministratore dell'infrastruttura fornisce un nome di posizione e un nome del gruppo di risorse personalizzato. - ID di rete: Azure Resource Manager ID della rete logica di Azure Stack HCI creata seguendo questa procedura. L'amministratore deve fornire l'ID della rete logica. Questo parametro è necessario per creare cluster Kubernetes. È anche possibile ottenere l'ID Resource Manager di Azure usando
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
se si conosce il gruppo di risorse in cui è stata creata la rete logica.
- È possibile eseguire i passaggi descritti in questo articolo in un computer di sviluppo locale per creare un cluster Kubernetes nella distribuzione remota di Azure Stack HCI. Assicurarsi di avere la versione più recente dell'interfaccia della riga di comando di Az nel computer di sviluppo. È anche possibile scegliere di aggiornare la versione dell'interfaccia della riga di comando az usando
az upgrade
. - Per connettersi al cluster Kubernetes da qualsiasi posizione, creare un gruppo di Microsoft Entra e aggiungerli. Tutti i membri del gruppo Microsoft Entra dispongono dell'accesso amministratore del cluster al cluster. Assicurarsi di aggiungere se stessi come membro al gruppo di Microsoft Entra. Se non si aggiunge autonomamente, non è possibile accedere al cluster Kubernetes usando kubectl. Per altre informazioni sulla creazione di gruppi Microsoft Entra e sull'aggiunta di utenti, vedere Gestire i gruppi e l'appartenenza a gruppi Microsoft Entra.
- Scaricare e installare kubectl nel computer di sviluppo. Lo strumento da riga di comando Kubernetes, kubectl, consente di eseguire comandi nei cluster Kubernetes. È possibile usare kubectl per distribuire applicazioni, esaminare e gestire le risorse del cluster e visualizzare i log.
Installare l'estensione dell'interfaccia della riga di comando di Azure
Eseguire il comando seguente per installare le estensioni necessarie dell'interfaccia della riga di comando di Azure:
az extension add -n aksarc --upgrade
az extension add -n customlocation --upgrade
az extension add -n stack-hci-vm --upgrade
az extension add -n connectedk8s --upgrade
Creare un cluster Kubernetes
Usare il az aksarc create
comando per creare un cluster Kubernetes in AKS Arc. Assicurarsi di accedere ad Azure prima di eseguire questo comando. Se sono presenti più sottoscrizioni di Azure, selezionare l'ID sottoscrizione appropriato usando il comando az account set .
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys --load-balancer-count 0 --control-plane-ip $controlplaneIP
Il comando viene completato dopo pochi minuti e vengono restituite informazioni in formato JSON sul cluster.
Connettersi al cluster Kubernetes
È ora possibile connettersi al cluster Kubernetes eseguendo il az connectedk8s proxy
comando dal computer di sviluppo. Assicurarsi di accedere ad Azure prima di eseguire questo comando. Se sono presenti più sottoscrizioni di Azure, selezionare l'ID sottoscrizione appropriato usando il comando az account set .
Questo comando scarica il kubeconfig del cluster Kubernetes nel computer di sviluppo e apre un canale di connessione proxy al cluster Kubernetes locale. Il canale è aperto per tutto il tempo in cui viene eseguito il comando. Lasciare che questo comando sia eseguito per tutto il tempo necessario per accedere al cluster. Se si verifica il timeout, chiudere la finestra dell'interfaccia della riga di comando, aprire una nuova, quindi eseguire di nuovo il comando.
È necessario disporre delle autorizzazioni collaboratori nel gruppo di risorse che ospita il cluster Kubernetes per eseguire correttamente il comando seguente:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Output previsto:
Proxy is listening on port 47011
Merged "aks-workload" as current context in .\\aks-arc-kube-config
Start sending kubectl requests on 'aks-workload' context using
kubeconfig at .\\aks-arc-kube-config
Press Ctrl+C to close proxy.
Mantenere in esecuzione questa sessione e connettersi al cluster Kubernetes da un prompt dei comandi/terminale diverso. Verificare che sia possibile connettersi al cluster Kubernetes eseguendo il comando kubectl get. Questo comando restituisce un elenco dei nodi del cluster:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
Nell'esempio di output seguente viene illustrato il nodo creato nei passaggi precedenti. Assicurarsi che lo stato del nodo sia Pronto:
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
Distribuire l'applicazione
Un file manifesto Kubernetes definisce lo stato desiderato di un cluster, ad esempio le immagini del contenitore da eseguire.
È possibile usare un manifesto per creare tutti gli oggetti necessari per eseguire l'applicazione Voto di Azure. Questo manifesto include due distribuzioni kubernetes:
- L'esempio di applicazioni Python di voto di Azure.
- Istanza di Redis.
Vengono creati anche due servizi Kubernetes :
- Servizio interno per l'istanza di Redis.
- Servizio esterno per accedere all'applicazione Voto di Azure da Internet.
Creare un file denominato azure-vote.yaml e copiare nel manifesto seguente:
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
env:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Distribuire l'applicazione usando il comando kubectl apply e specificare il nome di YAML:
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
L'output di esempio seguente mostra le distribuzioni e i servizi creati correttamente:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Test dell'applicazione
Durante l'esecuzione dell'applicazione, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Il processo potrebbe richiedere alcuni minuti.
Monitorare lo stato di avanzamento usando il comando kubectl get service con l'argomento --watch
.
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
L'output EXTERNAL-IP per il servizio azure-vote-front viene inizialmente visualizzato come in sospeso.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Dopo che l'indirizzo EXTERNAL-IP cambia da in sospeso a un indirizzo IP pubblico effettivo, usare CTRL-C per arrestare il processo di watch kubectl. L'output di esempio seguente mostra un indirizzo IP pubblico valido assegnato al servizio:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Per vedere in azione l'app Azure Vote, aprire un Web browser all'indirizzo IP esterno del servizio.
Eliminare il cluster
Eseguire il comando per pulire il az aksarc delete
cluster creato:
az aksarc delete --resource-group $aksclustername --name $resource_group
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per