Guide d'installation d'Anthos en mode déconnecté

Anthos en mode déconnecté est une version d'Anthos qui peut s'exécuter dans un environnement isolé totalement coupé d'Internet. Vous pouvez utiliser Anthos en mode déconnecté pour exécuter des charges de travail hautement réglementées sur site tout en bénéficiant de nombreux avantages d'une infrastructure conçue pour le cloud.

Champ d'application du guide de démarrage rapide d'Anthos en mode privé

Ce guide de démarrage rapide vous guide tout au long du processus d'installation d'Anthos en mode déconnecté en tant qu'opérateur d'infrastructure en charge de la couche d'infrastructure (les machines Bare Metal, la mise en réseau, le stockage et le système d'exploitation). Dans ce guide de démarrage rapide, vous allez apprendre à effectuer les actions suivantes :

  • Installez et configurez Anthos en mode déconnecté en utilisant l'approche d'installation minimale.
  • Déployer un cluster d'administrateur
  • Créer un cluster d'utilisateur et déployez une application sur celui-ci

Anthos en mode déconnecté présente deux types de clusters :

  • Les clusters d'administrateur permettent de créer et de gérer des clusters d'utilisateur.
  • Les clusters d'utilisateur exécutent vos charges de travail.

Vous disposez également d'un poste de travail administrateur, qui est une machine unique contenant les outils nécessaires pour installer et gérer votre déploiement d'Anthos en mode déconnecté.

Avant de commencer

Assurez-vous de répondre aux exigences techniques d'Anthos en mode déconnecté et d'au moins cinq machines prêtes à être utilisées. Une expérience préalable de Kubernetes et de gestion du système est nécessaire pour ce guide de démarrage rapide.

Préparer l'environnement

Accéder à Anthos en mode déconnecté

Google doit vous autoriser à accéder aux versions d'Anthos en mode déconnecté. Fournissez à votre contact Google une adresse e-mail pour chaque testeur afin que nous puissions leur accorder l'accès au dépôt de téléchargement. Ces adresses e-mail doivent être des comptes Google.

Lorsque votre point de contact Google confirme que vous avez accès aux versions d'Anthos en mode déconnecté, vérifiez que vous disposez des autorisations nécessaires pour télécharger les versions d'Anthos en mode déconnecté en exécutant la commande suivante :

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

Si vous rencontrez une erreur, vérifiez que gsutil utilise le même compte Google que celui que vous avez indiqué au point de contact Google en exécutant la commande gcloud auth list.

Vous pouvez également accéder à la dernière version du bucket pour vérifier que vous disposez des autorisations appropriées. Vous devez être connecté avec le compte Google que vous avez fourni précédemment.

Si vous rencontrez des problèmes pour accéder aux versions d'Anthos en mode déconnecté, contactez votre point de contact Google pour obtenir de l'aide.

Télécharger Anthos en mode déconnecté

Dans cette section, vous téléchargez une version d'Anthos en mode déconnecté contenue dans plusieurs fichiers pesant chacun plusieurs gigaoctets. Selon votre connexion Internet, le téléchargement peut prendre un certain temps.

Télécharger Anthos en mode déconnecté

Sur votre poste de travail administrateur, exécutez les commandes suivantes :

# 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

Installer les dépendances restantes

Une fois le téléchargement d'Anthos en mode déconnecté terminé, exécutez les commandes suivantes :

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"

Vous n'aurez plus besoin d'une connexion Internet avant de déployer l'application de démonstration.

Configurer le registre de conteneurs local

Le mode déconnecté d'Anthos fonctionne en stockant les images de conteneurs Anthos dans un registre de conteneurs local.

Exportez les variables d'environnement suivantes :

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

Remplacez l'élément suivant :

  • REGISTRY_HOST est l'adresse IP de votre registre. Si vous souhaitez installer et utiliser le registre de conteneurs d'Anthos en mode déconnecté sur le poste de travail administrateur, utilisez ici l'adresse IP de votre poste de travail administrateur.

  • REGISTRY_PASSWORD est la valeur que vous avez définie pour le mot de passe du registre.

Configurer le registre de conteneurs d'Anthos en mode déconnecté

Dans cette section, vous allez configurer un registre de conteneurs privé sur le poste de travail administrateur. Exécutez toutes les commandes ci-dessous à partir du poste de travail administrateur.

  1. Si vous ne disposez pas de votre propre registre de conteneurs privé, installez le registre de conteneurs d'Anthos en mode déconnecté.

    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. Connectez-vous au registre pour vérifier que vous y avez accès. Si vous recevez une erreur, vous devrez peut-être attendre quelques secondes.

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

Le registre de conteneurs est disponible à l'adresse https://REGISTRY_HOST/ après le démarrage du service. Les identifiants de connexion sont le nom d'utilisateur admin et le mot de passe REGISTRY_PASSWORD.

Importer des images dans le registre de conteneurs

Dans cette section, vous allez importer dans votre registre de conteneurs les images du conteneur d'Anthos en mode déconnecté.

Préparez et importez les images du conteneur d'Anthos en mode déconnecté dans votre registre de conteneurs. Si vous y êtes invité, choisissez l'option Use that credential ou saisissez les nouveaux identifiants.

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

Remarque : Si vous utilisez un proxy HTTP sur votre poste de travail, vous devrez peut-être désactiver les variables d'environnement suivantes pour que la commande actl images push fonctionne :

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

Installer Management Center

Dans cette section, vous allez installer un cluster d'administrateur Anthos sur des machines Bare Metal, puis installer le centre de gestion d'Anthos sur le cluster d'administrateur.

Préparer la configuration du cluster d'administrateur

Mettez à jour le fichier ./actl-workspace/admin/admin.yaml avec des paramètres correspondant à votre environnement.

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

Remplissez les champs suivants :

  • La clé sshPrivateKeyPath est la clé utilisée lors de l'installation pour accéder aux autres nœuds faisant partie du cluster. Il s'agit de l'homologue privé de la clé publique que vous avez distribuée aux nœuds dans les conditions préalables.

  • registryMirrors identifie l'emplacement du miroir des registres dans lesquels les images Docker sont stockées.

    • registryMirrors.endpoint est le point de terminaison du miroir. Le format du point de terminaison est URL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX . Par exemple, si vous avez créé le registre sur le poste de travail, définissez le point de terminaison sur https://REGISTRY_HOST/v2/library. Notez que l'élément /v2/ compris entre REGISTRY_HOST et IMAGE_PREFIX est nécessaire.

    • registryMirrors.pullCredentialConfigPath est le chemin d'accès aux identifiants. Ce type de paramètre se présente généralement sous la forme /home/USER/.docker/config.json.

    • registryMirrors.caCertPath est l'emplacement de l'autorité de certification que le registre utilisera pour chiffrer le trafic. Ce certificat est distribué aux nœuds pendant le processus d'installation pour leur permettre d'extraire des images du registre. Le chemin d'accès est généralement /etc/docker/certs.d/REGISTRY_HOST/ca.crt.

  • La spécification controlPlane définit les nœuds qui font partie du plan de contrôle.

    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 spécification loadBalancer définit le type d'équilibreur de charge utilisé. La configuration par défaut installe un équilibreur de charge sur le cluster en cours d'exécution. Dans ce cas, vous devez au moins définir le paramètre controlPlaneVIP pour identifier un pool d'adresse IP virtuelle (IPV) afin d'exposer le serveur d'API Kubernetes et l'adresse e-mail addressPools pour affecter les adresses IP virtuelles à la demande aux services qui en font la requête. Exemple :

    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
    
  • La dernière section de la spécification de cluster spécifie loginUser. Cette connexion doit avoir accès à la clé SSH spécifiée ci-dessous et correspond à l'utilisateur pour lequel la clé a été distribuée dans les conditions préalables.

    nodeAccess:
      loginUser: LOGIN_USERNAME
    

    Remplacez LOGIN_USERNAME par le nom d'utilisateur utilisé pour vous connecter au cluster d'utilisateur.

  • La spécification nodePool identifie les nœuds qui hébergeront la console du centre de gestion, Prometheus, Grafana et d'autres services sur le cluster d'administrateur. Ces nœuds sont les nœuds de calcul du cluster d'administrateur. Exemple :

    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
    

Créez le cluster d'administrateur :

Exécutez la commande suivante pour créer le cluster d'administrateur. Cela prend environ 30 minutes.

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

Une fois le cluster d'administrateur créé, vérifiez que vous y avez accès.

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

Installer Management Center

  1. Installez le centre de gestion sur le cluster d'administrateur avec la configuration par défaut.

    cd ~/anthos-baremetal-private-mode
    actl platform management-center create
    
  2. Accédez au centre de gestion d'Anthos dans votre navigateur.

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

L'URL du centre de gestion d'Anthos est renvoyée.

Enregistrer des ressources

Enregistrer des machines inventoriées

Pour créer un cluster d'utilisateur, Anthos nécessite un pool de machines inactives disponibles. Dans cette section, vous allez enregistrer des machines inventoriées dans le cluster d'administrateur Anthos pour les rendre disponibles.

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

Exemple :

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

Remplacez les éléments suivants :

  • IP_ADDRESS : adresse IP de la machine, par exemple 10.200.0.10.
  • KEY :VALUE : paire clé/valeur, par exemple "rack": "r1020" pour indiquer un emplacement de rack.

Les labels sont des paires clé/valeur au format libre associées à la ressource. Vous pourrez les utiliser ultérieurement dans le centre de gestion pour filtrer les machines. Par exemple, vous pouvez utiliser les libellés pour identifier l'emplacement du rack ou les configurations matérielles spéciales.

Créer des clusters d'utilisateur

Sur la page Clusters du centre de gestion, cliquez sur Créer pour créer un cluster d'utilisateur Anthos. Une fois le cluster créé, il est automatiquement enregistré dans le centre de gestion et s'affiche immédiatement dans le tableau de bord du cluster.

Créer un cluster

L'installation et la préparation peuvent prendre jusqu'à 15 minutes. En attendant, vous pouvez vérifier l'état du cluster d'utilisateur à l'aide de la commande suivante :

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

Remplacez USER_CLUSTER_NAME par le nom du cluster que vous avez créé.

Une fois que l'état passe sur "prêt", le cluster est créé avec succès et enregistré dans le cluster d'administrateur.

Obtenir l'accès au cluster d'utilisateur

Une fois le cluster d'utilisateur créé, vous pouvez télécharger kubeconfig via le centre de gestion.

Déployer une application de démonstration

Vous pouvez explorer Anthos en mode déconnecté en testant l'exemple d'application Boutique en ligne.

Télécharger l'image

Les étapes de cette section nécessitent une connexion Internet.

  1. Téléchargez l'exemple de dépôt :

    git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
    
  2. Téléchargez les images :

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

Déployer l'échantillon

  1. Transférez les images vers le registre privé :

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

    Remplacez PRIVATE_REGISTRY par le nom de votre registre privé.

  2. Créez un espace de noms pour l'application.

    kubectl create namespace demo --kubeconfig=USER_CLUSTER_KUBECONFIG
    

    Remplacez USER_CLUSTER_KUBECONFIG par le chemin d'accès au fichier Kubeconfig du cluster d'utilisateur.

  3. Déployez l'exemple sur le cluster :

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

Boutique en ligne avec des ressources insuffisantes

Effectuer un nettoyage

Supprimez votre cluster d'utilisateur en exécutant la commande suivante :

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

Étapes suivantes