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:31]
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 789: Zeile 825:
 </code> </code>
  
-===PVC=== 
 Das Volume bindet man nicht direkt in Deployments ein. Dazu legt man einen PVC (Persistent volume claim) an. Das Volume bindet man nicht direkt in Deployments ein. Dazu legt man einen PVC (Persistent volume claim) an.
  
Zeile 806: Zeile 841:
 </code> </code>
  
-===Usage=== 
 PVC in einem Deployment nutzen. PVC in einem Deployment nutzen.
- 
 <code yaml> <code yaml>
 apiVersion: apps/v1 apiVersion: apps/v1
Zeile 835: Zeile 868:
           claimName: demo-pvc           claimName: demo-pvc
 </code> </code>
 +
 +===SMB===
 +
 +[[https://github.com/kubernetes-csi/csi-driver-smb|Treiber]]
 +
 +Secret
 +<code yaml>
 +apiVersion: v1
 +kind: Secret
 +metadata:
 +  name: smbcreds
 +type: Opaque
 +stringData:
 +  username: k8suser
 +  password: "DEIN_PASSWORT"
 +  # domain: "DEINDOMAIN"   # nur wenn Domain-User
 +</code>
 +
 +PV
 +<code yaml>
 +apiVersion: v1
 +kind: PersistentVolume
 +metadata:
 +  name: pv-smb-demo
 +  annotations:
 +    pv.kubernetes.io/provisioned-by: smb.csi.k8s.io
 +spec:
 +  capacity:
 +    storage: 5Gi
 +  accessModes:
 +    - ReadWriteMany
 +  persistentVolumeReclaimPolicy: Retain
 +  storageClassName: smb
 +  mountOptions:
 +    - dir_mode=0777
 +    - file_mode=0777
 +    - noperm
 +    - mfsymlinks
 +    - cache=strict
 +    - noserverino
 +  csi:
 +    driver: smb.csi.k8s.io
 +    # volumeHandle muss im Cluster eindeutig sein
 +    volumeHandle: WIN-SERVER.local/k8s-demo##
 +    volumeAttributes:
 +      source: //WIN-SERVER.local/k8s-demo
 +    nodeStageSecretRef:
 +      name: smbcreds
 +      namespace: default
 +</code>
 +
 +PVC
 +<code yaml>
 +apiVersion: v1
 +kind: PersistentVolumeClaim
 +metadata:
 +  name: pvc-smb-demo
 +spec:
 +  accessModes:
 +    - ReadWriteMany
 +  resources:
 +    requests:
 +      storage: 5Gi
 +  storageClassName: smb
 +  volumeName: pv-smb-demo
 +</code>
 +
 +
 ====StatefulSet==== ====StatefulSet====
  
Zeile 937: 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.1764178281.txt.gz · Zuletzt geändert: 2025/11/26 18:31 von jango