Kubernetes命名空间的应用
在实际应用中存在一个Kubernetes集群中多个部署环境的问题,比如存在dev,qa,stage等.
如果部署在一个集群会省去不少运维成本且节省资源占用.
通常这会用到命名空间的特性.
Namespaces 命名空间
命名空间可以被看做virtual cluster/虚拟集群.
默认存在default和kube-system两个命名空间.
用户的普通应用默认是在default下,与集群管理相关的为整个集群提供服务的应用一般部署在kube-system的namespace下.
创建新的命名空间
namespace-dev.yml
kind: Namespace
apiVersion: v1
metadata:
name: dev-space
labels:
name: dev-space
kubectl create -f namespace-dev.yml
kubectl get ns
# 指定命名空间
kubectl -n <namespace>
kubectl get services —namespace=<my-space>
给命名空间指派context/上下文
一旦切换上下文, kubectl命令的执行(增改删)会在该命名空间运行.
# 绑定命名空间和上下文的关系
kubectl config set-context dev --namespace=dev --cluster=minikube --user=minukube
# 切换到Dev context
kubectl config use-context dev
# 核实当前context
kubectl config current-context
# Delete dev namespace
kubectl delete namespaces dev