Guida rapida di Anthos in esecuzione 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 della guida rapida alla modalità privata di Anthos

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

  • Installa e configura 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 amministratore vengono utilizzati per creare e gestire i cluster utente.
  • I cluster utente 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 all'uso. Per questa guida rapida è necessaria l'esperienza di Kubernetes e di 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 l'accesso al repository di download. Questi indirizzi email devono essere Account Google.

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

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

Se ricevi un messaggio di errore, verifica che gsutil utilizzi lo stesso Account Google che hai fornito al 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 che hai fornito in precedenza.

Se hai 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, contenuto in più file di diversi gigabyte ciascuno. A seconda della connessione a Internet, il download potrebbe richiedere molto tempo.

Scarica Anthos in esecuzione in modalità disconnessa

Nella workstation di amministrazione, esegui i comandi seguenti:

# 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.12.0-gke.0

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.11/installing/infrastructure#download
export INSTALLER_DIGEST=53275103489dd7569a321da5f70d78cad00a9e3b6a550202200ede37d51d4d3e
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 ti servirà più una connessione a Internet finché non esegui il deployment dell'app demo.

Configurare Container Registry locale

Anthos in esecuzione in modalità disconnessa funziona archiviando le immagini container Anthos in un registro di container 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 è il tuo indirizzo IP del registry. Se vuoi installare e utilizzare Anthos in esecuzione in Container Registry in modalità disconnessa sulla workstation di amministrazione, utilizza qui l'indirizzo IP della workstation di amministrazione.

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

Configurare Anthos in esecuzione in Container Registry 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 disponi di un proprio 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 accesso. Se ricevi un errore, potrebbe essere necessario attendere alcuni secondi.

    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 le immagini in Container Registry

In questa sezione caricherai le immagini container Anthos in esecuzione in modalità disconnessa nel tuo Registry Registry.

Prepara e carica le immagini container Anthos in esecuzione in modalità disconnessa nel tuo registro 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 far funzionare il comando actl images push:

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

Centro di installazione per l'installazione

In questa sezione installerai un cluster di amministrazione Anthos su macchine Bare Metal, quindi installerai Anthos Management Center sopra il cluster di amministrazione.

Prepara la configurazione del cluster di amministrazione

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

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

Compila i seguenti campi:

  • 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 in cui sono archiviate le immagini Docker.

    • registryMirrors.endpoint è il punto finale dello specchio. Il formato dell'endpoint è URL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX . Ad esempio, se hai creato il registro sulla workstation, imposta l'endpoint su https://REGISTRY_HOST/v2/library. Tieni presente che è obbligatorio l'intervallo /v2/ compreso tra REGISTRY_HOST e IMAGE_PREFIX.

    • registryMirrors.pullCredentialConfigPath è il percorso delle credenziali. In genere è simile a /home/USER/.docker/config.json.

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

  • Le specifiche controlPlane definiscono 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
    
  • Le specifiche loadBalancer definiscono il tipo di bilanciatore del carico utilizzato. La configurazione predefinita installa un bilanciatore del carico nel cluster in esecuzione. In questo caso, come minimo, devi impostare controlPlaneVIP per identificare 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 loginUser. Questo accesso deve avere accesso alla chiave SSH specificata di seguito ed è l'utente per il quale la chiave è stata distribuita nei Prerequisiti.

    nodeAccess:
      loginUser: LOGIN_USERNAME
    

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

  • Le specifiche nodePool identificano i nodi che ospitano la console del Centro di 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. Ci vogliono 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

Centro di installazione per l'installazione

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

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

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

Viene restituito l'URL di Anthos Management Center.

Registrazione delle risorse

Registra macchine dell'inventario

Per creare un cluster utente, Anthos ha bisogno di un pool di macchine inattive. In questa sezione registri le macchine dell'inventario nel 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. che possono essere utilizzate in un secondo momento nel Centro gestione per filtrare le macchine. Ad esempio, puoi utilizzare le etichette per identificare la posizione del rack o configurazioni di hardware speciali.

Creazione di cluster utente

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

Crea un cluster

L'installazione e l'installazione potrebbero richiedere fino a 15 minuti. Nell'attesa, 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.

Accedere al cluster utente

Una volta 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 dell'esempio

  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 cluster utente eseguendo il comando seguente:

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

Passaggi successivi