Notes Kubernetes k8s - Outils

Voir aussi :

https://wiki.sfeir.com/kubernetes/outils/k3s/

Octant / Lens

Arkade

Gestionnaire de paquets pour installer des outils K8S

https://github.com/alexellis/arkade

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:

Kubetail

https://github.com/johanhaleby/kubetail

kubectx / kubens

Voir :

kubectl config

Permet de changer le contexte courant et le namespace courant

Voir :

https://wiki.sfeir.com/kubernetes/outils/kubectx/

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

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

Voir Vidéo Docker vs Containerd: Understanding the Differences and Choosing the Right Containerization Tool

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

Voir :

https://github.com/kubernetes/dashboard

https://komodor.com/learn/kubernetes-dashboard/

Installation

helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

vim 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

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