命名空间
Kubernetes 中命名空间(Namespace)是用来隔离 Kubernetes 集群内的不同资源对象的一种方式。每个 Kubernetes 对象都必须被分配到一个命名空间中,而且默认情况下,一个对象只能被同一命名空间内的其他对象访问。Kubernetes 可以帮助用户在同一集群内部部署多个独立的应用程序,每个应用程序都在自己的命名空间内运行。
在创建 K8s 对象时,制定命名空间可以在 metadata 中定义 namespace。
基本操作
# 创建命名空间 kubectl create namespace|ns testapp # 部署应用到指定的命名空间 kubectl apply -f app.yml --namespace testapp # 查询 kubectl get pod --namespace kube-system
使用 yml 形式创建
apiVersion: v1 kind: Namespace metadata: name: ems
可以用 kubens 快速切换 namespace
# 列出所有命名空间 kubens # 切换命名空间 kubens kube-system # 回到上个命名空间 kubens -
命名空间说明
下面是一些常见的可以跨命名空间的资源对象:
Node
Namespace
ClusterRole
ClusterRoleBinding
CustomResourceDefinition
下面是一些不能跨命名空间的资源对象:
Pod
ReplicaSet
Deployment
Service
ConfigMap
Secret
Ingress
PersistentVolume
PersistentVolumeClaim
Role
RoleBinding
ServiceAccount