Kubernetes(K8S)入门指南

📌 1. 什么是 Kubernetes(K8S)

Kubernetes(简称
K8S)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。

你可以把它理解为:
> "管理大量 Docker 容器的操作系统"

它能帮你: - 自动部署容器 - 自动重启失败的容器 - 自动扩缩容 - 负载均衡 -
滚动更新 - 配置管理 - 服务发现


📌 2. Kubernetes 能解决什么问题?

在没有 K8S 之前,你可能会遇到: - 容器挂了没人重启 - 流量一大系统崩溃 -
多台服务器不好管理 - 发布新版本风险高 - 配置散落在各处

👉 Kubernetes 解决的核心问题: - 稳定性:自动重启、健康检查 -
可扩展性:支持横向扩展(加 Pod) - 可维护性:统一管理容器 -
可发布性:支持滚动发布、回滚


📌 3. Kubernetes 核心架构(简化版)

🎯 Control Plane(控制平面)

负责"指挥整个集群",包含: - API Server:K8S 的入口 -
Scheduler:决定 Pod 运行在哪个节点 - Controller
Manager
:保证集群状态符合期望 - etcd:保存集群的所有状态

🎯 Node(工作节点)

真正运行容器的机器,包含: - kubelet:管理 Pod -
kube-proxy:负责网络 - Container Runtime:如 Docker / containerd


📌 4. Kubernetes 核心对象(必须掌握)

🔹 Pod(最小运行单元)

示例:pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: demo-pod
spec:
  containers:
    - name: app
      image: nginx:latest
      ports:
        - containerPort: 80

🔹 Deployment(部署管理)

示例:deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          ports:
            - containerPort: 80

🔹 Service(服务暴露)

示例:service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30080

📌 5. Kubernetes 常用命令速查

查看集群状态

kubectl cluster-info

查看所有 Pod

kubectl get pods

查看 Deployment

kubectl get deployment

查看 Service

kubectl get svc

部署应用

kubectl apply -f deployment.yaml

删除应用

kubectl delete -f deployment.yaml

查看 Pod 详细信息

kubectl describe pod <pod-name>

查看日志

kubectl logs <pod-name>

📌 6. ConfigMap(配置管理)

用于存储配置,而不是写死在镜像里。

示例:configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_ENV: "production"
  APP_PORT: "3000"

在 Pod 里使用:

envFrom:
  - configMapRef:
      name: app-config

📌 7. Kubernetes vs Docker Compose(对照)

Docker Compose Kubernetes


Service Deployment
ports Service
volumes PV / PVC
environment ConfigMap / Secret


📌 8. 本地入门建议(学习路线)

✅ 阶段 1:本地环境

✅ 阶段 2:基础概念

✅ 阶段 3:实战


📌 9. 常见问题(FAQ)

Q:K8S 和 Docker 什么关系?
A:Docker 是容器,K8S 是管理容器的系统。

Q:一定要学 Docker 才能学 K8S 吗?
A:强烈建议先学 Docker。


你的电脑
│
├── Docker Desktop
│   ├── Docker(跑容器)
│   └── Kubernetes(本地 K8S 集群) ←───────┐
│                                          │
│                                Zadig 可以“接管/连接”
│                                          │
└── Zadig(DevOps 平台) ────────────────┘
        ↓
  帮你自动构建镜像 + 部署到 K8S

转载请注明出处