Blame
|
1 | #### Divers kubectl : |
||||||
| 2 | ```shell |
|||||||
| 3 | kubectl get pods |
|||||||
| 4 | kubectl --namespace kube-system get pods |
|||||||
| 5 | kubectl get all (dans le namespace par défaut) |
|||||||
| 6 | kubectl get pod --all-namespaces |
|||||||
| 7 | ||||||||
| 8 | kubectl config set-context --current --namespace default |
|||||||
| 9 | kubectl get services --all-namespaces |
|||||||
| 10 | ``` |
|||||||
| 11 | ||||||||
| 12 | #### Récuperer toutes les api dispos sur kubectl : |
|||||||
| 13 | ```shell |
|||||||
| 14 | kubectl api-resources |
|||||||
| 15 | ``` |
|||||||
| 16 | ||||||||
| 17 | #### Créer un token sur un user : |
|||||||
| 18 | ```shell |
|||||||
| 19 | kubectl -n kubernetes-namespace create token user |
|||||||
| 20 | ``` |
|||||||
| 21 | #### Se connecter sur un pod : |
|||||||
| 22 | ```shell |
|||||||
| 23 | kubectl exec --stdin --tty <pod> -- /bin/bash (par exemple) |
|||||||
| 24 | ``` |
|||||||
| 25 | #### Obtenir des logs sur un pod |
|||||||
| 26 | ```shell |
|||||||
| 27 | kubectl logs mariadb-deployment-d7897d899-kv4z9 |
|||||||
| 28 | ``` |
|||||||
| 29 | #### Passer des commandes sur le cluster en démarrant une image debian ephémère : |
|||||||
| 30 | ```shell |
|||||||
| 31 | kubectl run debianpod -i --tty --image debian:bullseye --restart=Never -- bash |
|||||||
| 32 | ``` |
|||||||
| 33 | #### Par exemple utilisation client mysql sur une debian éphémère : |
|||||||
| 34 | ``` shell |
|||||||
| 35 | apt install mariadb-client |
|||||||
| 36 | mysql -uradmin -pXXXXXX -hmariadb.mariadb.svc.cluster.local |
|||||||
| 37 | ``` |
|||||||
| 38 | ### Créer un secret "from-literal" : |
|||||||
| 39 | ```shell |
|||||||
| 40 | kubectl create secret generic my-test-secret --from-literal=rootpassword=alphabeta |
|||||||
| 41 | ``` |
|||||||
| 42 | #### Le Supprimer : |
|||||||
| 43 | ```shell |
|||||||
| 44 | kubectl delete secret my-test-secret |
|||||||
| 45 | ``` |
|||||||
| 46 | #### Ensuite pour le récupérer : |
|||||||
| 47 | ```shell |
|||||||
| 48 | kubectl get secret my-test-secret -o go-template='{{.data}}' |
|||||||
| 49 | map[rootpassword:YWxwaGFiZXRh] |
|||||||
| 50 | ||||||||
| 51 | echo "YWxwaGFiZXRh" | base64 -d |
|||||||
| 52 | alphabeta |
|||||||
| 53 | ``` |
|||||||
| 54 | ||||||||
| 55 | ### Visualiser les labels des nodes |
|||||||
| 56 | ```shell |
|||||||
| 57 | kubectl get nodes --show-labels |
|||||||
| 58 | ``` |
|||||||
| 59 | ... le seter : |
|||||||
| 60 | ```shell |
|||||||
| 61 | kubectl label nodes <your-node-name> label=value |
|||||||
| 62 | ``` |
|||||||
| 63 | ||||||||
| 64 | ### Affecter un label à quelque chose (des pods par exemple) |
|||||||
| 65 | ```yaml |
|||||||
| 66 | spec: |
|||||||
| 67 | nodeSelector: |
|||||||
| 68 | label: value |
|||||||
| 69 | ``` |
|||||||
| 70 | ||||||||
| 71 | ### Exsemple de Security Context |
|||||||
| 72 | ```shell |
|||||||
| 73 | image: toto:version |
|||||||
| 74 | volumesMount: |
|||||||
| 75 | (...) |
|||||||
| 76 | securityContext: |
|||||||
| 77 | privileged: true |
|||||||
| 78 | ``` |
|||||||
| 79 | ||||||||
| 80 | ### Affinité sur un Node particulier (exemple alice) |
|||||||
| 81 | ```shell |
|||||||
| 82 | kubectl label nodes alice clefnode=primary (par exemple) |
|||||||
| 83 | kubectl get node alice --show-labels |
|||||||
| 84 | ``` |
|||||||
| 85 | ... et ensuite |
|||||||
| 86 | ```yaml |
|||||||
| 87 | affinity: |
|||||||
| 88 | nodeAffinity: |
|||||||
| 89 | requiredDuringSchedulingIgnoredDuringExecution: |
|||||||
| 90 | # preferred marche aussi, autant coté nodeAffinity que sur podAffinity |
|||||||
| 91 | nodeSelectorTerms: |
|||||||
| 92 | - matchExpressions: |
|||||||
| 93 | - key: clefnode |
|||||||
| 94 | operator: In |
|||||||
| 95 | values: |
|||||||
| 96 | - primary |
|||||||
| 97 | # options possibles sur le pod avec labelSelector |
|||||||
| 98 | # - labelSelector |
|||||||
| 99 | # matchLabels: |
|||||||
| 100 | # app: backend (par exemple) |
|||||||
| 101 | # topologyKey : "kubernetes.io/hostname" (forcer sur les pods sur le même serveur) |
|||||||
| 102 | ``` |
|||||||
| 103 | #### Avoir des explications sur une spec |
|||||||
| 104 | ```shell |
|||||||
| 105 | kubectl explain pod.spec.affinity.nodeAffinity (par exemple) |
|||||||
| 106 | ``` |
|||||||
| 107 | #### Forcer la suppression de pv/pvc : |
|||||||
| 108 | ```shell |
|||||||
| 109 | kubectl patch pv <pv_name> -p '{"metadata":{"finalizers":null}}' |
|||||||
| 110 | kubectl delete pv <pv_name> --grace-period=0 --force |
|||||||
| 111 | ||||||||
| 112 | PVC_NAME="<pvc-name>"; kubectl get pods,deployments,statefulsets,daemonsets,replicasets,jobs,cronjobs --all-namespaces -o json | jq --arg PVC "$PVC_NAME" '.items[] | select(.spec.template.spec.volumes[]?.persistentVolumeClaim.claimName == $PVC) | .metadata.namespace + "/" + .metadata.name + " (" + .kind + ")"' |
|||||||
| 113 | ``` |
|||||||
