一、K8S简介:

Kubernetes(简称 K8s)名称由来:Kubernetes 首尾字母是 K、s,中间有 8 个字母简称 K8s。

主要作用:解决 Docker 单机无法搞定的集群管理、高可用、扩缩容等问题。

一句话概括就是Docker 负责把应用装进 “集装箱”,K8s 负责在多台机器上统一调度、管理、运维这些集装箱。

二、K8s的核心功能:

1.自动自愈:容器崩溃、节点宕机,自动重启 / 迁移

2.弹性扩缩容:根据 CPU / 流量自动增减副本

3.滚动更新 & 回滚:不停机升级,一键回退

4.服务发现 & 负载均衡:统一入口,自动分发流量

5.配置与密钥管理:配置和代码分离,安全管理密码

6.跨环境一致:本地、测试、生产环境运行一致

三、核心架构:Master + Node

K8s 采用 主从架构,分为控制平面(Master)和工作节点(Node)。

1. Master 节点(大脑)

负责整个集群的控制与决策:

  • kube-apiserver:集群唯一入口,所有操作都走它
  • etcd:高可用键值存储,保存集群所有状态
  • kube-scheduler:把 Pod 调度到合适的 Node
  • kube-controller-manager:保证集群状态符合期望(副本数、节点健康等)

2. Node 节点(工人)

负责真正运行容器:

  • kubelet:节点代理,管理本机 Pod 生命周期
  • kube-proxy:维护网络规则,实现 Service 负载均衡
  • 容器运行时:Docker/containerd,负责拉镜像、起容器

四、必须掌握的核心资源对象

1. Pod

  • K8s 最小部署单元,不是容器!
  • 一个 Pod 里可包含一个 / 多个容器,共享网络和存储。

2. Deployment

  • 最常用的无状态应用控制器
  • 管理 Pod:创建、扩缩容、更新、回滚。

3. Service

  • 给一组 Pod 提供固定访问入口
  • 实现负载均衡,屏蔽 Pod IP 变化。

4. Ingress

  • 集群外部访问入口,通过域名 / 路径路由到不同 Service。

5. ConfigMap / Secret

  • ConfigMap:存普通配置
  • Secret:存密码、密钥等敏感信息

6. Namespace

  • 集群资源隔离,用于区分环境:dev、test、prod。

五、最常用 kubectl 命令

# 查看节点

kubectl get nodes

# 查看 Pod

kubectl get pods kubectl get pods -n 命名空间

# 查看 Deployment/Service

kubectl get deploy kubectl get svc

# 创建/更新资源

kubectl apply -f xxx.yaml

# 查看日志

 kubectl logs -f pod名

# 进入容器

kubectl exec -it pod名 -- /bin/bash

# 扩缩容

kubectl scale deploy 部署名 --replicas=5 #

删除资源 kubectl delete -f xxx.yaml

六、新手便于记忆简单类比

Docker = 集装箱:  把货物(你的应用)打包好,标准、统一、在哪都能运。

Pod = 一组集装箱(共享一台小车):  它是 K8s 里最小的运输单元

几个关系特别近的集装箱(容器)会放在一起,共享小车的空间和网络,一起出发、一起到达。

Node = 一台货车 / 服务器:  货车负责拉着小车(Pod)在路上跑。

一辆货车能拉很多个 Pod,就像一台服务器能跑很多个容器。

Deployment = 车队调度员:  你告诉调度员:“我要 3 辆车 在路上跑。”

调度员就会一直盯着:

少了一辆 → 立刻补发一辆

坏了一辆 → 马上换新的

要升级 → 一辆一辆换,不中断送货

Service = 统一收货地址 : 货车(Node)和小车(Pod)经常换、IP 会变,客户不可能记一堆地址。

Service 就给你一个固定地址,不管后面哪辆车在跑,客户只找这个地址,流量自动分给健康的车。

K8s 集群 = 智能物流港: 里面有调度中心、货车队、集装箱、统一出入口……

它自动管:谁来运、运多少、坏了怎么办、怎么最省资源。

它们之间的关系(超简单版)

  1. 先用 Docker 把应用做成集装箱
  2. 几个集装箱组成一个 Pod,共享一台小车。
  3. Pod 放在 Node(货车 / 服务器) 上运行。
  4. Deployment(调度员) 保证永远有足够的 Pod 在跑。
  5. Service 给外面一个固定地址,让用户能稳定访问。
  6. 这一整套系统,就是 K8s 集群

更多推荐