it-wiki:kubernetes:know-how
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
it-wiki:kubernetes:know-how [2022/11/11 12:08] – [Abfrage Registry Katalog] marko | it-wiki:kubernetes:know-how [2025/04/29 06:32] (aktuell) – [kubectl debug] marko | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Know-How ====== | ====== Know-How ====== | ||
+ | ===== kubectl Plugins ===== | ||
+ | https:// | ||
+ | ==== Plugin " | ||
+ | <code bash> | ||
+ | kubectl get deployment < | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
===== Private Registry/ | ===== Private Registry/ | ||
==== Abfrage Registry Katalog ==== | ==== Abfrage Registry Katalog ==== | ||
<code bash> | <code bash> | ||
- | curl -k https:// | + | curl -k https:// |
</ | </ | ||
Oder mit dem schöneren Tool **reg** | Oder mit dem schöneren Tool **reg** | ||
<code bash> | <code bash> | ||
- | reg ls -k registry.tuxnet.lan:32568 | + | reg ls -k registry.tuxnet.lan |
</ | </ | ||
Docker Images in die private registry kopieren | Docker Images in die private registry kopieren | ||
<code bash> | <code bash> | ||
- | skopeo copy docker:// | + | skopeo copy docker:// |
</ | </ | ||
- | \\ | + | |
==== 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 |
</ | </ | ||
- | \\ | + | |
==== Löschen von Registry Einträgen/ | ==== Löschen von Registry Einträgen/ | ||
<code bash> | <code bash> | ||
- | crane delete " | + | crane delete " |
</ | </ | ||
+ | |||
\\ | \\ | ||
===== Konfiguration der CRE (containerd) für die private Registrie ===== | ===== Konfiguration der CRE (containerd) für die private Registrie ===== | ||
Zeile 33: | Zeile 43: | ||
[plugins." | [plugins." | ||
endpoint = [" | endpoint = [" | ||
- | </ | ||
- | \\ | ||
- | ===== Anlegen einer eigenen kubeconfig auf Basis eines eigenen Rollenobjektes ===== | ||
- | **Erstellen einer eigenen kubeconfig auf Basis eines eigenen Zertifikates durch ein Clusterrollbinding-Objekt (bofh: | ||
- | <code bash> | ||
- | sudo kubeadm kubeconfig user --client-name marko-the-bofh --org bofh:admin --config control1.yaml > kubeconfig.yaml | ||
</ | </ | ||
- | (IMPORTANT) Entferne die erste Zeile aus der **kubeconfig.yaml** Datei | ||
- | |||
- | |||
- | **Erstellen des Clusterrollbindings** | ||
- | <code bash> | ||
- | sudo kubectl --kubeconfig / | ||
- | </ | ||
\\ | \\ | ||
===== Kubernetes Master-Node welche Ordner/ | ===== Kubernetes Master-Node welche Ordner/ | ||
Zeile 60: | Zeile 57: | ||
sudo tar xf kubestrap.tar -C / | sudo tar xf kubestrap.tar -C / | ||
</ | </ | ||
+ | |||
\\ | \\ | ||
===== 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 | ||
+ | </ | ||
+ | |||
+ | 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) | ||
</ | </ | ||
Zeile 77: | Zeile 81: | ||
kubectl certificate approve < | kubectl certificate approve < | ||
</ | </ | ||
+ | |||
\\ | \\ | ||
===== Ändern des clusterweiten Konfiguration ===== | ===== Ändern des clusterweiten Konfiguration ===== | ||
Zeile 88: | Zeile 93: | ||
</ | </ | ||
+ | \\ | ||
+ | ===== Updating resources ===== | ||
+ | < | ||
+ | kubectl set image deployment/ | ||
+ | kubectl rollout history deployment/ | ||
+ | kubectl rollout undo deployment/ | ||
+ | kubectl rollout undo deployment/ | ||
+ | kubectl rollout status -w deployment/ | ||
+ | kubectl rollout restart deployment/ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | ===== new command or entry point for a container ===== | ||
+ | <code yaml> | ||
+ | apiVersion: v1 | ||
+ | kind: Pod | ||
+ | metadata: | ||
+ | creationTimestamp: | ||
+ | labels: | ||
+ | run: golang | ||
+ | name: golang | ||
+ | namespace: testing-chantal | ||
+ | spec: | ||
+ | containers: | ||
+ | - name: golang | ||
+ | image: golang: | ||
+ | tty: true | ||
+ | stdin: true | ||
+ | command: ["/ | ||
+ | resources: {} | ||
+ | volumeMounts: | ||
+ | - name: bin | ||
+ | mountPath: /go/psp-mig | ||
+ | imagePullSecrets: | ||
+ | - name: regcred | ||
+ | dnsPolicy: ClusterFirst | ||
+ | restartPolicy: | ||
+ | volumes: | ||
+ | - name: bin | ||
+ | persistentVolumeClaim: | ||
+ | claimName: pvc-golang | ||
+ | status: {} | ||
+ | </ | ||
+ | |||
+ | ===== Kubelet image delete ===== | ||
+ | Herausfinden ab welche Werte Images vom Kubelet gelöscht werden | ||
+ | <code yaml> | ||
+ | k get --raw / | ||
+ | |||
+ | ... | ||
+ | imageMinimumGCAge: | ||
+ | imageGCHighThresholdPercent: | ||
+ | imageGCLowThresholdPercent: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ===== Visualize your Kubernetes workloads ===== | ||
+ | ==== k9s ===== | ||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | ==== Octant ==== | ||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | \\ | ||
+ | ===== Cronjob disable ===== | ||
+ | Um einen Kubernetes cronjob zu deaktivieren | ||
+ | <code bash> | ||
+ | kubectl patch cronjobs job-name -p ' | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | ===== kubectl debug ===== | ||
+ | Mittels kubectl die Kubernetes Nodes betreten | ||
+ | <code bash> | ||
+ | k debug no/< | ||
+ | </ | ||
+ | |||
+ | ===== 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 | ||
+ | </ |
it-wiki/kubernetes/know-how.1668168489.txt.gz · Zuletzt geändert: 2022/11/11 12:08 von marko