Benutzer-Werkzeuge

Webseiten-Werkzeuge


kubernetes

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
kubernetes [2025/11/26 18:41]
jango [PV]
kubernetes [2025/11/27 01:05] (aktuell)
jango [Lokale Registry]
Zeile 394: Zeile 394:
 sudo systemctl enable --now containerd sudo systemctl enable --now containerd
 </code> </code>
 +=====Node entfernen=====
 +
 +<code bash>
 +# Node als "nicht verfügbar" markieren, Pods werden nicht woanders hin verschoben aber keine neuen mehr auf dem Node platziert
 +kubectl cordon ubuntu3
 +
 +# Drain markiert den Node als "nicht verfügbar" und verschiebt zusätzlich alle Pods auf andere Nodes.
 +kubectl drain ubuntu3 --ignore-daemonsets --delete-emptydir-data
 +
 +# Re-Activate
 +kubectl uncordon ubuntu3
 +</code>
 +
 =====Labels===== =====Labels=====
  
Zeile 644: Zeile 657:
  
 Bei einem Daemonset sorgt Kubernetes dafür das ein Pod per (möglichem Node) Node läuft. Bei einem Daemonset sorgt Kubernetes dafür das ein Pod per (möglichem Node) Node läuft.
 +
 +<code yaml>
 +apiVersion: apps/v1
 +kind: DaemonSet
 +metadata:
 +  name: ds-demo
 +  namespace: default
 +spec:
 +  selector:
 +    matchLabels:
 +      app: ds-demo
 +  template:
 +    metadata:
 +      labels:
 +        app: ds-demo
 +    spec:
 +      containers:
 +      - name: pause-and-log
 +        image: busybox:1.36
 +        command: ["sh","-c","echo 'Hello from node:' $(cat /etc/hostname); sleep 360000"]
 +</code>
 +
 +-----------
  
 Container bauen Container bauen
Zeile 766: Zeile 802:
 ====Persistent Volumes==== ====Persistent Volumes====
  
-===PV===+===NFS===
  
-==NFS== 
 <code yaml> <code yaml>
 apiVersion: v1 apiVersion: v1
Zeile 790: Zeile 825:
 </code> </code>
  
-==SMB==+Das Volume bindet man nicht direkt in Deployments ein. Dazu legt man einen PVC (Persistent volume claim) an. 
 + 
 +<code yaml> 
 +apiVersion: v1 
 +kind: PersistentVolumeClaim 
 +metadata: 
 +  name: demo-pvc 
 +spec: 
 +  accessModes: 
 +    - ReadWriteOnce 
 +  resources: 
 +    requests: 
 +      storage: 5Gi 
 +  storageClassName: slow 
 +</code> 
 + 
 +PVC in einem Deployment nutzen. 
 +<code yaml> 
 +apiVersion: apps/v1 
 +kind: Deployment 
 +metadata: 
 +  name: demo 
 +spec: 
 +  replicas: 1 
 +  selector: 
 +    matchLabels: 
 +      app: demo 
 +  template: 
 +    metadata: 
 +      labels: 
 +        app: demo 
 +    spec: 
 +      containers: 
 +      - name: nginx 
 +        image: nginx:stable 
 +        volumeMounts: 
 +        - name: data 
 +          mountPath: /usr/share/nginx/html 
 +      volumes: 
 +      - name: data 
 +        persistentVolumeClaim: 
 +          claimName: demo-pvc 
 +</code> 
 + 
 +===SMB==
 + 
 +[[https://github.com/kubernetes-csi/csi-driver-smb|Treiber]]
  
 Secret Secret
Zeile 853: Zeile 934:
   volumeName: pv-smb-demo   volumeName: pv-smb-demo
 </code> </code>
-===PVC=== 
-Das Volume bindet man nicht direkt in Deployments ein. Dazu legt man einen PVC (Persistent volume claim) an. 
  
-<code yaml> 
-apiVersion: v1 
-kind: PersistentVolumeClaim 
-metadata: 
-  name: demo-pvc 
-spec: 
-  accessModes: 
-    - ReadWriteOnce 
-  resources: 
-    requests: 
-      storage: 5Gi 
-  storageClassName: slow 
-</code> 
  
-===Usage=== 
-PVC in einem Deployment nutzen. 
- 
-<code yaml> 
-apiVersion: apps/v1 
-kind: Deployment 
-metadata: 
-  name: demo 
-spec: 
-  replicas: 1 
-  selector: 
-    matchLabels: 
-      app: demo 
-  template: 
-    metadata: 
-      labels: 
-        app: demo 
-    spec: 
-      containers: 
-      - name: nginx 
-        image: nginx:stable 
-        volumeMounts: 
-        - name: data 
-          mountPath: /usr/share/nginx/html 
-      volumes: 
-      - name: data 
-        persistentVolumeClaim: 
-          claimName: demo-pvc 
-</code> 
 ====StatefulSet==== ====StatefulSet====
  
Zeile 1001: Zeile 1038:
  
 Für eine kleine Testumgebung ist hostPath oft am einfachsten. Beispiel: Daten liegen dauerhaft auf dem Node unter /opt/registry/data. Für eine kleine Testumgebung ist hostPath oft am einfachsten. Beispiel: Daten liegen dauerhaft auf dem Node unter /opt/registry/data.
 +
 +<box red>Vorsicht: Wenn man den ganzen Cluster neu startet und die Registry auf einen anderen Node verteilt wird, hostPath ist immer nur auf dem aktuellen Node, nicht clusterweit. Für Demo reichts.</box>
  
 Registry (hostPath) Registry (hostPath)
kubernetes.1764178868.txt.gz · Zuletzt geändert: 2025/11/26 18:41 von jango