Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:kubernetes:know-how

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
it-wiki:kubernetes:know-how [2022/11/03 09:19] – [Know-How] markoit-wiki:kubernetes:know-how [2025/04/29 06:32] (aktuell) – [kubectl debug] marko
Zeile 1: Zeile 1:
 ====== Know-How ====== ====== Know-How ======
 +===== kubectl Plugins =====
 +https://krew.sigs.k8s.io/plugins/
 +==== Plugin "neat" - Beispiele ====
 +<code bash>
 +kubectl get deployment <deploymentname> -n <namespace> -o yaml | kubectl neat -f - > deployment.yaml
 +</code>
 +
 +\\
 +
 ===== Private Registry/Repository ===== ===== Private Registry/Repository =====
 ==== Abfrage Registry Katalog ==== ==== Abfrage Registry Katalog ====
 <code bash> <code bash>
-curl -k https://192.168.42.30/v2/_catalog+curl -k https://registry.tuxnet.lan/v2/_catalog
 </code> </code>
  
 Oder mit dem schöneren Tool **reg** Oder mit dem schöneren Tool **reg**
 <code bash> <code bash>
-reg ls -k 192.168.42.30+reg ls -k registry.tuxnet.lan
 </code> </code>
-\\+ 
 +Docker Images in die private registry kopieren 
 +<code bash> 
 +skopeo copy docker://k8s.gcr.io/metrics-server/metrics-server:v0.5.0 docker://registry.tuxnet.lan/metrics-server/metrics-server:v0.5.0 
 +</code> 
 ==== Befüllen der privaten Registry ==== ==== Befüllen der privaten Registry ====
 <code bash> <code bash>
-oci-local -u -r 192.168.42.30+oci-local -u -r registry.tuxnet.lan
 </code> </code>
-\\+
 ==== Löschen von Registry Einträgen/Images mittels crane ==== ==== Löschen von Registry Einträgen/Images mittels crane ====
 <code bash> <code bash>
-crane delete "registry.tuxnet.lan:32568/bitnami/postgresql@$(crane digest registry.tuxnet.lan:32568/bitnami/postgresql:14.4.0-debian-11-r13)"+crane delete "registry.tuxnet.lan/iot/fhem@$(crane digest registry.tuxnet.lan/iot/fhem:3.3.0)"
 </code> </code>
 +
 \\ \\
 ===== Konfiguration der CRE (containerd) für die private Registrie ===== ===== Konfiguration der CRE (containerd) für die private Registrie =====
Zeile 28: Zeile 43:
       [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.tuxnet.lan"]       [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.tuxnet.lan"]
         endpoint = ["https://registry.tuxnet.lan:32568"]         endpoint = ["https://registry.tuxnet.lan:32568"]
-</code> 
-\\ 
-===== Anlegen einer eigenen kubeconfig auf Basis eines eigenen Rollenobjektes ===== 
-**Erstellen einer eigenen kubeconfig auf Basis eines eigenen Zertifikates durch ein Clusterrollbinding-Objekt (bofh:admin)** 
-<code bash> 
-sudo kubeadm kubeconfig user --client-name marko-the-bofh --org bofh:admin --config control1.yaml > kubeconfig.yaml 
 </code> </code>
  
-(IMPORTANT) Entferne die erste Zeile aus der **kubeconfig.yaml** Datei 
- 
- 
-**Erstellen des Clusterrollbindings** 
-<code bash> 
-sudo kubectl --kubeconfig /etc/kubernetes/admin.conf create clusterrolebinding bofh:admin --clusterrole cluster-admin --group bofh:admin 
-</code> 
 \\ \\
 ===== Kubernetes Master-Node welche Ordner/Files auf weitere Master-Nodes kopieren ===== ===== Kubernetes Master-Node welche Ordner/Files auf weitere Master-Nodes kopieren =====
Zeile 55: Zeile 57:
 sudo tar xf kubestrap.tar -C / sudo tar xf kubestrap.tar -C /
 </code> </code>
 +
 \\ \\
 ===== Ausgabe des Token Hash's ===== ===== Ausgabe des Token Hash's =====
 +Gibt ein kubeadm Befehl zurück zum joinen einer worker Node
 <code bash> <code bash>
 kubeadm token create --dry-run --print-join-command kubeadm token create --dry-run --print-join-command
 +</code>
 +
 +Erstellt ein kubeadm join Kommando zum hinzufügen einer weiteren control-plan Node.
 +<code bash>
 +echo $(kubeadm token create --print-join-command) --control-plane --certificate-key $(kubeadm init phase upload-certs --upload-certs | grep -vw -e certificate -e Namespace)
 </code> </code>
  
Zeile 72: Zeile 81:
 kubectl certificate approve <cert-name> kubectl certificate approve <cert-name>
 </code> </code>
 +
 \\ \\
 ===== Ändern des clusterweiten Konfiguration ===== ===== Ändern des clusterweiten Konfiguration =====
Zeile 83: Zeile 93:
 </code> </code>
  
 +\\
 +===== Updating resources =====
 +<code>
 +kubectl set image deployment/frontend www=image:v2               # Rolling update "www" containers of "frontend" deployment, updating the image
 +kubectl rollout history deployment/frontend                      # Check the history of deployments including the revision
 +kubectl rollout undo deployment/frontend                         # Rollback to the previous deployment
 +kubectl rollout undo deployment/frontend --to-revision=2         # Rollback to a specific revision
 +kubectl rollout status -w deployment/frontend                    # Watch rolling update status of "frontend" deployment until completion
 +kubectl rollout restart deployment/frontend                      # Rolling restart of the "frontend" deployment
 +</code>
 +
 +\\
 +===== new command or entry point for a container =====
 +<code yaml>
 +apiVersion: v1
 +kind: Pod
 +metadata:
 +  creationTimestamp: null
 +  labels:
 +    run: golang
 +  name: golang
 +  namespace: testing-chantal
 +spec:
 +  containers:
 +  - name: golang
 +    image: golang:bookworm
 +    tty: true
 +    stdin: true
 +    command: ["/bin/sh"]
 +    resources: {}
 +    volumeMounts:
 +    - name: bin
 +      mountPath: /go/psp-mig
 +  imagePullSecrets:
 +  - name: regcred
 +  dnsPolicy: ClusterFirst
 +  restartPolicy: Always
 +  volumes:
 +    - name: bin
 +      persistentVolumeClaim:
 +        claimName: pvc-golang
 +status: {}
 +</code>
 +
 +===== Kubelet image delete =====
 +Herausfinden ab welche Werte Images vom Kubelet gelöscht werden
 +<code yaml>
 +k get --raw /api/v1/nodes/dbaas-node2/proxy/configz | yq -P
 +
 +...
 +imageMinimumGCAge: 2m0s
 +imageGCHighThresholdPercent: 85
 +imageGCLowThresholdPercent: 80
 +...
 +</code>
 +
 +===== Visualize your Kubernetes workloads =====
 +==== k9s =====
 +https://k9scli.io/ \\
 +https://github.com/derailed/k9s/releases
 +
 +==== Octant ====
 +https://octant.dev/ \\
 +https://github.com/vmware-archive/octant/releases
 +
 +\\
 +===== Cronjob disable =====
 +Um einen Kubernetes cronjob zu deaktivieren
 +<code bash>
 +kubectl patch cronjobs job-name -p '{"spec" : {"suspend" : true }}'
 +</code>
 +
 +\\
 +===== kubectl debug =====
 +Mittels kubectl die Kubernetes Nodes betreten
 +<code bash>
 +k debug no/<nodename> -it --image cgr.dev/chainguard/bash -- chroot /host
 +</code>
 +
 +===== get pods im Status ungleich running =====
 +Wenn man sich alle Pods im Cluster anschauen möchte welche den Status ungleich running haben kann man das mittels field-selector machen.
 +<code bash>
 +k get pods -A --field-selector=status.phase!=Running
 +</code>
it-wiki/kubernetes/know-how.1667467181.txt.gz · Zuletzt geändert: 2022/11/03 09:19 von marko