编辑
2022-11-29
kubernetes
00
请注意,本文编写于 500 天前,最后修改于 496 天前,其中某些信息可能已经过时。

目录

Namespace

Namespace

在实际的开发当中,有时候我们需要不同的环境来做开发和测试,例如 dev 环境给开发使用,test 环境给 QA 使用,那么 k8s 能不能在不同环境 dev test uat prod 中区分资源,让不同环境的资源独立互相不影响呢,答案是肯定的,k8s 提供了名为 Namespace 的资源来帮助隔离资源。

在 Kubernetes 中,名字空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。 同一名字空间内的资源名称要唯一,但跨名字空间时没有这个要求。 名字空间作用域仅针对带有名字空间的对象,例如 Deployment、Service 等。

前面的教程中,默认使用的 namespace 是 default

下面展示如何创建一个新的 namespace, namespace.yaml 文件定义了两个不同的 namespace,分别是 devtest

yaml
apiVersion: v1 kind: Namespace metadata: name: dev --- apiVersion: v1 kind: Namespace metadata: name: test

可以通过kubectl apply -f namespaces.yaml 创建两个新的 namespace,分别是 devtest

yaml
kubectl apply -f namespaces.yaml # namespace/dev created # namespace/test created kubectl get namespaces # NAME STATUS AGE # default Active 215d # dev Active 2m44s # ingress-nginx Active 110d # kube-node-lease Active 215d # kube-public Active 215d # kube-system Active 215d # test Active 2m44s

那么如何在新的 namespace 下创建资源和获取资源呢?只需要在命令后面加上 -n namespace 即可。例如根据上面教程中,在名为 dev 的 namespace 下创建 hellok8s:v3 的 deployment 资源。

shell
kubectl apply -f deployment.yaml -n dev kubectl get pods -n dev
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Joker

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!