Guida rapida di installazione della modalità privata di Anthos

La modalità privata di Anthos è una versione di Anthos che può essere eseguita completamente isolata da Internet in un ambiente con air gap. Puoi utilizzare la modalità privata di Anthos 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 ti guida nell'installazione della modalità privata di Anthos come operatore di infrastruttura, responsabile del livello di infrastruttura come macchine bare metal, networking, archiviazione e sistema operativo. In questa guida rapida, imparerai a:

  • Installa e configura la modalità privata di Anthos 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.

La modalità privata di Anthos 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 deployment in modalità privata di Anthos.

Prima di iniziare

Assicurati di soddisfare i requisiti tecnici per la modalità privata di Anthos 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 alla modalità privata di Anthos

Google deve concederti l'accesso alle release in modalità privata di Anthos. 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.

Quando il tuo punto di contatto Google conferma che hai accesso alle release in modalità privata di Anthos, verifica di avere le autorizzazioni per scaricare le release in modalità privata di Anthos eseguendo questo comando:

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 ad accedere alle release in modalità privata di Anthos, contatta il tuo punto di contatto Google per ricevere assistenza.

Scarica la modalità privata di Anthos

In questa sezione scarichi la release della modalità privata di Anthos, contenuta in più file di diversi gigabyte ciascuno. A seconda della connessione a Internet, il download potrebbe richiedere molto tempo.

Scarica la modalità privata di Anthos

Nella workstation di amministrazione, esegui i comandi seguenti:

# Login with the account granted access to Anthos private mode
gcloud auth login

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

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.9/installing/infrastructure#download
export INSTALLER_DIGEST=ad410b7450e8ecaaa94821592dd0f49a1ade75e460e9ab18205c3b1364c6e910
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

Al termine del download in modalità privata di Anthos, 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

La modalità privata di Anthos funziona archiviando le immagini container di 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 è il tuo indirizzo IP del registry. Se vuoi installare e utilizzare il registro dei container in modalità privata di Anthos 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 il registro dei container in modalità privata di Anthos

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 Container Registry in modalità privata.

    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 in modalità privata di Anthos in Container Registry.

Prepara e carica le immagini container in modalità privata di Anthos 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 la modalità privata di Anthos provando l'applicazione di esempio di 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