Guida rapida all'installazione di Anthos in modalità disconnessa

Anthos in esecuzione in modalità disconnessa è una versione di Anthos che può essere eseguita completamente isolata da Internet in un ambiente con air gap. Puoi utilizzare Anthos in esecuzione in modalità disconnessa per eseguire carichi di lavoro altamente regolamentati on-premise, sfruttando al contempo i numerosi vantaggi dell'infrastruttura creata per il cloud.

Ambito rapido della modalità privata di Anthos

Questa guida rapida illustra come installare Anthos in modalità disconnessa come operatore dell'infrastruttura, responsabile del livello dell'infrastruttura, come macchine Bare Metal, networking, archiviazione e sistema operativo. In questa guida rapida scoprirai come:

  • Installare e configurare Anthos in esecuzione in modalità disconnessa utilizzando l'approccio di installazione minima.
  • Eseguire il deployment di un cluster di amministrazione.
  • Crea un cluster utente ed esegui il deployment di un'applicazione nel cluster utente.

Anthos in esecuzione in modalità disconnessa ha due tipi di cluster:

  • I cluster Admin vengono utilizzati per creare e gestire i cluster utente.
  • I cluster User eseguono i tuoi carichi di lavoro.

Hai anche una workstation di amministrazione, una singola macchina contenente gli strumenti necessari per installare e gestire il tuo Anthos in esecuzione in modalità disconnessa.

Prima di iniziare

Assicurati di soddisfare i requisiti tecnici per l'esecuzione di Anthos in modalità disconnessa e di avere cinque o più macchine pronte per l'uso. Per questa guida rapida sono necessarie esperienze precedenti in Kubernetes e gestione del sistema.

Prepara l'ambiente

Accedi ad Anthos in esecuzione in modalità disconnessa

Google deve concederti l'accesso ad Anthos in esecuzione in modalità disconnessa. Fornisci al tuo punto di contatto Google un indirizzo email per ogni tester in modo che possiamo concedere loro l'accesso al repository di download. Questi indirizzi email devono essere Account Google.

Dopo che il tuo punto di contatto Google conferma che hai accesso ad Anthos in esecuzione in modalità disconnessa, verifica di avere le autorizzazioni per scaricare Anthos Anthos in esecuzione in modalità disconnessa eseguendo il seguente comando:

gsutil ls gs://anthos-private-mode-release/

Se ricevi un messaggio di errore, verifica che gsutil utilizzi lo stesso Account Google che hai indicato dal punto di contatto Google eseguendo il comando gcloud auth list.

In alternativa, puoi visitare il bucket di release più recente per verificare di disporre delle autorizzazioni corrette. Devi aver eseguito l'accesso con l'Account Google fornito in precedenza.

In caso di problemi di accesso ad Anthos in esecuzione in modalità disconnessa, contatta il tuo punto di contatto Google per ricevere assistenza.

Scarica Anthos in esecuzione in modalità disconnessa

In questa sezione scarichi Anthos in esecuzione in modalità disconnessa, contenuta in più file di diversi gigabyte ciascuno. Il download potrebbe richiedere molto tempo, a seconda della connessione a Internet.

Scarica Anthos in esecuzione in modalità disconnessa

Sulla workstation di amministrazione, esegui questi comandi:

# Login with the account granted access to Anthos running in disconnected mode
gcloud auth login

# Download the script which helps download all the latest components
export VERSION=1.10.3-gke.2

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.10/installing/infrastructure#download
export INSTALLER_DIGEST=62ea4de45311e2899c8187aed2c57ea28919299fd9452bdb64c4d972b1d9956a
export INSTALLER=get-anthos-private-mode-$VERSION.sh
gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER

# If you are working on a workstation shared with other users,
# we recommend that you revoke your credentials after downloading the release.
gcloud auth revoke YOUR_EMAIL_ADDRESS

Installa le dipendenze rimanenti

Una volta completato il download di Anthos in modalità disconnessa, esegui i comandi seguenti:

cd anthos-baremetal-private-mode

# Add actl command line tool and tools directory to the PATH
export PATH=$PWD/bin:$PATH

# Download Harbor offline installer
curl -SL \
  https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz \
  --output "local-registry/harbor-offline-installer.tgz"

# Install docker-compose
curl -SL \
  https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 \
  --output "local-registry/docker-compose"

Non hai di nuovo bisogno di una connessione a Internet finché non esegui il deployment dell'app demo.

Configurare Container Registry locale

Anthos in modalità disconnessa funziona archiviando le immagini container Anthos in un Container Registry locale.

Esporta le seguenti variabili di ambiente.

export REGISTRY_HOST=REGISTRY_HOST
export REGISTRY_PASSWORD=REGISTRY_PASSWORD

# By default, a library public project is created,
# and you can also create other private projects via the container registry portal.
export PRIVATE_REGISTRY=${REGISTRY_HOST}/library

Sostituisci quanto segue:

  • REGISTRY_HOST è l'indirizzo IP del tuo registro. Se vuoi installare e utilizzare Anthos in esecuzione in Container Registry in modalità disconnessa nella workstation di amministrazione, utilizza qui l'indirizzo IP della workstation di amministrazione.

  • REGISTRY_PASSWORD è il valore che imposti per la tua password del Registro di sistema.

Configura Anthos Registry in esecuzione in modalità disconnessa

In questa sezione configurerai un Container Registry privato nella workstation di amministrazione. Esegui tutti i comandi seguenti dalla workstation di amministrazione.

  1. Se non hai un tuo Container Registry privato, installa Anthos in esecuzione in modalità Container disconnesso.

    cd ~/anthos-baremetal-private-mode
    
    # Move it to a path under $PATH
    chmod a+x local-registry/docker-compose
    sudo cp local-registry/docker-compose /usr/bin
    
    # Install local registry
    ./local-registry/install.sh
    
  2. Accedi al registry per verificare di avere l'accesso. Se ricevi un errore, potrebbe essere necessario attendere qualche secondo.

    docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    

Container Registry è disponibile all'indirizzo https://REGISTRY_HOST/ dopo l'avvio del servizio. Le credenziali di accesso sono il nome utente admin e REGISTRY_PASSWORD per la password.

Carica immagini in Container Registry

In questa sezione caricherai le immagini container in esecuzione in modalità disconnessa in Container Registry.

Prepara e carica le immagini container in esecuzione in modalità disconnessa nel tuo registry del container. Se richiesto, scegli l'opzione Use that credential o inserisci le nuove credenziali.

actl images push --private-registry=${PRIVATE_REGISTRY} \
    --images ~/anthos-baremetal-private-mode

Nota: se utilizzi un proxy HTTP sulla workstation, potresti dover annullare l'impostazione delle seguenti variabili di ambiente per consentire il funzionamento del comando actl images push:

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

Installazione del Centro di gestione

In questa sezione installerai un cluster di amministrazione Anthos su macchine bare metal e quindi installerai il Centro di gestione Anthos sopra il cluster di amministrazione.

Prepara la configurazione del cluster di amministrazione

Aggiorna il file ./actl-workspace/admin/admin.yaml con le impostazioni corrispondenti al tuo ambiente.

vi ./actl-workspace/admin/admin.yaml

Compila i seguenti campi:

  • La chiave sshPrivateKeyPath è la chiave utilizzata durante l'installazione per accedere agli altri nodi che faranno parte del cluster. Questa è la controparte privata della chiave pubblica che hai distribuito ai nodi nei Prerequisiti.

  • registryMirrors identifica la posizione di tutti i mirroring del Registro di sistema in cui sono archiviate le immagini Docker.

    • registryMirrors.endpoint è l'endpoint del mirroring. Il formato dell'endpoint è URL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX . Ad esempio, se hai creato il Registro di sistema sulla workstation, imposta l'endpoint su https://REGISTRY_HOST/v2/library. Tieni presente che /v2/ è obbligatorio tra REGISTRY_HOST e IMAGE_PREFIX.

    • registryMirrors.pullCredentialConfigPath è il percorso per le credenziali. In genere, questo è simile a /home/USER/.docker/config.json.

    • registryMirrors.caCertPath è la posizione dell'autorità di certificazione utilizzata dal registry per criptare il traffico. Questo certificato viene distribuito ai nodi durante il processo di installazione per consentire loro di estrarre immagini dal registro. Il percorso solitamente è /etc/docker/certs.d/REGISTRY_HOST/ca.crt.

  • La specifica controlPlane definisce i nodi che fanno parte del piano di controllo.

    controlPlane:
      nodePoolSpec:
        nodes:
        # Control plane node pools. Typically, this is either a single machine
        # or 3 machines if using a high availability deployment.
        - address: 10.200.0.3
    
  • La specifica loadBalancer definisce il tipo di bilanciatore del carico utilizzato. La configurazione predefinita installa un bilanciatore del carico sul cluster in esecuzione. In questo caso, devi almeno impostare controlPlaneVIP in modo che identifichi un pool di indirizzi IP virtuali (VIP) per esporre il server API Kubernetes e addressPools per allocare i VIP on demand ai servizi che li richiedono. Ad esempio:

    loadBalancer:
      mode: bundled
      # There are two load balancer VIPs: one for the control plane and one for the
      # Layer 7 Ingress service.
      # The VIPs must be in the same subnet as the load balancer nodes.
      vips:
        # ControlPlaneVIP specifies the VIP to connect to the Kubernetes API server.
        # This address must not be in the address pools below.
        controlPlaneVIP: 10.200.0.50
      # AddressPools is a list of non-overlapping IP ranges for the data plane load
      # balancer.
      # All addresses must be in the same subnet as the load balancer nodes.
      # Address pool configuration is only valid for 'bundled' LB mode in non-admin
      # clusters.
      addressPools:
      - name: pool1
        addresses:
        # Each address must be either in the CIDR form (1.2.3.0/24)
        # or range form (1.2.3.1-1.2.3.5).
        - 10.200.0.51-10.200.0.59
    
  • L'ultima sezione delle specifiche del cluster specifica il valore loginUser. Questo accesso deve avere accesso alla chiave SSH specificata di seguito ed è l'utente per cui è stata distribuita nella chiave nei prerequisiti.

    nodeAccess:
      loginUser: LOGIN_USERNAME
    

    Sostituisci LOGIN_USERNAME con il nome utente utilizzato per accedere al cluster utente.

  • La specifica nodePool identifica i nodi che ospitano la console del Centro gestione, Prometheus, Grafana e altri servizi nel cluster di amministrazione. Questi nodi sono i nodi worker del cluster di amministrazione. Ad esempio:

    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-admin
    spec:
      # Cannot be changed, must be admin
      clusterName: admin
      nodes:
      - address: 10.200.0.6
    

Crea il cluster di amministrazione

Esegui il comando seguente per creare il cluster di amministrazione. Sono necessari circa 30 minuti.

cd ~/anthos-baremetal-private-mode
actl clusters baremetal create admin

Una volta creato il cluster di amministrazione, verifica di potervi accedere.

export ADMIN_KUBECONFIG=$(pwd)/bmctl-workspace/admin/admin-kubeconfig
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl get nodes

Installazione del Centro di gestione

  1. Installare il Centro di gestione nel cluster di amministrazione con la configurazione predefinita.

    cd ~/anthos-baremetal-private-mode
    actl platform management-center create
    
  2. Accedi ad Anthos Management Center nel browser.

    actl platform management-center describe --kubeconfig=${ADMIN_KUBECONFIG}
    

Viene restituito l'URL di Anthos Management Center.

Registrazione delle risorse

Registrare le macchine di inventario

Per creare un cluster utente, Anthos richiede un pool di macchine inattive. In questa sezione registri le macchine dell'inventario al cluster di amministrazione Anthos per renderle disponibili.

kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}

Esempio:

apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
  name: IP_ADDRESS
  labels:
    "KEY": "VALUE"
spec:
  address: IP_ADDRESS

Sostituisci quanto segue:

  • IP_ADDRESS: l'indirizzo IP della macchina, ad esempio 10.200.0.10.
  • KEY:VALUE: una coppia chiave-valore, ad esempio "rack": "r1020" per indicare la posizione di un rack.

Le labels sono coppie chiave-valore in formato libero collegate alla risorsa. Queste etichette possono essere utilizzate in un secondo momento nel Centro di gestione per filtrare le macchine. Ad esempio, puoi utilizzare le etichette per identificare la posizione del rack o le configurazioni hardware speciali.

Creazione di cluster utente

Nella pagina Cluster del Centro di gestione, fai clic su Crea per creare un nuovo cluster utente Anthos. Una volta creato, il cluster viene registrato automaticamente nel Centro di gestione e viene visualizzato immediatamente nella dashboard del cluster.

Crea un cluster

L'installazione e la preparazione potrebbe richiedere fino a 15 minuti. Nel frattempo, puoi controllare lo stato del cluster utente con il seguente comando:

kubectl get Cluster -n USER_CLUSTER_NAME --kubeconfig=${ADMIN_KUBECONFIG}

Sostituisci USER_CLUSTER_NAME con il nome del cluster che hai creato.

Quando lo stato è pronto, il cluster viene creato e registrato correttamente nel cluster di amministrazione.

Accesso al cluster utente

Dopo aver creato il cluster utente, puoi scaricare kubeconfig tramite il Centro di gestione.

Esegui il deployment dell'app demo

Puoi esplorare Anthos in esecuzione in modalità disconnessa provando l'applicazione di esempio Online Boutique.

Scarica l'immagine

I passaggi di questa sezione richiedono una connessione a Internet.

  1. Scarica il repository di esempio:

    git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
    
  2. Scarica le immagini:

    IMAGES=$(cat online-boutique/release/kubernetes-manifests.yaml | grep image | sed "s/ *image: //")
    actl images save --output online-boutique-images ${IMAGES}
    

Esegui il deployment del campione

  1. Esegui il push delle immagini al registro privato:

    actl images push --images online-boutique-images --private-registry=PRIVATE_REGISTRY
    

    Sostituisci PRIVATE_REGISTRY con il nome del tuo registro privato.

  2. Creare uno spazio dei nomi per l'applicazione.

    kubectl create namespace demo --kubeconfig=USER_CLUSTER_KUBECONFIG
    

    Sostituisci USER_CLUSTER_KUBECONFIG con il percorso del file Kubeconfig del cluster utente.

  3. Esegui il deployment dell'esempio nel cluster:

    kubectl apply -n demo -f online-boutique/release/ --kubeconfig=USER_CLUSTER_KUBECONFIG
    

Boutique online con risorse insufficienti

Esegui la pulizia

Elimina il tuo cluster utente eseguendo il comando seguente:

kubectl -n cluster-USER_CLUSTER_NAME \
  delete Cluster USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG

Passaggi successivi