当前位置:   article > 正文

Kubernetes集群命名空间(Namespace)_kubectl查看所有的namespace

kubectl查看所有的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系统创建的资源都处于这个命名空间
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、查看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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

使用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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

四、创建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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.2 YAML文件创建

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

编写创建namespace的YAML文件

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

使用kubctl apply -f应用YAML文件

[root@k8s-master01 ~]# kubectl apply -f create_ns2.yml
namespace/ns2 created
  • 1
  • 2
[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

五、删除namespace

注意:

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

5.1 命令删除

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

5.2 YAML文件删除

[root@k8s-master01 ~]# kubectl delete -f create_ns2.yml
namespace "ns2" deleted
  • 1
  • 2
[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/162173
推荐阅读
相关标签
  

闽ICP备14008679号