Kubernetes集群管理实践(二):节点标签、YAML 配置与命名空间管理

Kubernetes集群管理实践

节点标签

节点标签 的核心含义是附着在 K8S 集群节点上的键值对(key=value)形式的属性标识,本质是给集群中的每台服务器(节点)打上 “属性标签”,用于对节点进行分类、标识、筛选和调度约束。

查看节点标签信息

标签以键值对形式出现

[root@master ~]# kubectl get nodes --show-labels 
NAME     STATUS   ROLES           AGE     VERSION   LABELS
master   Ready    control-plane   3d20h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
node1    Ready    <none>          3d19h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux
node2    Ready    <none>          3d19h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux

在这里插入图片描述

设置节点标签信息

[root@master ~]# kubectl label node node2 region=nanjing
node/node2 labeled

#查看标签
[root@master ~]# kubectl get nodes --show-labels
NAME     STATUS   ROLES           AGE     VERSION   LABELS
master   Ready    control-plane   3d20h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
node1    Ready    <none>          3d19h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux
node2    Ready    <none>          3d19h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux,region=nanjing


#查看所有节点带region的标签
[root@master ~]# kubectl get nodes -L region
NAME     STATUS   ROLES           AGE     VERSION   REGION
master   Ready    control-plane   3d20h   v1.28.0   
node1    Ready    <none>          3d19h   v1.28.0   
node2    Ready    <none>          3d19h   v1.28.0   nanjing

在这里插入图片描述

多维度标签

#把node1标签为合肥,南区机房,测试环境,AI业务
[root@master ~]# kubectl label node node1 region=hefei zone=south env=test bussiness=AI
node/node1 labeled

#查看
[root@master ~]# kubectl get nodes node1 --show-labels
NAME    STATUS   ROLES    AGE     VERSION   LABELS
node1   Ready    <none>   3d19h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,bussiness=AI,env=test,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,region=hefei,zone=south


#显示节点的相应标签
[root@master ~]# kubectl get nodes -L region,zone
NAME     STATUS   ROLES           AGE     VERSION   REGION    ZONE
master   Ready    control-plane   3d20h   v1.28.0             
node1    Ready    <none>          3d19h   v1.28.0   hefei     south
node2    Ready    <none>          3d19h   v1.28.0   nanjing   


#查找zone=south的节点
[root@master ~]# kubectl get nodes -l zone=south
NAME    STATUS   ROLES    AGE     VERSION
node1   Ready    <none>   3d19h   v1.28.0


在这里插入图片描述

#标签的修改
[root@master ~]# kubectl label nodes node1 zone=west --overwrite=true
node/node1 labeled


[root@master ~]# kubectl get nodes -L zone
NAME     STATUS   ROLES           AGE     VERSION   ZONE
master   Ready    control-plane   3d20h   v1.28.0   
node1    Ready    <none>          3d19h   v1.28.0   west
node2    Ready    <none>          3d19h   v1.28.0   




在这里插入图片描述

#标签删除
[root@master ~]# kubectl label node node1 env-
node/node1 unlabeled

[root@master ~]# kubectl get nodes --show-labels
NAME     STATUS   ROLES           AGE     VERSION   LABELS
master   Ready    control-plane   3d20h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
node1    Ready    <none>          3d20h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,bussiness=AI,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,region=hefei,zone=west
node2    Ready    <none>          3d20h   v1.28.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux,region=nanjing

在这里插入图片描述

标签选择器

基于标签的资源筛选,按 “匹配维度” 分为等值匹配(单值精确对应)与集合匹配(多值 / 存在性校验)两类,所有规则均以 “标签 key” 为核心,通过统一语法明确筛选逻辑,覆盖精准筛选、批量过滤、存在性检查等场景。

匹配类别子类型语法格式示例规则说明
等值匹配包含匹配key=valueapp=nginx筛选 “key 对应值完全等于 value” 的资源(单值精确匹配)
排除匹配key!=valueenv!=dev筛选 “key 对应值不等于 value” 的资源(单值排除)
集合匹配集合内包含key in (v1,v2)env in (prod, staging)筛选 “key 对应值属于指定集合” 的资源(多值批量匹配)
集合外排除key notin (v1)tier notin (backend)筛选 “key 对应值不属于指定集合” 的资源(多值排除)
键存在性检查keyservice仅筛选 “存在该标签 key” 的资源(不校验对应值)

关键特性

  1. 语法统一:所有规则以 “标签 key” 开头,通过=!=in/notin或直接写 key 的方式区分逻辑,无额外复杂语法,易记易用;
  2. 场景覆盖:等值匹配适配 “单值精准定位”(如指定应用、排除测试环境),集合匹配适配 “多值批量筛选”(如选中生产 / 预发环境)或 “仅需标签存在”(如标记特殊资源);
  3. 逻辑清晰:按 “类别 - 子类型” 分层,表格整合核心信息,无需跨章节查找,快速定位所需规则。
[root@master ~]# kubectl get nodes -l zone!=south
NAME     STATUS   ROLES           AGE     VERSION
master   Ready    control-plane   3d20h   v1.28.0
node1    Ready    <none>          3d20h   v1.28.0
node2    Ready    <none>          3d20h   v1.28.0


[root@master ~]# kubectl label node node1 env=test1
node/node1 labeled
[root@master ~]# kubectl label node node2 env=test2
node/node2 labeled
[root@master ~]# kubectl get nodes -l env!=test1
NAME     STATUS   ROLES           AGE     VERSION
master   Ready    control-plane   3d20h   v1.28.0
node2    Ready    <none>          3d20h   v1.28.0
[root@master ~]# kubectl get nodes -l "env in(test1,test2)"
NAME    STATUS   ROLES    AGE     VERSION
node1   Ready    <none>   3d20h   v1.28.0
node2   Ready    <none>   3d20h   v1.28.0

YAML声明式文件

YAML:仍是一种标记语言,但为了强调这种语言以数据做为中心,而不是以标记语言为重点。是一个可 读性高,用来表达数据序列的格式。

数据结构

  • 对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary)

  • 数组:一组按次序排列的值,又称为序列(sequence)/列表(list)

  • 纯量(scalars):单个的、不可再分的值

YAML资源对象描述方法

在kubernetes中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件称为资源 清单文件。

常用字段

参数名字段类型说明
versionStringK8S API 的版本,Pod 配置基本用v1,可通过kubectl api-versions命令查询所有可用版本
kindString定义 YAML 文件的资源类型,创建 Pod 时固定写Pod
metadataObject资源的元数据对象,固定写metadata,包含名称、命名空间等核心标识
metadata.nameString自定义 Pod 的名称,需符合 K8S 命名规范(如不能有特殊符号),例:nginx-pod
metadata.namespaceString自定义 Pod 所属的命名空间,未指定时默认使用default命名空间
specObjectPod 的详细定义对象,固定写spec,是容器配置的核心层级
spec.containers[]List(列表)容器列表,Pod 可包含一个或多个容器,是数组格式(YAML 中用-表示列表项)
spec.containers[].nameString自定义容器的名称,需在 Pod 内唯一,例:nginx-container
spec.containers[].imageString容器使用的镜像名称(含版本,未指定版本默认拉取latest),例:nginx:1.24
spec.containers[].imagePullPolicyString镜像拉取策略,可选 3 个值:1. Always:每次都重新拉取镜像2. Never:仅使用本地镜像3. IfNotPresent:本地有镜像则用本地,无则拉取(默认值)
spec.containers[].ports[]List(列表)容器需要暴露的端口列表,数组格式
spec.containers[].ports[].containerPortInteger容器内部监听的端口号(必填),例:80(nginx 的默认端口)
spec.containers[].ports[].nameString自定义端口名称(可选),需符合规范,例:http-port
spec.containers[].ports[].protocolString端口协议,可选TCP(默认)或UDP
spec.containers[].env[]List(列表)容器的环境变量列表,数组格式
spec.containers[].env[].nameString自定义环境变量名称,例:MYSQL_ROOT_PASSWORD
spec.containers[].env[].valueString环境变量对应的值,例:123456
spec.containers[].resourcesObject容器的资源限制与请求配置,用于 K8S 调度资源
spec.containers[].resources.limitsObject容器运行时的资源上限,防止占用过多集群资源
spec.containers[].resources.limits.cpuStringCPU 资源上限,单位可写core(例:1表示 1 核)或毫核(例:500m表示 0.5 核)
spec.containers[].resources.limits.memoryString内存资源上限,单位用MiB/GiB,例:1Gi(1GB)
spec.containers[].resources.requestsObject容器启动时的资源请求,K8S 根据此值调度节点
spec.containers[].resources.requests.cpuStringCPU 请求值,格式同 limits.cpu,例:500m
spec.containers[].resources.requests.memoryString内存请求值,格式同 limits.memory,例:512Mi
spec.restartPolicyStringPod 的重启策略,可选 3 个值:1. Always:容器终止就重启(默认值)2. OnFailure:仅容器非 0 退出码时重启3. Never:容器终止后永不重启

示例说明

创建namespace

[root@master test]# vim ns.yaml
[root@master test]# cat ns.yaml 
apiVersion: v1
kind: Namespace
metadata:
  name: web-test

[root@master test]# kubectl apply -f ns.yaml 
namespace/web-test created
[root@master test]# kubectl get ns
NAME                   STATUS   AGE
default                Active   3d23h
kube-node-lease        Active   3d23h
kube-public            Active   3d23h
kube-system            Active   3d23h
kubernetes-dashboard   Active   2d22h
web-test               Active   7s

创建pod资源

[root@master test]# vim tomcat.yaml
[root@master test]# cat tomcat.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: tomcat-web-content
data:
  index.html: |
    <html><body>this is yuxb</body></html>


[root@master test]# kubectl apply -f tomcat.yaml 
configmap/tomcat-web-content created
[root@master test]# kubectl get configmaps 
NAME                 DATA   AGE
kube-root-ca.crt     1      4d
tomcat-web-content   1      11s
[root@master test]# kubectl get cm
NAME                 DATA   AGE
kube-root-ca.crt     1      4d
tomcat-web-content   1      19s


[root@master test]# cat tomcat.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: tomcat-web-content
  namespace: web-test
data:
  index.html:
    <html><body><h1>this is yuxb</h1></body></html>
---
apiVersion: apps/v1        # 版本
kind: Deployment           # 控制器
metadata:                  # 元信息
  name: tomcat-test        # 控制器名称
  namespace: web-test      # 归属命名空间
spec:                      # 期望属性
  replicas: 2              # 副本数量
  selector:                # 选择器
    matchLabels:
      app: tomcat          # 和标签名称必须一致
  template:                # 容器模板
    metadata:
      labels:
        app: tomcat        # 标签名
    spec:
      securityContext:     # 程序用户和组
        runAsUser: 1000
        fsGroup: 1000
      containers:
      - name: c1                         # 容器名称
        image: tomcat:9.0.85-jdk11       # 镜像
        imagePullPolicy: IfNotPresent    # 镜像策略
        ports:
        - containerPort: 8080            # 容器端口
        volumeMounts:
        - name: web-content
          mountPath: /usr/local/tomcat/webapps/ROOT/index.html
          subPath: index.html
      volumes:                           # 数据卷
      - name: web-content
        configMap: 
          name: tomcat-web-content       # 引用configMap资源


#部署Deployment控制器管理Tomcat Pod
[root@master test]# kubectl apply -f tomcat.yaml 
configmap/tomcat-web-content configured
deployment.apps/tomcat-test created



[root@master test]# kubectl get pods -n web-test 
NAME                           READY   STATUS    RESTARTS   AGE
tomcat-test-6958bcd9bb-df4sx   1/1     Running   0          5m11s
tomcat-test-6958bcd9bb-pprwr   1/1     Running   0          5m11s


[root@master test]# kubectl get pods -n web-test -o wide 
NAME                           READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
tomcat-test-6958bcd9bb-df4sx   1/1     Running   0          17m   10.244.104.18    node2   <none>           <none>
tomcat-test-6958bcd9bb-pprwr   1/1     Running   0          17m   10.244.166.152   node1   <none>           <none>

[root@master test]# vim tomcat.yaml 
[root@master test]# cat tomcat.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: tomcat-web-content
  namespace: web-test 
data:
  index.html:
    <html><body><h1>this is yuxb</h1></body></html>
---
apiVersion: apps/v1        # 版本
kind: Deployment           # 控制器
metadata:                  # 元信息
  name: tomcat-test        # 控制器名称
  namespace: web-test      # 归属命名空间
spec:                      # 期望属性
  replicas: 2              # 副本数量
  selector:                # 选择器
    matchLabels:
      app: tomcat          # 和标签名称必须一致
  template:                # 容器模板
    metadata:
      labels:
        app: tomcat        # 标签名
    spec:
      securityContext:     # 程序用户和组
        runAsUser: 1000
        fsGroup: 1000
      containers:
      - name: c1                         # 容器名称
        image: tomcat:9.0.85-jdk11       # 镜像
        imagePullPolicy: IfNotPresent    # 镜像策略
        ports:
        - containerPort: 8080            # 容器端口
        volumeMounts:
        - name: web-content
          mountPath: /usr/local/tomcat/webapps/ROOT/index.html
          subPath: index.html
      volumes:                           # 数据卷
      - name: web-content
        configMap: 
          name: tomcat-web-content       # 引用configMap资源
---
apiVersion: v1
kind: Service
metadata:
  name: tomcat-svc
  namespace: web-test
spec:
  type: NodePort
  selector:
    app: tomcat #必须与标签保持一致
  ports:
  - port: 80
    targetPort: 8080
    nodePort: 30080



#创建服务
[root@master test]# kubectl apply -f tomcat.yaml 
configmap/tomcat-web-content unchanged
deployment.apps/tomcat-test unchanged
service/tomcat-svc created


[root@master test]# kubectl get svc | grep tomcat
tomcat-svc   NodePort    10.102.62.58     <none>        80:30080/TCP   39s


[root@master test]# kubectl get pods,svc,endpoints -n web-test 
NAME                               READY   STATUS    RESTARTS   AGE
pod/tomcat-test-6958bcd9bb-cvgss   1/1     Running   0          4s
pod/tomcat-test-6958bcd9bb-mkx2z   1/1     Running   0          4s

NAME                 TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/tomcat-svc   NodePort   10.102.244.64   <none>        80:30080/TCP   4s

NAME                   ENDPOINTS                                AGE
endpoints/tomcat-svc   10.244.104.19:8080,10.244.166.153:8080   4s
[root@master test]# kubectl get pods -n web-test -o wide 
NAME                           READY   STATUS    RESTARTS   AGE     IP               NODE    NOMINATED NODE   READINESS GATES
tomcat-test-6958bcd9bb-cvgss   1/1     Running   0          4m51s   10.244.166.153   node1   <none>           <none>
tomcat-test-6958bcd9bb-mkx2z   1/1     Running   0          4m51s   10.244.104.19    node2   <none>           <none>



#验证访问
[root@master test]# curl http://10.102.244.64
<html><body><h1>this is yuxb</h1></body></html>

在这里插入图片描述

资源类型核心作用本次实操中的应用
Namespace资源隔离隔离 Tomcat 相关资源到 web-test
ConfigMap配置解耦(存储非敏感配置)存储自定义 index.html 页面
Deployment管理 Pod 生命周期(多副本、自愈)保障 2 个 Tomcat Pod 稳定运行
Service(NodePort)暴露 Pod 服务(固定访问入口)通过节点端口 30080 暴露 Tomcat 服务

命名空间(Namespace)

  • Namespace是对一组资源和对象的抽象集合。

  • 常见的 pod, service,deployment 等都是属于某一个namespace的(默认是 default)。

  • 不是所有资源都属于namespace,如nodes,persistent volume,namespace 等资源则不属于任 何namespace。

查看namespace

[root@master test]# kubectl get namespaces
NAME                   STATUS   AGE
default                Active   4d19h
kube-node-lease        Active   4d19h
kube-public            Active   4d19h
kube-system            Active   4d19h
kubernetes-dashboard   Active   3d17h
web-test               Active   19h
#为指定的ns对象会被分配在default命名空间

查看namespace中的资源

[root@master test]# kubectl get all --namespace=kube-system 
NAME                                           READY   STATUS    RESTARTS      AGE
pod/calico-kube-controllers-658d97c59c-tk2pk   1/1     Running   5 (16h ago)   4d18h
pod/calico-node-gj5x5                          1/1     Running   0             12m
pod/calico-node-v55hs                          1/1     Running   0             12m
pod/calico-node-wkp7r                          1/1     Running   0             11m
pod/coredns-66f779496c-26pcb                   1/1     Running   5 (16h ago)   4d19h
pod/coredns-66f779496c-wpc57                   1/1     Running   5 (16h ago)   4d19h
pod/etcd-master                                1/1     Running   5 (16h ago)   4d19h
pod/kube-apiserver-master                      1/1     Running   5 (16h ago)   4d19h
pod/kube-controller-manager-master             1/1     Running   5 (16h ago)   4d19h
pod/kube-proxy-cd8gk                           1/1     Running   5 (16h ago)   4d18h
pod/kube-proxy-q8prd                           1/1     Running   5 (16h ago)   4d19h
pod/kube-proxy-xtfxw                           1/1     Running   5 (16h ago)   4d18h
pod/kube-scheduler-master                      1/1     Running   5 (16h ago)   4d19h
pod/metrics-server-57999c5cf7-bxjn7            1/1     Running   5 (16h ago)   3d22h

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
service/kube-dns         ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP   4d19h
service/metrics-server   ClusterIP   10.104.124.222   <none>        443/TCP                  3d22h

NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/calico-node   3         3         3       3            3           kubernetes.io/os=linux   4d18h
daemonset.apps/kube-proxy    3         3         3       3            3           kubernetes.io/os=linux   4d19h

NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/calico-kube-controllers   1/1     1            1           4d18h
deployment.apps/coredns                   2/2     2            2           4d19h
deployment.apps/metrics-server            1/1     1            1           3d22h

NAME                                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/calico-kube-controllers-658d97c59c   1         1         1       4d18h
replicaset.apps/coredns-66f779496c                   2         2         2       4d19h
replicaset.apps/metrics-server-57999c5cf7            1         1         1       3d22h

查看所有pod资源

[root@master test]# kubectl get pods -A
NAMESPACE              NAME                                         READY   STATUS    RESTARTS      AGE
default                nginx-7854ff8877-4lss5                       1/1     Running   5 (16h ago)   4d18h
default                nginx-7854ff8877-fzbfm                       1/1     Running   5 (16h ago)   4d18h
default                nginx-7854ff8877-mrmww                       1/1     Running   5 (16h ago)   4d18h
kube-system            calico-kube-controllers-658d97c59c-tk2pk     1/1     Running   5 (16h ago)   4d18h
kube-system            calico-node-gj5x5                            1/1     Running   0             12m
kube-system            calico-node-v55hs                            1/1     Running   0             13m
kube-system            calico-node-wkp7r                            1/1     Running   0             12m
kube-system            coredns-66f779496c-26pcb                     1/1     Running   5 (16h ago)   4d19h
kube-system            coredns-66f779496c-wpc57                     1/1     Running   5 (16h ago)   4d19h
kube-system            etcd-master                                  1/1     Running   5 (16h ago)   4d19h
kube-system            kube-apiserver-master                        1/1     Running   5 (16h ago)   4d19h
kube-system            kube-controller-manager-master               1/1     Running   5 (16h ago)   4d19h
kube-system            kube-proxy-cd8gk                             1/1     Running   5 (16h ago)   4d18h
kube-system            kube-proxy-q8prd                             1/1     Running   5 (16h ago)   4d19h
kube-system            kube-proxy-xtfxw                             1/1     Running   5 (16h ago)   4d18h
kube-system            kube-scheduler-master                        1/1     Running   5 (16h ago)   4d19h
kube-system            metrics-server-57999c5cf7-bxjn7              1/1     Running   5 (16h ago)   3d22h
kubernetes-dashboard   dashboard-metrics-scraper-5657497c4c-plsqd   1/1     Running   3 (16h ago)   3d17h
kubernetes-dashboard   kubernetes-dashboard-746fbfd67c-6zxnm        1/1     Running   3 (16h ago)   3d17h
web-test               tomcat-test-6958bcd9bb-cvgss                 1/1     Running   1 (16h ago)   17h
web-test               tomcat-test-6958bcd9bb-mkx2z                 1/1     Running   1 (16h ago)   17h

创建namespace

可以使用 kubectl edit 资源类型 资源名 编辑资源的YAML语法

命令行创建
[root@master test]# kubectl create namespace web1
namespace/web1 created
[root@master test]# kubectl get ns
NAME                   STATUS   AGE
default                Active   4d19h
kube-node-lease        Active   4d19h
kube-public            Active   4d19h
kube-system            Active   4d19h
kubernetes-dashboard   Active   3d18h
web-test               Active   19h
web1                   Active   3s

yaml文件创建
#在线编辑已有命名空间配置
[root@master test]# kubectl edit namespaces web1
Edit cancelled, no changes made.


#查看K8S中web1命名空间的完整配置和状态信息
[root@master test]# kubectl get ns web1 -o yaml 
apiVersion: v1
kind: Namespace
metadata:
  creationTimestamp: "2025-11-18T01:40:48Z"
  labels:
    kubernetes.io/metadata.name: web1
  name: web1
  resourceVersion: "76284"
  uid: 1ea73ddd-e021-49c7-88f4-d970fa6857e4
spec:
  finalizers:
  - kubernetes
status:
  phase: Active



#编写文件
[root@master test]# vim create_web2.yaml
[root@master test]# cat create_web2.yaml 
apiVersion: v1
kind: Namespace
metadata:
 name: web2
[root@master test]# kubectl apply -f create_web2.yaml 
namespace/web2 created
[root@master test]# kubectl get ns
NAME                   STATUS   AGE
default                Active   4d19h
kube-node-lease        Active   4d19h
kube-public            Active   4d19h
kube-system            Active   4d19h
kubernetes-dashboard   Active   3d18h
web-test               Active   19h
web2                   Active   7s

删除namespace

  • 删除一个namespace会自动删除所有属于该namespace的资源

  • default,kube-system,kube-public命名空间不可删除

命令删除
[root@master test]# kubectl delete namespaces web1
namespace "web1" deleted

yaml删除
[root@master test]# kubectl delete -f create_web2.yaml 
namespace "web2" deleted
[root@master test]# kubectl get ns
NAME                   STATUS   AGE
default                Active   4d19h
kube-node-lease        Active   4d19h
kube-public            Active   4d19h
kube-system            Active   4d19h
kubernetes-dashboard   Active   3d18h
web-test               Active   19h

e

  • 删除一个namespace会自动删除所有属于该namespace的资源

  • default,kube-system,kube-public命名空间不可删除

命令删除
[root@master test]# kubectl delete namespaces web1
namespace "web1" deleted

yaml删除
[root@master test]# kubectl delete -f create_web2.yaml 
namespace "web2" deleted
[root@master test]# kubectl get ns
NAME                   STATUS   AGE
default                Active   4d19h
kube-node-lease        Active   4d19h
kube-public            Active   4d19h
kube-system            Active   4d19h
kubernetes-dashboard   Active   3d18h
web-test               Active   19h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值