Kubernetes集群命名空间(Namespace)

这篇具有很好参考价值的文章主要介绍了Kubernetes集群命名空间(Namespace)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、命名空间(namespace)作用

  • Namespace是对一组资源和对象的抽象集合.
  • 常见的 pod, service, deployment 等都是属于某一个namespace的(默认是 default)
  • 不是所有资源都属于namespace,如nodes, persistent volume,namespace 等资源则不属于任何 namespace

二、查看namespace

[root@k8s-master01 ~]# kubectl get namespaces       # namespaces可以简写为namespace或ns
NAME              STATUS   AGE
default           Active   130m			# 所有未指定Namespace的对象都会被默认分配在default命名空间
kube-node-lease   Active   130m			
kube-public       Active   130m			# 此命名空间下的资源可以被所有人访问
kube-system       Active   130m			# 所有由Kubernetes系统创建的资源都处于这个命名空间

三、查看namespace里的资源

使用kubectl get all --namespace=命名空间名称可以查看此命名空间下的所有资源

[root@k8s-master01 ~]# kubectl get all --namespace=kube-system 
NAME                                           READY   STATUS    RESTARTS   AGE
pod/calico-kube-controllers-7cc8dd57d9-bm5vz   1/1     Running   11         36d
pod/calico-node-9s8bl                          1/1     Running   3          36d
pod/calico-node-9wdj6                          1/1     Running   2          36d
pod/calico-node-d5qw7                          1/1     Running   3          36d
pod/calico-node-pbt77                          1/1     Running   3          36d
pod/coredns-675db8b7cc-49nh9                   1/1     Running   2          36d
pod/metrics-server-5794ccf74d-2hjwh            1/1     Running   3          35d

NAME                     TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                  AGE
service/kube-dns         ClusterIP   10.96.0.2     <none>        53/UDP,53/TCP,9153/TCP   36d
service/metrics-server   ClusterIP   10.96.102.3   <none>        443/TCP                  35d

NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/calico-node   4         4         4       4            4           kubernetes.io/os=linux   36d

NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/calico-kube-controllers   1/1     1            1           36d
deployment.apps/coredns                   1/1     1            1           36d
deployment.apps/metrics-server            1/1     1            1           35d

NAME                                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/calico-kube-controllers-7cc8dd57d9   1         1         1       36d
replicaset.apps/coredns-675db8b7cc                   1         1         1       36d
replicaset.apps/metrics-server-5794ccf74d            1         1         1       35d
replicaset.apps/metrics-server-8bb87844c             0         0         0       35d

使用kubectl get 资源类型 --namespace=命名空间名称可以查看此命名空间下的对应的资源

[root@k8s-master01 ~]# kubectl get pod --namespace=kube-system
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-7cc8dd57d9-bm5vz   1/1     Running   11         36d
calico-node-9s8bl                          1/1     Running   3          36d
calico-node-9wdj6                          1/1     Running   2          36d
calico-node-d5qw7                          1/1     Running   3          36d
calico-node-pbt77                          1/1     Running   3          36d
coredns-675db8b7cc-49nh9                   1/1     Running   2          36d
metrics-server-5794ccf74d-2hjwh            1/1     Running   3          35d

四、创建namespace

4.1 命令创建

[root@k8s-master01 ~]# kubectl create namespace ns1
namespace/ns1 created

[root@k8s-master01 ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   5d1h
kube-node-lease   Active   5d1h
kube-public       Active   5d1h
kube-system       Active   5d1h
ns1               Active   10s

4.2 YAML文件创建

  • k8s中几乎所有的资源都可以通YAML编排来创建
  • 可以使用kubectl edit 资源类型 资源名编辑资源的YAML语法
[root@k8s-master01 ~]# kubectl edit namespace ns1
......
  • 也可使用kubectl get 资源类型 资源名 -o yaml来查看
[root@k8s-master01 ~]# kubectl get ns ns1 -o yaml
......
  • 还可通过kubectl explain 资源类型来查看语法文档
[root@k8s-master01 ~]# kubectl explain namespace				   # 查看namespace相关语法参数
[root@k8s-master01 ~]# kubectl explain namespace.metadata	   # 查看namespace下级metadata的相关语法参数
[root@k8s-master01 ~]# kubectl explain namespace.metadata.name  # 查看namespace下级metadata再下级name的相关语法参数

编写创建namespace的YAML文件

[root@k8s-master01 ~]# vim create_ns2.yml
apiVersion: v1							# api版本号
kind: Namespace							# 类型为namespace
metadata:								# 定义namespace的元数据属性
  name: ns2					    		# 定义name属性为ns2

使用kubctl apply -f应用YAML文件

[root@k8s-master01 ~]# kubectl apply -f create_ns2.yml
namespace/ns2 created
[root@k8s-master01 ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   5d2h
kube-node-lease   Active   5d2h
kube-public       Active   5d2h
kube-system       Active   5d2h
ns1               Active   10m
ns2               Active   46s

五、删除namespace

注意:文章来源地址https://www.toymoban.com/news/detail-596584.html

  • 删除一个namespace会自动删除所有属于该namespace的资源(类似mysql中drop库会删除库里的所有表一样,请慎重操作)
  • default,kube-system,kube-public命名空间不可删除

5.1 命令删除

[root@k8s-master01 ~]# kubectl delete namespace ns1
namespace "ns1" deleted

5.2 YAML文件删除

[root@k8s-master01 ~]# kubectl delete -f create_ns2.yml
namespace "ns2" deleted
[root@k8s-master01 ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   5d2h
kube-node-lease   Active   5d2h
kube-public       Active   5d2h
kube-system       Active   5d2h

到了这里,关于Kubernetes集群命名空间(Namespace)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kubernetes/k8s之HPA,命名空间资源限制

    Horizontal Pod Autoscaling:po的水平自动伸缩 这是k8s自带的模块 pod占用cpu比例达到一定的阀值,会触发伸缩机制。 根据cpu的阀值触发伸缩机制 replication controller 副本控制器 控制pod的副本数 deployment controller 节点控制器 部署pod hpa控制副本的数量,以及如何控制部署pod 1、hpa基于kub

    2024年01月24日
    浏览(46)
  • 【C++】namespace 命名空间

    两个术语: 声明区域:声明区域是可以在其中进行声明的区域。 潜在作用域:变量的潜在作用域从声明点开始,到其声明区域的结尾。因此潜在作用域比声明区域小,这是由于变量必须定义后才能使用。 名称空间可以是全局的,也可以位于另一个名称空间中,但不能位于代

    2023年04月08日
    浏览(40)
  • 【C++】命名空间 ( namespace )

    命名空间是一种用来避免命名冲突的机制,它可以将一段代码的名称隔离开,使其与其他代码的名称不冲突; 命名空间的原理是将一个全局的作用域分成一个个命名空间,每个命名空间是个单独的作用域,同时若是在同一个作用域内可能出现的命名冲突也不会造成影响,有效

    2024年02月04日
    浏览(38)
  • C++——命名空间(namespace)

    目录 1. C语言命名冲突 2. 命名空间定义 3. 命名空间使用 可能大家在看别人写的C++代码中,在一开始会包这个头文件:#includeiostream 这个头文件等价于我们在C语言学习到的#includestdio.h,它是用来跟我们的控制台输入和输出的,这里简要提下,后续详谈。 除了上面这个头文件,

    2024年02月10日
    浏览(43)
  • 【C++】命名空间 namespace 与 标准流 iostream ( 命名空间概念简介 | 命名空间定义 | 命名空间使用 | iostream 中的命名空间分析 )

    命名空间 namespace 又称为 名字空间 , 名称空间 , 名域 , 作用域 , 是 C++ 语言 对 C 语言 的扩展 之一 ; C++ 中的 命名空间 namespace 指的是 标识符 的 可见范围 , C++ 标准库中的 所有 标识符 , 都定义在 std 命名空间中 ; 命名空间 英文名称是 \\\" namespace \\\" , name 是 名字 , 名称 的意思 ,

    2024年02月12日
    浏览(44)
  • C++篇 ---- 命名空间namespace

    由于在c语言中在定义时可能会出现重命名现象,造成空间冲突,c语言中有命名冲突:1 和库冲突。2 互相之间的冲突,变量命名冲突。所以c++中就有了对其改进的namespace,针对重定义,解决空间冲突。 以下是c语言实现的代码 这里会报错是由于变量rand与库函数中的ra

    2023年04月16日
    浏览(42)
  • 【C++初阶】命名空间 namespace

    在正式进入C++前,我们需要先了解了解C++。顾名思义,C++是基于C的一种编程语言,相较于C,C++写出来的代码更简洁,有时候C需要几百行代码,而C只需要几十行就可以解决,C++也很好的解决了C中存在的一些问题,例如: 命名冲突。 C++的命名空间 就能很好的解决这个问题。

    2023年04月19日
    浏览(57)
  • C++ 之命名空间namespace【详解】

    命名空间(Namespace)在编程中的作用主要有以下几点意义 避免命名冲突:命名空间提供了一种将标识符(如变量、函数、类等)组织和隔离的方式。不同的命名空间可以拥有相同名称的标识符,避免了不同模块或库之间的命名冲突。 提高可读性和可维护性:通过使用命名空

    2024年02月16日
    浏览(39)
  • 详解C++中的命名空间(namespace)

    个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C++之路】 在C++中,总共有63个,大家还记得在C语言中有多少个吗,没错,在C语言中总共有32个。 下面是C++的: asm do if auto return try contin

    2023年04月19日
    浏览(36)
  • 【云原生技术】K8S中集群、工作空间、可用区、部署单元、命名空间、部署组、VPC概念和示例

    Kubernetes(K8S)中的集群是由一组物理或虚拟机器组成的计算资源池,用于运行和管理容器化应用程序。集群提供了资源管理、高可用性、扩展性和自动化的环境,以便部署、管理和运行容器化应用程序。下面是关于Kubernetes集群的详细介绍以及一个示例: Kubernetes集群的组成:

    2024年01月23日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包