Kubernetes (K8s)学习笔记(第三期):集群基础管理

本笔记为 Kubernetes 系列第三期,聚焦集群日常运维管理。涵盖:节点管理(查看、维护、删除)、集群删除与重建、Namespace 资源隔离、Namespace 切换、集群上下文切换(多集群管理)、集群排错基础、资源操作基础。所有命令均来自课堂笔记,经过整理和注释。全文 90+ 命令示例15 张对比表格,是 Kubernetes 集群管理员的必备参考。

— Compiled and Authored by Whisky — June 24th, 2026

目录

  1. 节点管理
  2. 集群删除与重建
  3. Namespace 管理
  4. Namespace 切换
  5. 集群上下文切换
  6. 集群排错基础
  7. 资源操作基础
  8. 总结与知识点一览表

一、节点管理

1.1 查看节点

查看节点清单
[root@master30 ~]# kubectl get nodes
NAME                  STATUS   ROLES           AGE   VERSION
master30.laoma.cloud   Ready    control-plane   37h   v1.30.2
worker31.laoma.cloud   Ready    <none>          36h   v1.30.2
worker32.laoma.cloud   Ready    <none>          36h   v1.30.2

输出列说明

说明
NAME 节点主机名
STATUS 节点状态
ROLES 节点角色(control-plane / node / )
AGE 节点运行时间
VERSION Kubernetes 版本
节点状态(STATUS)详解
状态 含义 可能原因
Ready 节点正常,可调度 Pod 所有组件健康
NotReady 节点不可用 kubelet 未运行、网络插件故障、swap 未关闭
Unknown 状态未知 网络中断、节点宕机、kubelet 无法上报心跳
SchedulingDisabled 调度禁用 节点被 cordon(维护模式)

💡 思维误区:很多新手认为 NotReady 就是节点完全宕机了。实际上,NotReady 可能只是 kubelet 服务停止,但节点操作系统仍在运行,可以 SSH 上去排查。而 Unknown 通常意味着网络不通,节点可能已经无法访问。

节点状况(Conditions)

节点状态背后是多个 Condition 的综合结果。使用 kubectl describe node 可以查看:

[root@master30 ~]# kubectl describe node worker31.whisky.cloud | grep -A6 Conditions
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Tue, 18 Jun 2024 10:00:00 +0000   Mon, 17 Jun 2024 08:00:00 +0000   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Tue, 18 Jun 2024 10:00:00 +0000   Mon, 17 Jun 2024 08:00:00 +0000   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Tue, 18 Jun 2024 10:00:00 +0000   Mon, 17 Jun 2024 08:00:00 +0000   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Tue, 18 Jun 2024 10:00:00 +0000   Mon, 17 Jun 2024 08:00:00 +0000   KubeletReady                 kubelet is posting ready status

各 Condition 含义

Condition 含义 True 表示
MemoryPressure 内存压力 内存不足,可能驱逐 Pod
DiskPressure 磁盘压力 磁盘空间不足
PIDPressure PID 压力 进程数过多
Ready 节点就绪 节点可正常接收 Pod

🔧 排故思路:当节点状态异常时,不要只看 STATUS 列,一定要用 kubectl describe node 查看 Conditions。例如,如果 MemoryPressure 为 True,说明节点内存不足,可能的原因包括 Pod 资源请求过大、内存泄漏、或节点本身内存不足。此时可查看 kubectl top nodes 确认实际内存使用情况。

查看节点资源容量
[root@master30 ~]# kubectl describe node worker31.laoma.cloud | grep -A4 Capacity
Capacity:
  cpu:                2
  memory:             3889808Ki
  pods:               110
Allocatable:
  cpu:                2
  memory:             3787408Ki
  pods:               110

Capacity vs Allocatable

概念 含义 关系
Capacity 节点总资源量 硬件实际配置
Allocatable 可供 Pod 使用的资源量 Capacity - 系统预留 - kubelet 预留

💡 思维误区:有些管理员认为 Capacity 就是 Pod 可用资源,实际上 Allocatable 才是真正的可用资源。系统组件(如 kubelet、容器运行时)会占用一部分资源,因此 Allocatable 总是小于 Capacity。理解这一点有助于避免 Pod 资源不足的误判。

1.2 节点维护模式(cordon / drain / uncordon)

在进行节点维护(如升级内核、更换硬件)时,需要将节点上的 Pod 安全迁移。

步骤 1:标记节点为不可调度(cordon)

[root@master30 ~]# kubectl cordon worker31.laoma.cloud
node/worker31.laoma.cloud cordoned

cordon 的作用是阻止新的 Pod 调度到该节点,但不会驱逐已有的 Pod。相当于在节点门口挂上“暂停接待”的牌子。

步骤 2:驱逐节点上的 Pod(drain)

[root@master30 ~]# kubectl drain worker31.laoma.cloud --ignore-daemonsets
node/worker31.laoma.cloud already cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-v8jdn, kube-system/kube-proxy-27vl2
evicting pod kube-system/calico-kube-controllers-7cb4fd5784-jx2xl
pod/calico-kube-controllers-7cb4fd5784-jx2xl evicted
node/worker31.laoma.cloud drained

drain 执行流程

  1. 自动先执行 cordon(如果未手动执行)
  2. 驱逐节点上的所有 Pod(除 DaemonSet 管理的 Pod)
  3. 等待 Pod 在其他节点重新创建完成
  4. 标记节点为“已排空”

常用参数

参数 作用
--ignore-daemonsets 忽略 DaemonSet 管理的 Pod
--force 强制驱逐无法正常终止的 Pod
--delete-emptydir-data 删除使用 emptyDir 的 Pod
--grace-period=30 优雅终止宽限期(秒)

🔧 排故思路:如果 drain 卡住,可能是某个 Pod 无法正常终止。此时可以:

  1. 检查该 Pod 是否有 PodDisruptionBudget 限制,阻止驱逐。
  2. 使用 kubectl delete pod <pod> --force --grace-period=0 强制删除(谨慎操作)。
  3. 检查节点上是否有非控制器管理的裸 Pod(没有 ReplicaSet/Deployment 管理),这类 Pod 无法被重新调度,需手动处理。

步骤 3:恢复调度(uncordon)

[root@master30 ~]# kubectl uncordon worker31.laoma.cloud
node/worker31.laoma.cloud uncordoned

1.3 删除节点

当节点需要永久下线时,执行以下步骤:

# 1. 驱逐节点上所有 Pod
[root@master30 ~]# kubectl drain worker31.laoma.cloud --ignore-daemonsets --force

# 2. 从集群中删除节点
[root@master30 ~]# kubectl delete node worker31.laoma.cloud
node "worker31.laoma.cloud" deleted

# 3. 在被删除的节点上重置集群状态
[root@worker31 ~]# kubeadm reset -f

⚠️ 残留清理提醒kubeadm reset 不会自动清理 CNI 配置(/etc/cni/net.d/)和 iptables/IPVS 规则。手动清理:

rm -rf /etc/cni/net.d
iptables -F && iptables -t nat -F
ipvsadm --clear

💡 思维误区:有人认为删除节点后,该节点上的 Pod 会自动迁移到其他节点。实际上,只有被控制器(如 Deployment、StatefulSet)管理的 Pod 才会自动重建并调度到其他节点。裸 Pod(直接用 kubectl run 创建的)删除后不会自动恢复。

1.4 节点标签与污点预览

标签(Labels) 用于节点选择和调度:

[root@master30 ~]# kubectl label nodes worker31.laoma.cloud node-type=high-memory
node/worker31.laoma.cloud labeled
[root@master30 ~]# kubectl get nodes --show-labels

污点与容忍(Taints & Tolerations) 用于控制哪些 Pod 可以调度到节点:

[root@master30 ~]# kubectl taint nodes worker31.laoma.cloud disktype=ssd:NoSchedule
node/worker31.laoma.cloud tainted

污点和容忍是调度的高级特性,后续笔记会详细展开。

1.5 节点资源监控

[root@master30 ~]# kubectl top nodes
NAME                  CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
master30.laoma.cloud  150m         7%     2500Mi          65%
worker31.laoma.cloud  80m          4%     1800Mi          47%
worker32.laoma.cloud  90m          4%     1900Mi          50%

注意kubectl top 需要 Metrics Server 已部署。

二、集群删除与重建

2.1 完整删除流程

步骤 1:删除所有 Worker 节点

[root@master30 ~]# kubectl drain worker31.laoma.cloud --ignore-daemonsets --force
[root@master30 ~]# kubectl drain worker32.laoma.cloud --ignore-daemonsets --force
[root@master30 ~]# kubectl delete node worker31.laoma.cloud worker32.laoma.cloud
[root@worker31 ~]# kubeadm reset -f
[root@worker32 ~]# kubeadm reset -f

步骤 2:删除 Master 节点

# 备份集群配置
[root@master30 ~]# kubectl get cm kubeadm-config -n kube-system -o yaml > kubeadm.yml

# 删除 Master 节点
[root@master30 ~]# kubectl delete node master30.laoma.cloud
[root@master30 ~]# kubeadm reset -f
[root@master30 ~]# rm -fr .kube/

2.2 使用配置文件重建集群

准备 kubeadm 配置文件kubeadm.yml):

apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.k8s.io
kind: ClusterConfiguration
kubernetesVersion: v1.30.2
networking:
  dnsDomain: cluster.local
  podSubnet: 10.224.0.0/16
  serviceSubnet: 10.96.0.0/12
scheduler: {}

初始化集群

[root@master30 ~]# kubeadm init --config kubeadm.yml
[root@master30 ~]# mkdir -p $HOME/.kube
[root@master30 ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master30 ~]# chown $(id -u):$(id -g) $HOME/.kube/config
[root@master30 ~]# kubectl apply -f calico.yaml
[root@worker31 ~]# kubeadm join ...

2.3 证书过期处理

Kubernetes 证书默认有效期为 1 年。查看证书过期时间:

[root@master30 ~]# kubeadm certs check-expiration
CERTIFICATE                EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
admin.conf                 Jun 18, 2025 10:00 UTC   364d            no
apiserver                  Jun 18, 2025 10:00 UTC   364d            no
...

更新证书

[root@master30 ~]# kubeadm certs renew all
[root@master30 ~]# systemctl restart kubelet

💡 思维误区:有些管理员认为证书过期后必须重建集群。实际上,kubeadm certs renew 可以原地更新证书,无需重建。但更新后需要重启相关组件(kube-apiserver、kubelet 等)。

2.4 etcd 备份与恢复概念预览

备份 etcd

[root@master30 ~]# ETCDCTL_API=3 etcdctl snapshot save /data/etcd-backup.db \
    --endpoints=https://127.0.0.1:2379 \
    --cacert=/etc/kubernetes/pki/etcd/ca.crt \
    --cert=/etc/kubernetes/pki/etcd/server.crt \
    --key=/etc/kubernetes/pki/etcd/server.key

三、Namespace 管理

3.1 Namespace 概念

Namespace(命名空间) 是 Kubernetes 中用于资源隔离的机制,可以将一个物理集群逻辑上划分成多个虚拟集群。

默认 Namespace

Namespace 用途
default 默认命名空间,未指定时使用
kube-system Kubernetes 系统组件
kube-public 所有用户(包括未认证用户)可读
kube-node-lease 节点租约(kubelet 心跳)

思考:所有对象都属于 Namespace 吗?

答:不是。 大多数资源(Pod、Service、Deployment)属于某个 Namespace,但 Namespace 本身不属于任何 NamespaceNodePersistentVolume 也不属于任何 Namespace。这些是"全局资源"。

3.2 Namespace 操作

查看 Namespace

[root@master30 ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   7d4h
kube-node-lease   Active   7d4h
kube-public       Active   7d4h
kube-system       Active   7d4h

查看 Namespace 详情

[root@master30 ~]# kubectl describe ns kube-system
Name:         kube-system
Labels:       kubernetes.io/metadata.name=kube-system
Annotations:  <none>
Status:       Active

No resource quota.      # 无资源配额
No LimitRange resource. # 无限制范围

创建 Namespace

# 命令行创建
[root@master30 ~]# kubectl create ns laoma
namespace/laoma created

# YAML 文件创建
[root@master30 ~]# cat > ns-laoma.yaml <<EOF
apiVersion: v1
kind: Namespace
metadata:
  name: laoma
EOF
[root@master30 ~]# kubectl apply -f ns-laoma.yaml

删除 Namespace

[root@master30 ~]# kubectl delete ns laoma
namespace "laoma" deleted

⚠️ 重要警告:删除 Namespace 会级联删除该命名空间中的所有资源(Pod、Service、Deployment 等)。defaultkube-system 命名空间不可删除。

3.3 在指定 Namespace 中操作

# 使用 -n 选项指定 Namespace
[root@master30 ~]# kubectl run web --image=nginx -n laoma
pod/web created

[root@master30 ~]# kubectl get pods -n laoma
NAME   READY   STATUS    RESTARTS   AGE
web    1/1     Running   0          39s

3.4 ResourceQuota(资源配额)

限制 Namespace 中资源的总用量:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: quota
  namespace: laoma
spec:
  hard:
    requests.cpu: "2"
    requests.memory: "2Gi"
    limits.cpu: "4"
    limits.memory: "4Gi"
    persistentvolumeclaims: "5"
    pods: "10"
[root@master30 ~]# kubectl apply -f resourcequota.yaml
[root@master30 ~]# kubectl describe quota -n laoma
Name:            quota
Namespace:       laoma
Resource         Used  Hard
--------         ----  ----
limits.cpu       0     4
limits.memory    0     4Gi
pods             0     10
requests.cpu     0     2
requests.memory  0     2Gi

🔧 排故思路:当 Pod 无法创建时,可能是 ResourceQuota 已用尽。检查 kubectl describe quota -n <namespace> 查看各资源的使用情况,以及 Pod 的事件信息。

3.5 LimitRange(限制范围)

限制 Pod 或容器的默认资源值:

apiVersion: v1
kind: LimitRange
metadata:
  name: limits
  namespace: laoma
spec:
  limits:
  - max:
      cpu: "1"
      memory: "1Gi"
    min:
      cpu: "100m"
      memory: "128Mi"
    default:
      cpu: "500m"
      memory: "512Mi"
    defaultRequest:
      cpu: "200m"
      memory: "256Mi"
    type: Container

四、Namespace 切换

4.1 使用 kubectl config 切换

查看当前上下文

[root@master30 ~]# kubectl config get-contexts
CURRENT   NAME                          CLUSTER      AUTHINFO          NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin

设置当前上下文的默认 Namespace

[root@master30 ~]# kubectl config set-context --current --namespace=laoma
Context "kubernetes-admin@kubernetes" modified.

[root@master30 ~]# kubectl config get-contexts
CURRENT   NAME                          CLUSTER      AUTHINFO        NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   laoma

4.2 kubens 工具

安装

[root@master30 ~]# wget https://codeload.github.com/ahmetb/kubectx/zip/refs/heads/master -O kubectx.zip
[root@master30 ~]# unzip kubectx.zip
[root@master30 ~]# cp kubectx-master/kubens /usr/local/bin/
[root@master30 ~]# chmod +x /usr/local/bin/kubens
[root@master30 ~]# cp kubectx-master/completion/kubens.bash /etc/bash_completion.d/
[root@master30 ~]# source /etc/bash_completion.d/kubens.bash

使用

# 列出所有 Namespace
[root@master30 ~]# kubens
default
kube-node-lease
kube-public
kube-system
*laoma

# 切换到 kube-system
[root@master30 ~]# kubens kube-system
Active namespace is "kube-system".

# 查看当前 Namespace
[root@master30 ~]# kubens -c
kube-system

# 切换到上一个 Namespace
[root@master30 ~]# kubens -

五、集群上下文切换

5.1 ~/.kube/config 文件结构

apiVersion: v1
clusters:                      # 集群列表
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://10.1.8.30:6443
  name: kubernetes
contexts:                      # 上下文列表
- context:
    cluster: kubernetes
    namespace: laoma
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:                         # 用户列表
- name: kubernetes-admin
  user:
    client-certificate-data: DATA+OMITTED
    client-key-data: DATA+OMITTED

三要素:Clusters(目的地)+ Users(身份)+ Contexts(行程单)

5.2 多集群配置示例

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://10.1.8.30:6443
  name: cluster1
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://10.1.8.150:6443
  name: cluster2
contexts:
- context:
    cluster: cluster1
    namespace: default
    user: cluster1-admin
  name: cluster1-context
- context:
    cluster: cluster2
    namespace: default
    user: cluster2-admin
  name: cluster2-context
current-context: cluster1-context
kind: Config
preferences: {}
users:
- name: cluster1-admin
  user:
    client-certificate-data: DATA+OMITTED
    client-key-data: DATA+OMITTED
- name: cluster2-admin
  user:
    client-certificate-data: DATA+OMITTED
    client-key-data: DATA+OMITTED

5.3 多 KUBECONFIG 环境变量

# 合并多个配置文件
[root@master30 ~]# export KUBECONFIG=/root/.kube/config:/root/cluster2.conf
[root@master30 ~]# kubectl config view --flatten > /root/merged.conf

5.4 使用 kubectl config 切换

# 查看集群列表
[root@master30 ~]# kubectl config get-clusters
NAME
cluster1
cluster2

# 查看上下文列表
[root@master30 ~]# kubectl config get-contexts
CURRENT   NAME               CLUSTER    AUTHINFO         NAMESPACE
*         cluster1-context   cluster1   cluster1-admin   default
          cluster2-context   cluster2   cluster2-admin   default

# 切换上下文
[root@master30 ~]# kubectl config use-context cluster2-context
Switched to context "cluster2-context".

5.5 kubectx 工具

# 列出所有上下文
[root@master30 ~]# kubectx
cluster1-context
cluster2-context

# 查看当前上下文
[root@master30 ~]# kubectx -c
cluster1-context

# 切换到指定上下文
[root@master30 ~]# kubectx cluster2-context
Switched to context "cluster2-context".

# 切换到上一个上下文
[root@master30 ~]# kubectx -

# 取消当前上下文
[root@master30 ~]# kubectx -u

六、集群排错基础

6.1 查看集群事件

[root@master30 ~]# kubectl get events --all-namespaces --sort-by='.lastTimestamp'
NAMESPACE   LASTSEEN   TYPE     REASON                 OBJECT                        MESSAGE
kube-system 2m         Normal   Scheduled              pod/calico-node-4b6s8         Successfully assigned...
kube-system 1m         Normal   Pulled                 pod/calico-node-4b6s8         Container image "calico/node" already present
...

常用过滤

# 查看特定 Namespace 的事件
[root@master30 ~]# kubectl get events -n kube-system

# 查看警告级别事件
[root@master30 ~]# kubectl get events --field-selector type=Warning

# 实时监控事件
[root@master30 ~]# kubectl get events -w

🔧 排故思路:当 Pod 无法启动时,kubectl get events 是最快的诊断途径。常见事件及含义:

  • FailedScheduling:Pod 无法调度,检查节点资源或污点。
  • FailedMount:存储卷挂载失败,检查 PV/PVC 状态。
  • ErrImagePull / ImagePullBackOff:镜像拉取失败,检查镜像名或私有仓库认证。

6.2 kubectl describe 深度使用

# 查看节点详细状态(含 Conditions、资源、事件)
[root@master30 ~]# kubectl describe node worker31.laoma.cloud

# 查看 Pod 详细状态(含事件、容器状态)
[root@master30 ~]# kubectl describe pod web

# 查看 Service 详情
[root@master30 ~]# kubectl describe svc nginx-test

describe 命令是排错的首选工具。重点关注:

  • Conditions:节点状况
  • Events:最近事件(排错关键)
  • Containers:容器状态、重启原因

6.3 常见集群故障排查流程

问题现象 排查步骤
节点 NotReady systemctl status kubeletjournalctl -u kubelet -n 50 ③ 检查 swap 是否关闭 ④ 检查网络插件
Pod Pending kubectl describe pod 查看事件 ② 检查节点资源是否充足 ③ 检查污点/容忍
API Server 不可达 ① 检查 kube-apiserver Pod 状态 ② systemctl status kubelet ③ 检查 6443 端口
证书过期 kubeadm certs check-expiration

6.4 查看 kubelet 日志

# 查看 kubelet 日志
[root@master30 ~]# journalctl -u kubelet -n 50

# 实时跟踪 kubelet 日志
[root@master30 ~]# journalctl -u kubelet -f

# 查看特定时间段的日志
[root@master30 ~]# journalctl -u kubelet --since "2024-06-18 10:00:00" --until "2024-06-18 10:10:00"

七、资源操作基础

7.1 kubectl 命令分类

操作类型 命令 用途
创建 create / apply 创建资源
查看 get / describe 查询资源状态
更新 edit / patch / apply 修改资源配置
删除 delete 删除资源
调试 logs / exec / port-forward 调试 Pod

7.2 命令式 vs 声明式管理

方式 特点 适用场景
命令式kubectl create/delete 直接操作,快速,无需 YAML 临时、测试、单次操作
声明式kubectl apply -f 通过 YAML 描述期望状态,GitOps 友好 生产环境、版本管理、自动化

声明式管理优势

  • 配置即代码(IaC)
  • 支持版本控制(Git)
  • 支持回滚
  • 支持 CI/CD 集成

7.3 dry-run 与 diff

# 预览资源 YAML(不创建)
[root@master30 ~]# kubectl run web --image=nginx --dry-run=client -o yaml

# 预览变更(apply 前查看差异)
[root@master30 ~]# kubectl diff -f web.yaml

7.4 常用 kubectl 别名与快捷键

# 常用别名
alias k='kubectl'
alias kg='kubectl get'
alias kd='kubectl describe'
alias kgp='kubectl get pods'
alias kgn='kubectl get nodes'
alias kgs='kubectl get svc'

# 命令补全
[root@master30 ~]# source <(kubectl completion bash)

八、总结与知识点一览表

8.1 核心知识点汇总

模块 核心概念 关键命令
节点管理 cordon / drain / uncordon kubectl get nodes, kubectl cordon, kubectl drain, kubectl uncordon
节点删除 kubeadm reset kubectl delete node, kubeadm reset -f
集群重建 kubeadm config kubeadm init --config, kubeadm certs renew
Namespace 资源隔离、ResourceQuota kubectl get ns, kubectl create ns, kubectl delete ns
Namespace 切换 kubens kubectl config set-context, kubens
上下文切换 kubectx kubectl config get-contexts, kubectl config use-context, kubectx
集群排错 events / describe / journalctl kubectl get events, kubectl describe, journalctl -u kubelet
资源操作 apply / create / dry-run kubectl apply -f, kubectl create, kubectl diff, kubectl --dry-run

8.2 常用命令速查

操作 命令
查看节点 kubectl get nodes
节点维护 kubectl cordon/drain/uncordon <node>
删除节点 kubectl delete node <node>
重置节点 kubeadm reset -f
查看 Namespace kubectl get ns
创建 Namespace kubectl create ns <name>
删除 Namespace kubectl delete ns <name>
切换 Namespace kubectl config set-context --current --namespace=<ns>
查看上下文 kubectl config get-contexts
切换上下文 kubectl config use-context <name>
查看事件 kubectl get events --all-namespaces
查看日志 journalctl -u kubelet -f

8.3 常见错误排查

错误 原因 解决方法
The node is cordoned 节点处于维护模式 kubectl uncordon <node>
Cannot delete default namespace 系统命名空间保护 无法删除
error: current-context must be set 未设置上下文 kubectl config use-context <name>
connection refused API Server 不可达 检查集群网络和 API Server
节点 NotReady kubelet 未运行 systemctl status kubelet
Pod Pending 资源不足或调度限制 kubectl describe pod

下一期预告:Kubernetes Pod 管理——单容器 Pod、多容器 Pod、Pod 生命周期、restartPolicy、Init Container、静态 Pod、pause 容器深度解析。

— Compiled and Authored by Whisky — June 24th, 2026
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐