Blame

b7d0e3 Cédric 2025-12-23 18:02:11 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
```