Namespaces in Kubernetes ermöglichen die Trennung von Ressourcen in einer K8s-Cluster-Umgebung. Sie helfen dabei, verschiedene Projekte, Teams oder Kunden zu isolieren, die auf dem gleichen Cluster arbeiten. Durch die Verwendung von Namespaces können Benutzer Ressourcen organisieren und verwalten, und Administratoren können die Nutzung der Ressourcen überwachen und steuern.
| Ressourcentyp | Namespace | kubectl Befehl |
|---|---|---|
| Pod | A | kubectl run A1 --image=<image> --namespace=Namespace-A |
| Pod | A | kubectl run A2 --image=<image> --namespace=Namespace-A |
| Service | A | kubectl create service clusterip A --tcp=80:80 --namespace=Namespace-A |
| PersistentVolumeClaim | A | kubectl create pvc A --namespace=Namespace-A |
| Pod | B | kubectl run B1 --image=<image> --namespace=Namespace-B |
| Pod | B | kubectl run B2 --image=<image> --namespace=Namespace-B |
| Service | B | kubectl create service clusterip B --tcp=80:80 --namespace=Namespace-B |
| PersistentVolumeClaim | B | kubectl create pvc B --namespace=Namespace-B |
Ersetzen Sie <image> mit dem Namen des gewünschten
Container-Images.
Ein Namespace ist ein eigener Resource Type
apiVersion: v1
kind: Namespace
metadata:
name: example-namespaceEin Namespace kann direkt im Manifest einer Ressource angegeben werden. Diese Methode setzt den Namespace fest, in dem die Ressource erstellt wird, sofern nicht über die Kommandozeile überschrieben.
apiVersion: v1
kind: Pod
metadata:
name: example-pod
namespace: example-namespace
spec:
containers:
- name: example-container
image: nginxkubectl create namespace example-namespaceDieser Befehl erstellt den POD im Namespace der im Manifest definiert ist, oder im Default Namespace.
kubectl apply -f pod-manifest.yaml --namespace=another-namespaceDieser Befehl hingegen überschreibt explizit den Namespace, der im
pod-manifest.yaml definiert ist, und erstellt den Pod
stattdessen im Namespace another-namespace
kubectl apply -f pod-manifest.yaml --namespace=another-namespace| Namespace | Beschreibung |
|---|---|
| default | Standardnamespace für Objekte ohne Namespace |
| kube-system | Systemprozesse von Kubernetes |
| kube-public | Informationen, die öffentlich lesbar sind |
| kube-node-lease | Heartbeats der Nodes zur Verbesserung der Performance |