Ceci est une ancienne révision du document !
Table des matières
Notes Kubernetes k8s - Outils
Voir :
Voir aussi :
- Octant / Lens
Arkade
Gestionnaire de paquets pour installer des outils K8S
kubectl
Afin d’interagir avec Kubernetes, kubectl - la CLI permettant d'exécuter des commandes sur un cluster - est nécessaire.
En outre, pour peu qu'on ait à interagir avec plusieurs clusters, avec différents crédentials, dans plusieurs namespaces, il devient difficile de jongler de l'un à l'autre. Afin de faciliter cela, des programmes existent:
Krew
Krew is the plugin manager for kubectl command-line tool.
Kubetail
kubectx / kubens
Voir :
kubectl config
Permet de changer le contexte courant et le namespace courant
Voir :
apt install kubectx
Migrating to Kubectx and Kubens From KUBECONFIG
# Reference all your config files so Kubectl load them all $ export KUBECONFIG=~/.kube/cluster-1:~/.kube/cluster-2:~/.kube/cluster-3 # Save a merged version of the current config to a new file $ kubectl config view --flatten > ~/.kube/.config
kube-ps1
Permet d'afficher au prompt les contexte et namespace courants
Helm
Templating & package manager
Helm est un package manager pour kubernetes, permettant de déployer facilement des composants sous forme de “Charts”.
Install
sudo snap install helm --classic
Dépôts Bitnami :
https://github.com/bitnami/charts/tree/main/bitnami
Exemple avec OpenEBS
helm repo add openebs https://openebs.github.io/charts helm repo update helm search repo openebs helm show values openebs/openebs > value-openebs.yml kubectl create ns openebs helm install openebs openebs/openebs -f value-openebs.yml -n openvbs helm upgrade openebs openebs/openebs --namespace openvbs --set legacy.enable=true --reuse-vakues
k9s
snap install k9s --devmode ln -s /snap/k9s/current/bin/k9s /usr/local/bin/
popeye
stern
nerdctl
Équivalent de la commande docker / podman / crictl / ctr mais pour ContainerD
LinkerD
(Conçurent de Istio)
Istio
(Conçurent de LinkerD)
Kubectl (kubernetes-client)
Install de kubectl
sudo apt-get install kubernetes-client
ou
VERSION=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) curl -LO https://storage.googleapis.com/kubernetes-release/release/$VERSION/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl
Config
mkdir $HOME/.config/ kubectl completion bash >> $HOME/.config/bash_completion
Conf
${HOME}/.kube/config
ou $KUBECONFIG
~/.bashrc
alias k=kubectl complete -F __start_kubectl k alias kall="kubectl api-resources --namespaced=true -o name | xargs -i kubectl get {} -o name" alias kapp="kubectl apply -f" alias kdel="kubectl delete -f" alias ksys="kubectl -n kube-system" kshow() { kubectl get "$@" -o yaml | vim -c "set ft=yaml" -c "g/^ managedFields:/;/^ name/-1d" -c "noh" - } alias kports='kubectl get pods -o custom-columns="POD:.metadata.name,PORTS:.spec.containers[*].ports[*].containerPort"' alias kcc='kubectl config current-context' alias kg='kubectl get' alias kga='kubectl get all --all-namespaces' alias kgp='kubectl get pods' alias kgs='kubectl get services'
Dashboard
Installation
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
dashboard-admin.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard
kubectl apply -f dashboard-admin.yaml
Accès
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
# kubectl -n NAMESPACE create token SERVICE_ACCOUNT kubectl -n kubernetes-dashboard create token admin-user
Source : https://upcloud.com/resources/tutorials/deploy-kubernetes-dashboard
Pour avoir les graphiques il faut installer Metrics-server
Stockage
Old
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml #kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
# kubectl proxy Starting to serve on 127.0.0.1:8001
Notes WebUI Rancher
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
