Kubernetes 中的命名空间提供了一种在单个集群中隔离资源的机制。通过命名空间,您可以有效地组织和管理应用程序与服务,尤其是在多个团队或项目共存的环境中。


下面的示例说明了如何创建命名空间并在该命名空间中部署 pod。

[代码清单]

apiVersion: v1
kind: Namespace
metadata:
 name: dev-environment
---
apiVersion: v1
kind: Pod
metadata:
 name: nginx-pod
 namespace: dev-environment
spec:
 containers:
 - name: nginx
  image: nginx:latest
  ports:
  - containerPort: 80

[执行结果]

使用 `kubectl apply -f <filename>.yaml` 应用此配置时,您将看到以下输出,确认命名空间和 pod 已创建:
namespace/dev-environment 已创建
已创建 pod/nginx-pod

在这个示例中,我们首先创建了一个名为 dev-environment 的命名空间。随后的 pod 定义指定在此命名空间中创建 pod。命名空间在多租户环境中特别有用,因为它们有助于防止资源冲突,并提供了在命名空间级别应用资源配额和策略的方法。

[小知识]

Kubernetes 自带多个默认命名空间,包括 default、kube-system 和 kube-public。

你可以使用 kubectl config set-context --current --namespace=<namespace-name>命令在命名空间之间切换。

命名空间还可用于执行安全策略,因为基于角色的访问控制(RBAC)可应用于命名空间级别。