Kubernetes 核心概念入门:从 Pod 到集群管理

0 阅读1分钟

Kubernetes(K8s)已成为容器编排的事实标准。本文从核心概念入手,帮助你快速建立 K8s 的知识体系。

一、为什么需要 Kubernetes?

当容器数量达到一定规模,手动管理变得不可能:

  • 容器宕机后自动重启恢复
  • 根据负载自动扩缩容
  • 滚动更新,实现零停机部署
  • 跨节点负载均衡和服务发现
  • 统一配置和密钥管理

二、核心资源对象

  • Pod:最小调度单元,包含一个或多个共享网络/存储的容器
  • Deployment:管理无状态应用的副本数,支持滚动更新和回滚
  • Service:为 Pod 提供稳定的网络访问入口,支持 ClusterIP/NodePort/LoadBalancer
  • ConfigMap / Secret:分离配置与代码,Secret 用于存储敏感信息
  • Ingress:HTTP/HTTPS 路由,将外部流量分发到不同 Service
  • PersistentVolume:为有状态应用提供持久化存储

三、一个完整的应用部署示例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web-app
  template:
    metadata:
      labels:
        app: web-app
    spec:
      containers:
      - name: web
        image: nginx:1.25
        ports:
        - containerPort: 80
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"

四、常用 kubectl 命令

kubectl get pods -n default          # 查看 Pod 状态
kubectl describe pod <pod-name>     # 查看 Pod 详情
kubectl logs <pod-name> -f           # 实时查看日志
kubectl exec -it <pod-name> -- bash # 进入容器
kubectl apply -f deployment.yaml     # 应用配置
kubectl rollout undo deployment/web  # 回滚部署

总结

Kubernetes 的学习曲线较陡,但一旦掌握,你将拥有管理大规模容器化应用的能力。从部署一个简单的 Deployment 开始,逐步深入探索更高级的特性。