k8s 中(生产|测试)环境隔离问题

需求:
一个组织内部,不同的工作组可以在同一个k8s集群中工作,k8s通过命名空间和context的设置来对不通的工作组进行分区,使得他们即可共享同一个k8s集群的服务,也能够互不影响;
开发组
namespace:dev
可以创建、修改、删除各种poddpsvc

生产组
namespace:prod
不可以随意修改、删除各种poddpsvc


1、创建namespace
cat >namespace-dev.yaml<<EOF
apiVersion: v1
kind: Namespace
metadata:
name:development
EOF

cat >namespace-prod.yaml<<EOF
apiVersion: v1
kind: Namespace
metadata:
name:production
EOF

kubectl create -f namespace-dev.yaml
kubectl create -f namespace-prod.yaml


2、定义comtext(运行环境)
kubectl config set-cluster kubernetes-cluster --server=https://192.168.1.128:8080
kubectl config set-context ctx-dev --namespace=development --cluster=kubernetes-cluster --user=dev
kubectl config set-context ctx-prod --namespace=production --cluster=kubernetes-cluster --user=prod

查看已经定义成功的context
kubectl config view
也可以在${HOME}/.kube 目录下查看config的文件内容


3、设置工作组在特定context 环境下工作
kubectl config use-context ctx-dev #设置后,当前环境即为开发组所需环境

kubectl config use-context ctx-prod #切换到运维组所需环境

原文地址:https://www.cnblogs.com/plefan/p/14393347.html