Skip to main content

Préparation de l'environnement de gestion de Kubernetes

Pour manager efficacement et rapidement son/ses cluster Kubernetes, quelques outils peuvent être mis en place.

Je travaille sur MacOS, donc mes instructions seront sur cet environnement-là.

Autocomplétion

Pour installer l'autocomplétion, nous allons utiliser "Homebrew”.

brew install bash-completion@2

Une fois l'installation terminée, alors l'autocomplétion devrait fonctionner immédiatement. Vous pouvez donc faire un kubectl puis tab pour compléter la commande.

Alias

Les alias vont permettre de faire des raccourcis pour les commandes Kubernetes. Ils sont complètement personnalisables, je vais en mettre quelques-uns que j'utilise régulièrement. Ces alias vont se mettre dans votre .zshrc / .bashrc sous cette forme :

alias k='kubectl'
alias kgn='kubectl get nodes'
alias kgp='kubectl get pods'
alias kgs='kubectl get svc'
alias kga='kubectl get all'
alias kap='kubectl apply -f'
alias kg='kubectl get'
alias kn='kubens'

Kubens / Kubectx

Ces deux outils sont très intéressants car ils ont deux usages très intéressants. Pour installer les deux outils : brew install kubectx

Kubens

Kubens est dans mon cas le plus utile. Il permet de naviguer dans les différents namespaces de votre cluster Kubernetes. Cela évite à chaque utilisation de kubectl de spécifier le -n mais à la manière d'un cd de venir se placer dans le namespace.

Pour son utilisation, je vais vous donner quelques commandes utiles et classiques pour l'utilisation de ces outils.

kubens <namespace> Cette commande permet de se déplacer de namespace.

kubens - permet de revenir au namespace par défaut.

Vous pouvez également ajouter des alias pour cet outil. En général, l'alias kn est utilisé.

Kubectx

Kubectx est très utile pour les administrateurs de cluster Kubernetes car il permet de switcher de contexte. En effet, dans le cas où vous avez une configuration multi-cluster, alors vous pouvez modifier grâce à la commande kubectx.

Pour son utilisation, je vais vous donner quelques commandes utiles et classiques pour l'utilisation de cet outil.

kubectx <contexte> permet de changer de contexte.

kubectx - permet de revenir au contexte par défaut.

Vous pouvez également ajouter des alias pour cet outil. En général, l'alias kx est utilisé.

Agent SSH

Afin de simplifier les connexion ssh au hote du cluster notamment pour l'utilisation de ansible il est possible de configurer efficacement son client ssh.

On va commencer par ajouter les hote au /etc/hosts par exemple :

# Cluster k8s #
192.168.20.238      k8s-lb1
192.168.20.239      k8s-lb2
192.168.20.240      k8s-m1
192.168.20.241      k8s-m2
192.168.20.242      k8s-m3
192.168.20.243      k8s-w1
192.168.20.244      k8s-w2
192.168.20.245      k8s-w3

de cette manière ont peut retenir les nom au lieu des adresses ip des autres.

Ensuite nous allons configurer l'agent SSH pour qu'il soit permanent ce qui va nous permettre de simplifier la connexion. Pour ce faire nous allons installer keychain sur le mac : brew install keychain

Une fois installé nous allons crée un agent et charger la clé privée et saisir son mot de passe:

ssh-add --apple-use-keychain ~/.ssh/id_ecdsa

Une fois cela fait nous allons modifier ou crée le fichier ssh config : nano ~/.ssh/config

Puis nous ajoutons le contenu suivant en l'adaptant a la configuration :

Host *
  User kube
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_ecdsa

Et enfin nous ajoutons une ligne a la fin du fichier .zshrc :

echo "ssh-add --apple-load-keychain -q" >> ~.zshrc

Script de configuration

brew install bash-completion@2
echo "alias k='kubectl'" >> $HOME/.zshrc
echo "alias kgn='kubectl get nodes'" >> $HOME/.zshrc
echo "alias kgp='kubectl get pods'" >> $HOME/.zshrc
echo "alias kgs='kubectl get svc'" >> $HOME/.zshrc
echo "alias kga='kubectl get all'" >> $HOME/.zshrc
echo "alias kg='kubectl get'" >> $HOME/.zshrc
echo "alias kn='kubens'" >> $HOME/.zshrc
brew install kubectx`