名称空间:就是用来隔离k8s集群的资源的,我们通常使用名称空间对企业业务进行划分;

有的资源是不支持名称空间的,我们称之为全局资源,而支持名称空间的,我们称之为局部资源;

我们可以通过【kubectl api-resources】查看一个资源是否支持名称空间;

如果删除了名称空间,则对应的名称空间中的资源也会被删除;

温馨提示:相同名称空间下的相同资源,name名称不能重复;

 一、查看资源是否支持名称空间

[root@k8s231 ~]# kubectl api-resources

二、查看系统的名称空间

· 查看系统中的名称空间列表

[root@k8s231 ~]# kubectl get namespaces 
NAME              STATUS   AGE
default           Active   11d
kube-flannel      Active   11d
kube-node-lease   Active   11d
kube-public       Active   11d
kube-system       Active   11d

· 单独查看一个名称空间下的对应资源

[root@k8s231 ~]# kubectl get pods -o wide -n kube-system

三、名称空间的管理

1,创建名称空间

· 响应式创建

[root@k8s231 ~]# kubectl create  namespace xinjizhiwa

· 声明式创建

[root@k8s231 namespace]# vim namespace.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: xinjizhiwa02

[root@k8s231 namespace]# kubectl apply -f namespace.yaml

2,删除名称空间

[root@k8s231 namespace]# kubectl delete namespaces xinjizhiwa02

四、资源引用名称空间

1,pod资源引用名称空间

· 编辑pod资源清单

[root@k8s231 namespace]# vim pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-namespace
  #pod归属于哪个名称空间,不写默认是default
  namespace: xinjizhiwa
spec:
  containers:
  - name: c4
    image: nginx:1.20.1-alpine

· 创建pod

[root@k8s231 namespace]# kubectl apply -f pod.yaml

· 查看名名称空间下的pod资源

[root@k8s231 namespace]# kubectl get pods -n xinjizhiwa 
NAME            READY   STATUS    RESTARTS   AGE
pod-namespace   1/1     Running   0          52s

2,configmap资源引用名称空间

· 编辑configmap资源清单

[root@k8s231 configmap]# vim 01-cm.yaml 

apiVersion: v1
kind: ConfigMap
metadata:
  name: cm01
  namespace: xinjizhiwa
data:
  xinjizhiwa: "HELLO WORLD"
  k8s: "1.23.17"
  my.cnf: |
    [mysqld]
    datadir=/xinjizhiwa/data
    basedir=/usr/bin/mysqld/bin/
    socket=/tmp/mysql.socket
    skip-name-resolve=1
    port=3306
    [client]
    username=admin
    password=1

· 创建configmap资源

[root@k8s231 configmap]# kubectl apply -f 01-cm.yaml

· 查看名称空间下的cm资源

[root@k8s231 configmap]# kubectl get cm -n xinjizhiwa 
NAME               DATA   AGE
cm01               3      2m23s
kube-root-ca.crt   1      16m
[root@k8s231 configmap]# kubectl get cm
NAME               DATA   AGE
kube-root-ca.crt   1      6d20h

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐