Prerequisiti

Questa pagina descrive i passaggi da completare prima di installare GKE su AWS.

Ambiente

Per installare GKE su AWS, hai bisogno di un ambiente in cui puoi installare ed eseguire una serie di strumenti. I passaggi seguenti presuppongono che tu stia utilizzando una shell bash su Linux o macOS. Se non hai accesso a un ambiente shell bash, puoi utilizzare Cloud Shell.

Requisiti di AWS

Per completare questo argomento, hai bisogno di un account AWS con accesso alla riga di comando e di due chiavi AWS Key Management Service (KMS) nella stessa regione dei cluster utente.

Per ulteriori informazioni sulle altre risorse AWS richieste, consulta Requisiti.

Configurazione di AWS

Prima di iniziare

Prima di completare questa sezione:

  • Scarica e installa l' interfaccia a riga di comando AWS. Conferma l'installazione eseguendo aws --version. Se l'eseguibile non viene trovato, aggiungi lo strumento aws a PATH.
  • Configura le credenziali IAM AWS e la regione AWS con aws configure.

Autorizzazioni utente amministratore

GKE su AWS richiede che il creatore di un servizio di gestione disponga di determinate autorizzazioni. Prima di poter creare un servizio di gestione o cluster utente, crea o ottieni l'accesso alle credenziali IAM AWS che soddisfano i requisiti.

Creazione di una chiave KMS

GKE su AWS richiede due chiavi AWS KMS. Le chiavi KMS criptano:

  • Dati durante il processo di installazione con la crittografia envelope.
  • Secret a livello di applicazione nei cluster utente.

Segui i passaggi riportati di seguito per creare due chiavi AWS KMS.

Riga di comando

  1. Crea una chiave KMS nel tuo account AWS.

    aws kms create-key
    

    L'output include i metadati della chiave.

  2. Nell'output del comando precedente, copia l'Amazon Resource Name (ARN) della chiave dal campo Arn. Ad esempio, una chiave nella us-west-2 regione ha l'ARN arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  3. Crea un alias per la chiave con aws kms create-alias. Un alias ti consente di gestire le chiavi AWS KMS per nome.

    aws kms create-alias \
        --alias-name=alias/key-name \
        --target-key-id=key-arn
    
  4. Ripeti i passaggi precedenti per un'altra chiave.

Console

  1. Accedi alla console AWS.
  2. Vai a KMS e seleziona Chiavi gestite dal cliente dalla barra laterale.
  3. Fai clic su Crea chiave.
  4. Lascia selezionate le opzioni predefinite.
  5. Una volta creata, seleziona la chiave dall'elenco.
  6. Copia l'ARN della chiave.
  7. Ripeti i passaggi precedenti per un'altra chiave.

Google Cloud Requisiti

I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente vincolato Google Cloud .

Prima di iniziare

  • Assicurati di disporre delle autorizzazioni di Proprietario progetto su un Account Google per abilitare le API nel Google Cloud progetto in cui connetti l'ambiente GKE su AWS. Utilizza le autorizzazioni di proprietario solo per creare i service account GKE su AWS nella sezione seguente.

  • Installa la Google Cloud CLI.

  • L'API Anthos deve essere abilitata per il tuo Google Cloud progetto. L'abilitazione di questa API ti consente di utilizzare altre funzionalità di Google Kubernetes Engine con il tuo progetto. Google Cloud

Crea i service account GKE su AWS

In questa sezione creerai tre service account e chiavi IAM per GKE su AWS. Questi service account sono descritti nel seguente elenco:

Nome Ruoli Descrizione
management-sa gkehub.admin Autorizzazioni per gestire le appartenenze al parco risorse GKE
hub-sa gkehub.connect Autorizzazione per configurare Connect tra i cluster utente e il parco risorse GKE.
node-sa storage.objectViewer Autorizzazione per accedere a Container Registry.

Riga di comando

  1. Esegui l'autenticazione con Google Cloud CLI.

    gcloud auth login &&\
    gcloud auth application-default login
    

    Ti viene chiesto due volte di visitare cloud.google.com ed eseguire l'autenticazione con il tuo Account Google.

  2. Imposta il tuo Google Cloud progetto come variabile di ambiente e imposta il tuo predefinito project-id con gcloud CLI.

    export PROJECT_ID=project-id
    
    gcloud config set project $PROJECT_ID
    

    Sostituisci il valore di project-id con il tuo Google Cloud progetto.

  3. Abilita le Google Cloud API.

    gcloud services enable anthos.googleapis.com
    gcloud services enable cloudresourcemanager.googleapis.com
    gcloud services enable gkehub.googleapis.com
    gcloud services enable gkeconnect.googleapis.com
    gcloud services enable logging.googleapis.com
    gcloud services enable monitoring.googleapis.com
    gcloud services enable serviceusage.googleapis.com
    gcloud services enable stackdriver.googleapis.com
    gcloud services enable storage-api.googleapis.com
    gcloud services enable storage-component.googleapis.com
    
  4. Crea i service account con gcloud eseguendo i seguenti comandi.

    gcloud iam service-accounts create management-sa
    gcloud iam service-accounts create hub-sa
    gcloud iam service-accounts create node-sa
    
  5. Scarica le chiavi per ogni account di servizio con gcloud eseguendo i seguenti comandi.

    gcloud iam service-accounts keys create management-key.json \
         --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create hub-key.json \
         --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create node-key.json \
         --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.com
    
  6. Concedi i ruoli al account di servizio di gestione.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.admin
    
  7. Concedi i ruoli al account di servizio hub.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.connect
    
  8. Concedi i ruoli al account di servizio del nodo.

    gcloud projects add-iam-policy-binding \
          $PROJECT_ID \
          --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \
          --role roles/storage.objectViewer
    

Console

  1. Apri la Google Cloud pagina della libreria API della console.
  2. Seleziona il progetto che preferisci dal menu a discesa nella parte superiore dello schermo.
  3. Trova e abilita le seguenti API.

    • Anthos
    • Cloud Resource Manager
    • Cloud Storage
    • Cloud Logging
    • API JSON di Google Cloud Storage
    • GKE Hub
    • API GKE Connect
    • Service Usage
    • Stackdriver
    • Stackdriver Monitoring
  4. Apri la pagina Service account.

  5. Poi, crea un account di servizio e assegna i ruoli per il account di servizio management-sa.

    1. Fai clic su Crea service account.
    2. Assegna un nome all'account management-sa e fai clic su Crea. Viene visualizzata la schermata Concedi a questo account di servizio l'accesso al progetto.
    3. Aggiungi i ruoli Amministratore di GKE Hub.
    4. Fai clic su Continua. Viene visualizzata la schermata Concedi agli utenti l'accesso a questo service account.
    5. Fai clic su Fine. Viene visualizzata la schermata Service account per il progetto.
    6. Trova la riga contenente l'indirizzo email del tuo account di servizio, management-sa@project_id.iam.gserviceaccount.com.
    7. Fai clic sul menu Azioni per il account di servizio e seleziona Gestisci chiavi.
    8. Fai clic sul menu a discesa Aggiungi chiave.
    9. Fai clic su Crea nuova chiave.
    10. Seleziona JSON come tipo di chiave e fai clic su Crea. Il browser scarica la chiave del account di servizio.
    11. Rinomina il file management-key.json.
  6. Poi, crea un account di servizio e assegna i ruoli per il account di servizio hub-sa.

    1. Fai clic su Crea service account.
    2. Assegna un nome all'account hub-sa e fai clic su Crea. Viene visualizzata la schermata Concedi a questo account di servizio l'accesso al progetto.
    3. Aggiungi il ruolo Agente di connessione GKE Hub.
    4. Fai clic su Continua. Viene visualizzata la schermata Concedi agli utenti l'accesso a questo service account.
    5. Fai clic su Fine. Viene visualizzata la schermata Service account per il progetto.
    6. Trova la riga contenente l'indirizzo email del tuo account di servizio, hub-sa@project_id.iam.gserviceaccount.com.
    7. Fai clic sul menu Azioni per il account di servizio e seleziona Gestisci chiavi.
    8. Fai clic sul menu a discesa Aggiungi chiave.
    9. Fai clic su Crea nuova chiave.
    10. Seleziona JSON come tipo di chiave e fai clic su Crea. Il browser scarica la chiave del account di servizio.
    11. Rinomina il file hub-key.json.
  7. Poi, crea un account di servizio e assegna i ruoli per il account di servizio node-sa.

    1. Fai clic su Crea service account.
    2. Assegna un nome all'account node-sa e fai clic su Crea. Viene visualizzata la schermata Concedi a questo account di servizio l'accesso al progetto.
    3. Aggiungi il ruolo Visualizzatore oggetti Storage.
    4. Fai clic su Fine. Viene visualizzata la schermata Service account per il progetto.
    5. Trova la riga contenente l'indirizzo email del tuo account di servizio, node-sa@project_id.iam.gserviceaccount.com.
    6. Fai clic sul menu Azioni per il account di servizio e seleziona Gestisci chiavi.
    7. Fai clic sul menu a discesa Aggiungi chiave.
    8. Fai clic su Crea nuova chiave.
    9. Seleziona JSON come tipo di chiave e fai clic su Crea. Il browser scarica la chiave del account di servizio.
    10. Rinomina il file node-key.json.

Strumento a riga di comando anthos-gke

anthos-gke è uno strumento a riga di comando per GKE su AWS. Utilizza anthos-gke per creare la configurazione e installare un servizio di gestione. L'ultima versione di anthos-gke è aws-1.14.1-gke.0.

Lo strumento a riga di comando anthos-gke supporta solo Linux e macOS.

  1. Scarica il file binario da Cloud Storage.

    Linux

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. Aggiorna le autorizzazioni di anthos-gke e copialo in /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Verifica che la versione sia aws-1.14.1-gke.0

    anthos-gke version
    

Autorizzazioni per lo strumento a riga di comando anthos-gke

Per utilizzare lo strumento a riga di comando anthos-gke, l'utente che esegue il comando deve disporre dei ruoli ServiceUsageViewer e StorageAdmin. Per aggiungere i ruoli all'entità IAM, esegui questi comandi:

gcloud projects add-iam-policy-binding PROJECT_NAME \
    --member user:USER_NAME \
    --role roles/serviceusage.serviceUsageViewer
gcloud projects add-iam-policy-binding PROJECT_NAME \
    --member user:USER_NAME \
    --role roles/storage.admin

Sostituisci quanto segue:

  • PROJECT_NAME: il tuo Google Cloud progetto
  • USER_NAME: il nome utente che esegue lo strumento a riga di comando anthos-gke. Se utilizzi un account di servizio, usa serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Terraform

Lo strumento anthos-gke genera file di configurazioneTerraform e chiama lo strumento a riga di comando terraform.

GKE su AWS richiede una versione di Terraform superiore alla v0.14.3. Puoi controllare la tua versione di Terraform con il seguente comando:

terraform version

Se non hai la versione v0.14.3 o successive, scarica e installa Terraform prima di creare un servizio di gestione.

Upgrade di Terraform

Per eseguire l'upgrade di Terraform dopo aver installato GKE su AWS, devi eseguire l'upgrade del file binario di Terraform tramite ogni versione secondaria in ordine.

Ad esempio, se vuoi eseguire l'upgrade di Terraform dalla versione v0.12.x alla v0.14.x, devi installare temporaneamente la versione v0.13.x. Dopo aver installato una versione v0.13.x, esegui anthos-gke aws management init e anthos-gke aws management apply. GKE su AWS aggiorna la configurazione. Puoi quindi eseguire l'upgrade alla versione v0.14.x.

Kubernetes

GKE su AWS richiede la versione 1.17 o successive di kubectl. Puoi controllare la tua versione di kubectl eseguendo:

kubectl version --client -o yaml | grep gitVersion

Se non hai la versione 1.17 o successive, installa una versione più recente di kubectl.

Passaggi successivi