Kubernetes(k8s)的基础概念有哪些?

文章导读
Kubernetes(简称 K8s)是一个开源的容器编排引擎,核心用于自动化部署、扩展和管理容器化应用,最适合需要大规模管理容器集群的场景。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

Kubernetes(简称 K8s)是一个开源的容器编排引擎,核心用于自动化部署、扩展和管理容器化应用,最适合需要大规模管理容器集群的场景。

先说结论:K8s 通过 Master-Node 架构管理集群,核心抽象是 Pod,适合生产环境的容器调度与管理。

  • 适合:微服务架构、需要自动扩缩容和高可用的容器化业务
  • 先看:Pod、Deployment、Service 这三个最基础的资源对象
  • 建议:先熟练使用 kubectl 命令行工具查看集群状态

命令速用版

以下是查看集群状态最常用的几条命令,可直接在配置了 kubeconfig 的终端执行:

kubectl get nodes          # 查看集群节点状态
kubectl get pods         # 查看当前命名空间下的 Pod
kubectl describe pod <pod-name>  # 查看 Pod 详细信息及事件
kubectl get services     # 查看服务暴露情况

为什么会这样

K8s 的设计目标是屏蔽底层基础设施差异,让应用像运行在单一操作系统上一样。集群分为控制平面(Master)和工作节点(Node)。

控制平面负责决策,包含 API Server(统一入口)、Scheduler(调度)、Controller Manager(控制器)和 etcd(数据存储)。工作节点负责执行,运行 kubelet(管理容器)和 kube-proxy(网络代理)。

Pod 是 K8s 最小的调度单元,它可能包含一个或多个容器,这些容器共享网络和存储资源。这种设计解决了容器间通信和文件共享的问题。

分步处理

1. 确认集群连通性:使用 kubectl cluster-info 确认能否连接到 API Server。

Kubernetes(k8s)的基础概念有哪些?

2. 检查节点健康:运行 kubectl get nodes,确保所有节点状态为 Ready。

3. 查看工作负载:使用 kubectl get pods -A 查看所有命名空间的 Pod 运行状态。

4. 排查异常:如果 Pod 状态不是 Running,使用 kubectl describe pod <pod-name> 查看 Events 事件日志。

怎么验证是否生效

执行 kubectl get pods 后,观察 STATUS 列是否为 Running,READY 列是否显示 1/1 或预期副本数。

对于服务暴露,可以通过 kubectl get services 查看 EXTERNAL-IP 是否分配,或在集群内 curl 服务域名验证连通性。

常见坑

1. Pod IP 不固定:Pod 重启后 IP 可能会变,不要硬编码 Pod IP,应通过 Service 访问。

Kubernetes(k8s)的基础概念有哪些?

2. 单点故障风险:如果 Master 节点未配置高可用,一旦宕机集群将不可用,生产环境需至少 3 个 Master 节点。

3. 资源限制缺失:未配置 requests/limits 可能导致某个 Pod 耗尽节点资源,影响同一节点上的其他应用。

参考来源

1. Kubernetes 笔记之基本概念

2. 【K8s】专题一:Kubernetes 基本介绍

3. Kubernetes 通俗讲解

4. k8s 的概念与架构介绍