arrow_back

Configurer un cluster Kubernetes privé

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Configurer un cluster Kubernetes privé

Lab 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP178

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans Kubernetes Engine, un cluster privé empêche l'accès à votre instance maître depuis l'Internet public. Dans un cluster privé, les nœuds n'ont pas d'adresse IP publique, seulement une adresse privée. Vos charges de travail s'exécutent donc dans un environnement isolé. Les nœuds et les instances maîtres communiquent entre eux via l'appairage de VPC.

Dans l'API Kubernetes Engine, les plages d'adresses sont représentées sous forme de blocs CIDR (Classless Inter-Domain Routing).

Dans cet atelier, vous apprendrez à créer un cluster Kubernetes privé.

Objectifs de l'atelier

  • Créer un cluster Kubernetes privé

Prérequis

  • Les participants doivent maîtriser les procédures de création et de lancement de clusters Kubernetes. Ils doivent également bien savoir comment allouer une adresse IP grâce aux formats CIDR.

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Définir la région et la zone

  1. Définissez la région du projet pour cet atelier :
gcloud config set compute/zone {{{project_0.default_zone | "Zone"}}}
  1. Créez une variable pour la région :
export REGION={{{project_0.default_region | Region}}}
  1. Créez une variable pour la zone :
export ZONE={{{project_0.default_zone | Zone}}}

Pour en savoir plus, consultez la documentation sur les régions et les zones.

Remarque : Lorsque vous exécutez gcloud sur votre propre machine, les paramètres de configuration sont conservés d'une session à l'autre. En revanche, dans Cloud Shell, vous devez définir ces paramètres à chaque nouvelle session ou reconnexion.

Tâche 2 : Créer un cluster privé

  1. Lors de la création d'un cluster privé, vous devez indiquer une plage CIDR /28 pour les VM exécutant les composants maîtres Kubernetes et activer les alias d'adresse IP.

Vous créerez ensuite un cluster appelé private-cluster et indiquerez la plage CIDR 172.16.0.16/28 pour les maîtres. En activant les alias d'adresse IP, vous autorisez la création automatique d'un sous-réseau par Kubernetes Engine.

Les options --private-cluster, --master-ipv4-cidr et --enable-ip-alias vous serviront à créer le cluster privé.

  1. Exécutez la commande suivante pour créer le cluster :
gcloud beta container clusters create private-cluster \ --enable-private-nodes \ --master-ipv4-cidr 172.16.0.16/28 \ --enable-ip-alias \ --create-subnetwork ""

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si le cluster privé a correctement été créé, vous recevez une note d'évaluation.

Créer un cluster privé

Tâche 3 : Afficher le sous-réseau et les plages d'adresses secondaires

  1. Répertoriez les sous-réseaux du réseau par défaut :
gcloud compute networks subnets list --network default
  1. Dans les résultats, cherchez le nom du sous-réseau créé automatiquement pour votre cluster (exemple : gke-private-cluster-subnet-xxxxxxxx). Notez le nom du cluster, car il vous sera utile à l'étape suivante.

  2. À présent, exécutez la commande suivante pour obtenir des informations sur le sous-réseau créé automatiquement (remplacez [SUBNET_NAME] par votre sous-réseau) :

gcloud compute networks subnets describe [SUBNET_NAME] --region=$REGION

Vous obtenez la plage d'adresses principale, avec le nom du cluster privé GKE, et les plages secondaires :

... ipCidrRange: 10.0.0.0/22 kind: compute#subnetwork name: gke-private-cluster-subnet-163e3c97 ... privateIpGoogleAccess: true ... secondaryIpRanges: - ipCidrRange: 10.40.0.0/14 rangeName: gke-private-cluster-pods-163e3c97 - ipCidrRange: 10.0.16.0/20 rangeName: gke-private-cluster-services-163e3c97 ...

Dans les résultats, vous pouvez constater qu'il existe deux plages secondaires : une pour les pods et une autre pour les services.

Notez que privateIPGoogleAccess est défini sur true. Cela permet aux hôtes du cluster, qui possèdent uniquement une adresse IP privée, de communiquer avec les API et les services Google.

Tâche 4 : Activer des réseaux autorisés maîtres

À ce stade, seules les adresses IP des plages suivantes ont accès au maître :

  • La plage principale de votre sous-réseau, c'est-à-dire celle utilisée pour les nœuds
  • La plage secondaire de votre sous-réseau utilisée pour les pods

Pour étendre l'accès au maître, vous devez autoriser les plages d'adresses concernées.

Créer une instance de VM

  1. Créez une instance source qui servira à vérifier la connectivité aux clusters Kubernetes :
gcloud compute instances create source-instance --zone=$ZONE --scopes 'https://www.googleapis.com/auth/cloud-platform'

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à créer une instance de VM, vous recevez une note d'évaluation.

Créer une instance de VM
  1. Exécutez la commande suivante pour obtenir l'adresse IP externe (<External_IP>) de source-instance :
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP

Exemple de résultat :

natIP: 35.192.107.237
  1. Copiez l'adresse IP Nat (<nat_IP>) et notez-la, car vous en aurez besoin plus tard.

  2. Exécutez la commande suivante pour autoriser la plage d'adresses externes. Pensez à remplacer [MY_EXTERNAL_RANGE] par la plage CIDR des adresses externes renvoyées précédemment (natIP/32, en l'occurrence). Nous ajoutons à la liste d'autorisation une adresse IP spécifique pour la plage CIDR natIP/32 :

gcloud container clusters update private-cluster \ --enable-master-authorized-networks \ --master-authorized-networks [MY__EXTERNAL_RANGE] Remarque : Dans un environnement de production, remplacez [MY_EXTERNAL_RANGE] par la plage CIDR d'adresses externes de votre réseau.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à autoriser une plage d'adresses externes, vous recevez une note d'évaluation.

Autoriser votre plage d'adresses externes

Maintenant que vous avez accès au maître à partir d'une plage d'adresses externes, vous allez installer kubectl afin de pouvoir l'utiliser pour obtenir des informations sur votre cluster. Avec kubectl, vous pouvez par exemple vérifier que vos nœuds n'ont pas d'adresse IP externe.

  1. Exécutez la commande suivante pour vous connecter en SSH à source-instance :
gcloud compute ssh source-instance --zone=$ZONE
  1. Appuyez sur Y pour continuer, puis sur la touche Entrée pour accéder à la phrase secrète.

  2. Dans le shell SSH, installez le composant kubectl de Cloud SDK :

sudo apt-get install kubectl
  1. Exécutez la commande suivante pour configurer l'accès au cluster Kubernetes à partir du shell SSH :
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin gcloud container clusters get-credentials private-cluster --zone=$ZONE Remarque : Veuillez vous assurer que la zone attribuée a été exportée dans la variable ZONE.
  1. Vérifiez que les nœuds du cluster n'ont pas d'adresse IP externe :
kubectl get nodes --output yaml | grep -A4 addresses

Le résultat indique que les nœuds possèdent une adresse IP interne, mais pas d'adresse externe :

... addresses: - address: 10.0.0.4 type: InternalIP - address: "" type: ExternalIP ...
  1. Pour vérifier que les nœuds n'ont pas d'adresse IP externe, vous pouvez également utiliser la commande suivante :
kubectl get nodes --output wide

Une colonne vide est renvoyée pour EXTERNAL-IP :

STATUS ... VERSION EXTERNAL-IP OS-IMAGE ... Ready v1.8.7-gke.1 Container-Optimized OS from Google Ready v1.8.7-gke.1 Container-Optimized OS from Google Ready v1.8.7-gke.1 Container-Optimized OS from Google
  1. Fermez le shell SSH à l'aide de la commande suivante :
exit

Tâche 5 : Effectuer un nettoyage

  1. Supprimez le cluster Kubernetes :
gcloud container clusters delete private-cluster --zone=$ZONE
  1. Appuyez sur Y pour continuer.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à supprimer le cluster Kubernetes, vous recevez une note d'évaluation.

Supprimer le cluster Kubernetes

Tâche 6 : Créer un cluster privé qui utilise un sous-réseau personnalisé

Dans la section précédente, Kubernetes Engine a créé un sous-réseau de façon automatique. Dans cette section, vous allez créer un sous-réseau personnalisé, puis un cluster privé. Votre sous-réseau possède une plage d'adresses principale et deux plages d'adresses secondaires.

  1. Créez un sous-réseau et des plages secondaires :
gcloud compute networks subnets create my-subnet \ --network default \ --range 10.0.4.0/22 \ --enable-private-ip-google-access \ --region=$REGION \ --secondary-range my-svc-range=10.0.32.0/20,my-pod-range=10.4.0.0/14

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à créer un sous-réseau et des plages secondaires dans la région , vous recevez une note d'évaluation.

Créer un sous-réseau et des plages secondaires dans la région
  1. Créez un cluster privé qui utilise votre sous-réseau :
gcloud beta container clusters create private-cluster2 \ --enable-private-nodes \ --enable-ip-alias \ --master-ipv4-cidr 172.16.0.32/28 \ --subnetwork my-subnet \ --services-secondary-range-name my-svc-range \ --cluster-secondary-range-name my-pod-range \ --zone=$ZONE

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à créer un cluster privé qui utilise votre sous-réseau, vous recevez une note d'évaluation.

Créer un cluster privé qui utilise votre sous-réseau
  1. Récupérez la plage d'adresses externes de l'instance source :
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP

Exemple de résultat :

natIP: 35.222.210.67
  1. Copiez l'adresse IP Nat (<nat_IP>) et notez-la, car vous en aurez besoin plus tard.

  2. Exécutez la commande suivante pour autoriser la plage d'adresses externes. Pensez à remplacer [MY_EXTERNAL_RANGE] par la plage CIDR des adresses externes renvoyées précédemment (natIP/32, en l'occurrence). Nous ajoutons à la liste d'autorisation une adresse IP spécifique pour la plage CIDR natIP/32 :

gcloud container clusters update private-cluster2 \ --enable-master-authorized-networks \ --zone=$ZONE \ --master-authorized-networks [MY_EXTERNAL_RANGE]

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à autoriser votre plage d'adresses externes pour un cluster privé dans un sous-réseau personnalisé, vous recevez une note d'évaluation.

Autoriser votre plage d'adresses externes pour un cluster privé dans un sous-réseau personnalisé
  1. Exécutez la commande suivante pour vous connecter en SSH à source-instance :
gcloud compute ssh source-instance --zone=$ZONE
  1. Exécutez la commande suivante pour configurer l'accès au cluster Kubernetes à partir du shell SSH :
gcloud container clusters get-credentials private-cluster2 --zone=$ZONE Remarque : Veuillez vous assurer que la zone attribuée a été exportée dans la variable ZONE.
  1. Vérifiez que les nœuds du cluster n'ont pas d'adresse IP externe :
kubectl get nodes --output yaml | grep -A4 addresses

Le résultat indique que les nœuds possèdent une adresse IP interne, mais pas d'adresse externe :

... addresses: - address: 10.0.4.3 type: InternalIP ...

À ce stade, seules les adresses IP des plages suivantes ont accès au maître :

  • La plage principale de votre sous-réseau, c'est-à-dire celle utilisée pour les nœuds (ici, 10.0.4.0/22)
  • La plage secondaire de votre sous-réseau utilisée pour les pods (ici, 10.4.0.0/14)

Félicitations !

Vous avez terminé cet atelier pratique et savez désormais créer un cluster Kubernetes privé.

Terminer votre quête

Cet atelier d'auto-formation fait partie de la quête Security & Identity Fundamentals. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez cette quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à cette quête ou à une autre quête contenant cet atelier pour obtenir immédiatement les crédits associés. Consultez le catalogue pour découvrir toutes les quêtes disponibles.

Atelier suivant

Continuez sur votre lancée avec l'atelier Sécuriser Google Cloud avec CFT Scorecard ou découvrez les ateliers suivants :

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 20 septembre 2023

Dernier test de l'atelier : 20 septembre 2023

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.