Profilanwendbarkeit: Stufe 1
Benutzer-Pods sollten nicht in kube-system oder kube-public platziert werden, da diese
für Clusterdienste reserviert sind.
Benutzer-Pods in einen anderen als den kube-system-Namespace bereitstellen.
Prüfung
Führen Sie den folgenden Befehl aus und überprüfen Sie die Namespaces der Benutzerressourcen
für jeden Ressourcentyp:
kubectl get pods -n kube-system
Wiederholen Sie für
deployments
, services
, replicasets
, statefulsets
, daemonsets
, jobs
, cronjobs
. Stellen Sie sicher, dass keine Benutzerressourcen den kube-system Namespace verwenden.Wiederherstellung
Erstellen Sie Benutzernamensräume und rekonstruieren Sie Benutzerressourcen innerhalb
dieser Namensräume. Pods und Dienste in verschiedenen Namensräumen können weiterhin
miteinander kommunizieren, es sei denn, es wird eine zusätzliche Trennung erzwungen.
Im folgenden Beispiel kann für jedes Team oder jede Benutzergruppe ein Kubernetes-Namespace
entweder mit einem kubectl-Befehl oder einer YAML-Datei erstellt werden. Jeder Name
mit dem Präfix kube- sollte vermieden werden, da er mit den von Kubernetes reservierten
System-Namespaces in Konflikt geraten könnte.
Erstellen Sie einen Namespace mit einem kubectl-Befehl:
kubectl create namespace <insert-namespace-name-here>
Namespace mit YAML-Datei erstellen:
- Erstellen Sie eine neue Datei mit dem Namen my-namespace.yaml mit folgendem Inhalt:
apiVersion: v1 kind: Namespace metadata: name: <insert-namespace-name-here>
- Wenden Sie den Namensraum an mit:
kubectl create –f ./my-namespace.yaml
- Um neue Pods in einem bestehenden Namespace zu erstellen, wechseln Sie mit folgendem
Befehl in den gewünschten Namespace:
kubectl config use-context <insert-namespace-here>
- Neue Bereitstellung anwenden mit:
kubectl apply -f deployment.yaml
- Alternativ kann der Namespace dem kubectl-Befehl hinzugefügt werden mit:
kubectl apply -fvdeployment.yaml --namespace=<insert-namespace-here>
Oder geben Sie den Namespace an:<insert-namespace-here>
unter Metadaten in der YAML-Deklaration.
Einmal erstellt, können Ressourcen nicht zwischen Namespaces verschoben werden. Die
Ressource muss gelöscht und dann im neuen Namespace erstellt werden.