{{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