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=value | app=nginx | 筛选 “key 对应值完全等于 value” 的资源(单值精确匹配) |
| 排除匹配 | key!=value | env!=dev | 筛选 “key 对应值不等于 value” 的资源(单值排除) | |
| 集合匹配 | 集合内包含 | key in (v1,v2) | env in (prod, staging) | 筛选 “key 对应值属于指定集合” 的资源(多值批量匹配) |
| 集合外排除 | key notin (v1) | tier notin (backend) | 筛选 “key 对应值不属于指定集合” 的资源(多值排除) | |
| 键存在性检查 | key | service | 仅筛选 “存在该标签 key” 的资源(不校验对应值) |
关键特性
- 语法统一:所有规则以 “标签 key” 开头,通过
=!=in/notin或直接写 key 的方式区分逻辑,无额外复杂语法,易记易用; - 场景覆盖:等值匹配适配 “单值精准定位”(如指定应用、排除测试环境),集合匹配适配 “多值批量筛选”(如选中生产 / 预发环境)或 “仅需标签存在”(如标记特殊资源);
- 逻辑清晰:按 “类别 - 子类型” 分层,表格整合核心信息,无需跨章节查找,快速定位所需规则。
[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文件称为资源 清单文件。
常用字段
| 参数名 | 字段类型 | 说明 |
|---|---|---|
| version | String | K8S API 的版本,Pod 配置基本用v1,可通过kubectl api-versions命令查询所有可用版本 |
| kind | String | 定义 YAML 文件的资源类型,创建 Pod 时固定写Pod |
| metadata | Object | 资源的元数据对象,固定写metadata,包含名称、命名空间等核心标识 |
| metadata.name | String | 自定义 Pod 的名称,需符合 K8S 命名规范(如不能有特殊符号),例:nginx-pod |
| metadata.namespace | String | 自定义 Pod 所属的命名空间,未指定时默认使用default命名空间 |
| spec | Object | Pod 的详细定义对象,固定写spec,是容器配置的核心层级 |
| spec.containers[] | List(列表) | 容器列表,Pod 可包含一个或多个容器,是数组格式(YAML 中用-表示列表项) |
| spec.containers[].name | String | 自定义容器的名称,需在 Pod 内唯一,例:nginx-container |
| spec.containers[].image | String | 容器使用的镜像名称(含版本,未指定版本默认拉取latest),例:nginx:1.24 |
| spec.containers[].imagePullPolicy | String | 镜像拉取策略,可选 3 个值:1. Always:每次都重新拉取镜像2. Never:仅使用本地镜像3. IfNotPresent:本地有镜像则用本地,无则拉取(默认值) |
| spec.containers[].ports[] | List(列表) | 容器需要暴露的端口列表,数组格式 |
| spec.containers[].ports[].containerPort | Integer | 容器内部监听的端口号(必填),例:80(nginx 的默认端口) |
| spec.containers[].ports[].name | String | 自定义端口名称(可选),需符合规范,例:http-port |
| spec.containers[].ports[].protocol | String | 端口协议,可选TCP(默认)或UDP |
| spec.containers[].env[] | List(列表) | 容器的环境变量列表,数组格式 |
| spec.containers[].env[].name | String | 自定义环境变量名称,例:MYSQL_ROOT_PASSWORD |
| spec.containers[].env[].value | String | 环境变量对应的值,例:123456 |
| spec.containers[].resources | Object | 容器的资源限制与请求配置,用于 K8S 调度资源 |
| spec.containers[].resources.limits | Object | 容器运行时的资源上限,防止占用过多集群资源 |
| spec.containers[].resources.limits.cpu | String | CPU 资源上限,单位可写core(例:1表示 1 核)或毫核(例:500m表示 0.5 核) |
| spec.containers[].resources.limits.memory | String | 内存资源上限,单位用MiB/GiB,例:1Gi(1GB) |
| spec.containers[].resources.requests | Object | 容器启动时的资源请求,K8S 根据此值调度节点 |
| spec.containers[].resources.requests.cpu | String | CPU 请求值,格式同 limits.cpu,例:500m |
| spec.containers[].resources.requests.memory | String | 内存请求值,格式同 limits.memory,例:512Mi |
| spec.restartPolicy | String | Pod 的重启策略,可选 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
1152

被折叠的 条评论
为什么被折叠?



