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`