Creazione di un cluster utente

Un cluster utente GKE su AWS ospita i tuoi workload Kubernetes. Questo argomento mostra come creare un cluster utente di base. Se vuoi configurare ulteriormente un cluster utente, consulta Creazione di un cluster utente personalizzato.

Esegui il provisioning di un cluster utente GKE su AWS con le risorse personalizzate AWSCluster e AWSNodePool.

Prima di iniziare

Per creare un cluster utente, devi prima installare un servizio di gestione.

Per connetterti alle risorse GKE su AWS, segui questi passaggi. Seleziona se hai una VPC AWS esistente (o una connessione diretta alla tua VPC) o se hai creato una VPC dedicata durante la creazione del servizio di gestione.

VPC esistente

Se hai una connessione diretta o VPN a un VPC esistente, ometti la riga env HTTP_PROXY=http://localhost:8118 dai comandi in questo argomento.

VPC dedicato

Quando crei un servizio di gestione in un VPC dedicato, GKE su AWS include un host bastion in una subnet pubblica.

Per connetterti al tuo servizio di gestione:

  1. Passa alla directory con la configurazione di GKE su AWS. Hai creato questa directory durante l'installazione del servizio di gestione.

    cd anthos-aws

  2. Per aprire il tunnel, esegui lo script bastion-tunnel.sh. Il tunnel inoltra a localhost:8118.

    Per aprire un tunnel all'bastion host, esegui questo comando:

    ./bastion-tunnel.sh -N
    

    I messaggi del tunnel SSH vengono visualizzati in questa finestra. Quando sei pronto a chiudere la connessione, interrompi la procedura utilizzando Ctrl+C o chiudendo la finestra.

  3. Apri un nuovo terminale e passa alla directory anthos-aws.

    cd anthos-aws
  4. Verifica di poter connetterti al cluster con kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    L'output include l'URL del server API del servizio di gestione.

Selezione di una dimensione dell'istanza del control plane

GKE su AWS non supporta il ridimensionamento delle istanze del control plane. Prima di creare il cluster utente, seleziona le dimensioni dell'istanza dei control plane. Le dimensioni del control plane dipendono dal numero di nodi nel cluster. La tabella seguente contiene le dimensioni delle istanze del control plane consigliate per varie dimensioni del cluster.

Dimensione cluster (nodi) Tipo di istanza del control plane
1 – 10 m5.large
11-100 m5.xlarge
101 - 200 m5.2xlarge

Creazione di un cluster utente

In questo esempio, utilizzi terraform per generare una configurazione per creare un cluster di base. Quindi, applichi la configurazione con kubectl apply.

  1. Apri il terminale e, se necessario, connettiti all'host bastion.

  2. Passa alla directory della cartella che hai creato durante l'installazione del servizio di gestione.

  3. Utilizza Terraform per generare un manifest che configuri un cluster di esempio e salvalo in un file YAML. Scegli la tua versione di Terraform, quindi esegui i seguenti comandi:

    Terraform 0.12, 0.13

    terraform output cluster_example > cluster-0.yaml
    

    Terraform 0.14.3+

    terraform output -raw cluster_example > cluster-0.yaml
    

    Per saperne di più sui contenuti di questo file, consulta la documentazione di AWSCluster e AWSNodePool.

  4. Apri il file in un editor di testo e modificalo se necessario. Per impostazione predefinita, GKE su AWS crea node pool in ogni zona di disponibilità specificata in anthos-gke.yaml. Puoi modificare le dimensioni e il numero di node pool in base al cluster che preferisci. Puoi anche apportare ulteriori modifiche alla tua configurazione. Ad esempio, potresti modificare i tipi di istanza dei nodi GKE su AWS; potresti anche attivare logging e monitoraggio sui nodi del control plane.

  5. Applica il file al tuo servizio di gestione.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

Crea un file kubeconfig

Mentre il cluster utente viene avviato, puoi creare un contesto kubeconfig per il nuovo cluster utente. Utilizzi il contesto per l'autenticazione a un cluster utente o di gestione.

  1. Utilizza anthos-gke aws clusters get-credentials per generare un kubeconfig per il tuo cluster utenti in ~/.kube/config.

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    

    Sostituisci CLUSTER_NAME con il nome del cluster. Ad esempio, cluster-0.

  2. Utilizza kubectl per l'autenticazione al nuovo cluster di utenti.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl cluster-info
    

    Se il cluster è pronto, l'output include gli URL dei componenti Kubernetes all'interno del cluster.

Visualizzare lo stato del cluster

Il servizio di gestione esegue il provisioning delle risorse AWS quando applichi un AWSCluster o un AWSNodePool.

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Per elencare i cluster, utilizza kubectl get AWSClusters.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters
    

    L'output include il nome, lo stato, l'età, la versione e l'endpoint di ogni cluster.

    Ad esempio, il seguente output include un solo AWSCluster denominato cluster-0:

    NAME        STATE          AGE     VERSION         ENDPOINT
    cluster-0   Provisioning   2m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    

Visualizzare gli eventi del cluster

Per visualizzare gli eventi Kubernetes recenti del cluster utente, utilizza kubectl get events.

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Esegui kubectl get events.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get events
    

L'output include informazioni, avvisi ed errori relativi al tuo servizio di gestione.

Eliminazione di un cluster utente

Per eliminare un cluster utente:

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Utilizza kubectl delete per eliminare il manifest contenente i cluster utente.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete -f CLUSTER_FILE
    

    Sostituisci CLUSTER_FILE con il nome del manifest contenente gli oggetti AWSCluster e AWSNodePool. Ad esempio, cluster-0.yaml.

Eliminazione di tutti i cluster utente

Per eliminare tutti i cluster utente, procedi nel seguente modo:

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Utilizza kubectl delete per eliminare AWSNodePools e AWSClusters dal tuo servizio di gestione.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSNodePool --all
    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSCluster --all
    

Per maggiori informazioni, consulta Disinstallazione di GKE su AWS.

Passaggi successivi