Aller au contenu

Atelier n°10 : Configuration de kubectl pour l'accès à distance

Info

Il s'agit d'un fork de l'original "Kubernetes the hard way" écrit à l'origine par Kelsey Hightower (GitHub : kelseyhightower). Contrairement à l'original, qui se base sur des distributions de type Debian pour l'architecture ARM64, ce fork cible les distributions Enterprise Linux telles que Rocky Linux, qui fonctionne sur l'architecture x86_64.

Dans ce laboratoire, vous allez générer un fichier kubeconfig pour l'utilitaire de ligne de commande kubectl en fonction des informations d'identification de l'utilisateur admin.

Exécutez les commandes de cet atelier à partir de la machine jumpbox.

Le fichier de configuration Kubernetes de l'administrateur

Chaque kubeconfig nécessite un serveur API Kubernetes auquel se connecter.

Sur la base de l'entrée DNS /etc/hosts d'un laboratoire précédent, vous devriez pouvoir envoyer une requête ping àserver.kubernetes.local.

curl -k --cacert ca.crt \
  https://server.kubernetes.local:6443/version
{
  "major": "1",
  "minor": "32",
  "gitVersion": "v1.32.0",
  "gitCommit": "70d3cc986aa8221cd1dfb1121852688902d3bf53",
  "gitTreeState": "clean",
  "buildDate": "2024-12-11T17:59:15Z",
  "goVersion": "go1.23.3",
  "compiler": "gc",
  "platform": "linux/amd64"
}

Générez un fichier kubeconfig adapté à l'authentification en tant qu'utilisateur admin :

  kubectl config set-cluster kubernetes-the-hard-way \
    --certificate-authority=ca.crt \
    --embed-certs=true \
    --server=https://server.kubernetes.local:6443

  kubectl config set-credentials admin \
    --client-certificate=admin.crt \
    --client-key=admin.key

  kubectl config set-context kubernetes-the-hard-way \
    --cluster=kubernetes-the-hard-way \
    --user=admin

  kubectl config use-context kubernetes-the-hard-way

Les résultats de l'exécution de la commande ci-dessus devraient créer un fichier kubeconfig à l'emplacement par défaut ~/.kube/config utilisé par l'outil de ligne de commande kubectl. Cela signifie également que vous pouvez exécuter la commande kubectl sans spécifier de configuration.

Vérification

Vérifiez la version du groupe Kubernetes distant :

kubectl version
Client Version: v1.32.0
Kustomize Version: v5.5.0
Server Version: v1.32.0

Dressez la liste des nœuds du cluster Kubernetes distant :

kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
node-0   Ready    <none>   30m   v1.31.2
node-1   Ready    <none>   35m   v1.31.2

Suivant : Provisionnement des routes réseau des pods

Author: Wale Soyinka

Contributors: Steven Spencer