{{tag>Brouillon K8S}}
= Notes Kubernetes k8s - Outils
Voir :
* https://wiki.sfeir.com/kubernetes/outils/k3s/
* https://blog.stephane-robert.info/docs/conteneurs/orchestrateurs/outils/kubectl-plugins/
Voir aussi :
* 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:
== Krew
Krew is the plugin manager for kubectl command-line tool.
asdf plugin add krew
asdf install krew latest
asdf set --home krew latest
== 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
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
Voir [[https://www.youtube.com/watch?v=21onkZfL2yM|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
''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
https://github.com/utkuozdemir/pv-migrate?
=== 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