需求描述
假设企业使用同一个集群作为开发环境和生产环境(注意:通常开发环境和生产环境是物理隔绝的):
开发团队期望有一个集群中的命名空间,以便他们可以查看查看和使用他们创建的Pod、Service、Deployment等。在此命名空间中,Kubernetes对象被创建又被删除,为了适应敏捷开发的过程,团队中的许多人都可以在此命名空间内做他们想做的事情。
运维团队也期望有一个集群中的命名空间,在这里,将有严格的流程控制谁可以操作Pod、Service、Deployment等对象,因为这些对象都直接服务于生产环境。
实验过程
- 创建development、production命名空间
1
2
3
4
5
6
7
8
|
apiVersion: v1
kind: Namespace
metadata:
name: development
labels:
name: development
|
1
2
3
4
5
6
7
8
|
apiVersion: v1
kind: Namespace
metadata:
name: production
labels:
name: production
|
- 查看集群信息,并为kubectl定义上下文,以便在不同的名称空间中工作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
kubectl config view
# cluster、user均来自kubectl config view
kubectl config set-context development \
--namespace=development \
--cluster kubernetes \
--user=kubernetes-admin
kubectl config set-context production \
--namespace=production \
--cluster kubernetes \
--user=kubernetes-admin
|
- 切换到不同的命名空间
kubectl config use-context development
kubectl config current-context
参考资料
- 命名空间