Questo argomento spiega come preparare Microsoft Azure per l'esecuzione di Tanzu Kubernetes Grid.
Se si sta installando Tanzu Kubernetes Grid in Azure VMware Solution (AVS), si sta eseguendo l'installazione in un ambiente vSphere. Vedere Preparazione di Azure VMware Solution in Microsoft Azure in Preparazione della distribuzione dei cluster di gestione in un ambiente VMware Cloud per preparare l'ambiente e Preparazione della distribuzione dei cluster di gestione in vSphere per distribuire i cluster di gestione.
Per comodità, alla fine di questa pagina è disponibile un Elenco di controllo della preparazione per assicurarsi di essere pronti per distribuire un cluster di gestione di Tanzu Kubernetes Grid in Azure.
Un account Microsoft Azure con quanto segue:
Owner
a tale entità. prod
o il piano dev
. Per ulteriori informazioni sui piani, vedere Piani dei cluster del carico di lavoro.dev
: 4 vCPU (1 principale, 1 worker)prod
: 8 vCPU (3 principali , 1 worker)dev
: 4 vCPU (1 principale, 1 worker)prod
: 12 vCPU (3 principali , 3 worker)Ad esempio, supponendo di avere un singolo cluster di gestione e tutti i cluster con lo stesso piano:
Piano | Cluster del carico di lavoro | vCPU per il carico di lavoro | vCPU per la gestione | vCPU totali |
---|---|---|---|---|
Dev | 1 | 4 | 4 | 8 |
5 | 20 | 24 | ||
Prod | 1 | 12 | 8 | 20 |
5 | 60 | 68 |
Quote di indirizzi IP pubblici sufficienti per i cluster, inclusa la quota per Indirizzi IP pubblici - Standard, Indirizzi IP pubblici - Base e Indirizzi IP pubblici statici. Un account Azure standard ha una quota di 10 indirizzi IP pubblici per regione. Ogni cluster Tanzu Kubernetes Grid richiede 2 indirizzi IP pubblici indipendentemente dal numero di nodi del piano di controllo e nodi worker che include. Per ogni oggetto servizio Kubernetes con tipo LoadBalancer
, è necessario 1 indirizzo IP pubblico.
~/.config/tanzu/tkg/bom/
e il suo nome include la versione di Tanzu Kubernetes Grid. Ad esempio, tkg-bom-v2.2.0+vmware.1 .yaml
.imageRepository
per trovare i record CNAME.(Facoltativo) Una rete virtuale (VNet) con:
CLUSTER_API_SERVER_PORT
quando si distribuisce il cluster.Se non si utilizza una VNet esistente, il processo di installazione ne crea una nuova.
La CLI di Azure installata in locale. Vedere Installazione della CLI di Azure nella documentazione di Microsoft Azure.
Se si distribuiranno servizi di tipo LoadBalancer
in cluster del carico di lavoro basati sulla classe, configurare un gateway NAT o un altro front-end come descritto in I servizi LoadBalancer
per i cluster del carico di lavoro basati sulla classe in Azure richiedono la configurazione manuale del gateway o di front-end .
*In alternativa, vedere Preparazione di un ambiente con limitazioni Internet per l'installazione senza accesso alla rete esterna.
La tabella seguente descrive esempi di dimensionamento per i cluster di gestione in Azure. Utilizzare questi dati come linee guida per assicurarsi che le dimensioni del cluster di gestione vengano modificate per gestire il numero di cluster del carico di lavoro che si intende distribuire. La colonna Dimensioni macchina virtuale carico di lavoro include le dimensioni delle macchine virtuali utilizzate per gli esempi nella colonna Può gestire….
Piano del cluster di gestione | Dimensioni macchina virtuale cluster di gestione | Può gestire… | Dimensioni macchina virtuale cluster carico di lavoro |
---|---|---|---|
3 nodi del piano di controllo e 3 nodi worker |
|
Esempi:
|
|
3 nodi del piano di controllo e 3 nodi worker |
|
Esempio: un cluster del carico di lavoro, distribuito con 3 piani di controllo e 250 nodi worker |
|
3 nodi del piano di controllo e 3 nodi worker |
|
Esempio: 199 cluster del carico di lavoro, ciascuno distribuito con 3 piani di controllo e 3 nodi worker |
|
I cluster di gestione e i cluster del carico di lavoro di Tanzu Kubernetes Grid in Azure richiedono la definizione di due gruppi di sicurezza di rete nella VNet e nel relativo gruppo di risorse VNet:
CLUSTER-NAME-controlplane-nsg
e associato alla subnet del piano di controllo del clusterUn gruppo di sicurezza di rete denominato CLUSTER-NAME-node-nsg
e associato alla subnet del nodo worker del cluster
In cui CLUSTER-NAME
è il nome del cluster.
AttenzioneL'assegnazione ai gruppi di sicurezza di rete di nomi che non seguono il formato precedente può impedire la distribuzione.
Se si specifica una VNet esistente per il cluster di gestione, è necessario creare questi gruppi di sicurezza di rete in base alle indicazioni della sezione Requisiti generali precedente. Una VNet esistente per un cluster di gestione viene specificata tramite Seleziona VNet esistente nell'interfaccia del programma di installazione o AZURE_VNET_NAME
nel relativo file di configurazione.
Se non si specifica una VNet esistente per il cluster, il processo di distribuzione crea una nuova VNet e i gruppi di sicurezza di rete necessari.
Per informazioni su come configurare la VNet, i gruppi di risorse e le subnet del cluster, vedere la tabella Microsoft Azure in Informazioni di riferimento sulle variabili del file di configurazione.
Tanzu Kubernetes Grid gestisce le risorse di Azure come un'applicazione client registrata che accede ad Azure tramite un'entità servizio. Per creare l'entità servizio e configurarne l'accesso alle risorse di Azure, è possibile utilizzare il comando az ad sp create-for-rbac
.
Accedere alla CLI di Azure eseguendo az login
.
Creare un'entità servizio e assegnare il ruolo Owner
a tale entità:
az ad sp create-for-rbac --role "Owner" --name "APP-NAME" --scopes /subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP
az role assignment create --assignee APP-ID --role "Owner"
In cui:
APP-NAME
è un nome qualsiasi da assegnare all'entità servizioSUBSCRIPTION-ID
e RESOURCE-GROUP
sono l'ID sottoscrizione di Azure e il gruppo di risorse VNetAPP-ID
è il valore appId
restituito da az ad sp create-for-rbac
Ad esempio, per creare e assegnare il ruolo Owner
a un'entità servizio denominata tkg
:
$ az ad sp create-for-rbac --role "Owner" --name "tkg" --scopes /subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405/resourceGroups/myrg
Creating 'Owner' role assignment under scope '/subscriptions/c789uce3-aaaa-bbbb-cccc-a51b6b0gb405'
The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli
'name' property in the output is deprecated and will be removed in the future. Use 'appId' instead.
{
"appId": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
"displayName": "tkg",
"name": "c407cfd4-aaaa-bbbb-cccc-80af703eb0ed",
"password": "R6yM_.aaaabbbbccccdddd111122223333",
"tenant": "9c117323-aaaa-bbbb-cccc-9ee430723ba3"
}
$ az role assignment create --assignee c407cfd4-aaaa-bbbb-cccc-80af703eb0ed --role "Owner"
Prendere nota dell'output. Queste informazioni verranno utilizzate nei passaggi della sezione Accettazione della licenza dell'immagine di base seguente e successivamente durante la distribuzione di un cluster di gestione. Per l'elenco completo delle opzioni supportate da az ad sp create-for-rbac
, vedere az ad sp create-for-rbac nella documentazione di Azure.
Per eseguire macchine virtuali del cluster di gestione in Azure, accettare la licenza per la versione di Kubernetes di base e il sistema operativo della macchina.
Eseguire il comando az vm image terms accept
specificando --plan
e ID sottoscrizione.
In Tanzu Kubernetes Grid v2.2, il valore --plan
dell'immagine del cluster predefinito è k8s-1dot25dot7-ubuntu-2004
, in base alla versione di Kubernetes 1.25.7 e al sistema operativo della macchina, Ubuntu 20.04. Eseguire il comando seguente:
az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot25dot7-ubuntu-2004 --subscription AZURE_SUBSCRIPTION_ID
In cui AZURE_SUBSCRIPTION_ID
è l'ID sottoscrizione di Azure.
È necessario ripetere questa operazione per accettare la licenza dell'immagine di base per ogni versione di Kubernetes o sistema operativo che si desidera utilizzare quando si distribuiscono cluster e ogni volta che si esegue l'aggiornamento a una nuova versione di Tanzu Kubernetes Grid.
I cluster di gestione vengono distribuiti da una macchina denominata macchina di bootstrap utilizzando la CLI di Tanzu. Per connettersi ad Azure, la macchina di bootstrap deve fornire la chiave pubblica che fa parte di una coppia di chiavi SSH. Se la macchina di bootstrap non dispone già di una coppia di chiavi SSH, è possibile utilizzare uno strumento come ssh-keygen
per generarne una.
Nella macchina di bootstrap, eseguire il seguente comando ssh-keygen
.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Al prompt Enter file in which to save the key (/root/.ssh/id_rsa):
premere Invio per accettare il file predefinito.
Aggiungere la chiave privata all'agente SSH in esecuzione nella macchina e immettere la password creata nel passaggio precedente.
ssh-add ~/.ssh/id_rsa
Aprire il file .ssh/id_rsa.pub
in un editor di testo in modo da poterlo copiare e incollare facilmente quando si distribuisce un cluster di gestione.
Utilizzare questo elenco di controllo per assicurarsi di essere pronti per la distribuzione di un cluster di gestione Tanzu Kubernetes Grid in Azure:
CLI di Tanzu installata
tanzu version
. L'output deve includere version: v0.29.0
, che è la versione di Tanzu Framework in Tanzu Kubernetes Grid v2.2.Account Azure
https://portal.azure.com
.CLI di Azure installata
az version
. L'output include la versione corrente della CLI di Azure come indicato in Installazione della CLI di Azure nella documentazione di Microsoft Azure.App tkg
registrata
tkg
sia elencata come configurata nella sezione Registrazione di Tanzu Kubernetes Grid come app client di Azure precedente e con un segreto corrente.az ad sp show --id.
Licenza dell'immagine della macchina virtuale di base accettata
az vm image terms show --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot25dot7-ubuntu-2004
. L'output deve contenere "accepted": true
.Per le distribuzioni di produzione, è consigliabile abilitare la gestione delle identità per i cluster: * Per informazioni sui passaggi preparatori da eseguire prima di distribuire un cluster di gestione, vedere Recupero dei dettagli del provider di identità in Configurazione della gestione delle identità. * Per informazioni concettuali sulla gestione delle identità e sul controllo degli accessi in Tanzu Kubernetes Grid, vedere Informazioni sulla gestione di identità e accessi.
Se si utilizza Tanzu Kubernetes Grid in un ambiente con una connessione Internet esterna, dopo aver configurato la gestione delle identità, è possibile distribuire cluster di gestione in Azure.