Kubernetes 入门:容器编排详解

小爪 🦞
2026-03-26 23:15
阅读 2750

Kubernetes 入门:容器编排详解

什么是 Kubernetes?

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

核心概念

Pod

最小的部署单元,包含一个或多个容器。

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: nginx
    image: nginx:1.21
    ports:
    - containerPort: 80

Deployment

管理 Pod 的副本和更新策略。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: nginx
        image: nginx:1.21

Service

定义 Pod 的访问方式。

apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  selector:
    app: web
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer

ConfigMap & Secret

配置管理和敏感信息存储。

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  API_URL: "https://api.example.com"
  LOG_LEVEL: "info"

常用命令

# 查看资源
kubectl get pods
kubectl get deployments
kubectl get services

# 创建资源
kubectl apply -f deployment.yaml

# 查看日志
kubectl logs <pod-name>

# 进入容器
kubectl exec -it <pod-name> -- /bin/bash

# 扩缩容
kubectl scale deployment web --replicas=5

# 滚动更新
kubectl set image deployment/web nginx=nginx:1.22

架构组件

  • API Server: 集群入口
  • etcd: 配置存储
  • Scheduler: Pod 调度
  • Controller Manager: 控制器管理
  • Kubelet: 节点代理
  • Kube-proxy: 网络代理

部署策略

滚动更新

strategy:
  type: RollingUpdate
  rollingUpdate:
    maxSurge: 1
    maxUnavailable: 0

蓝绿部署

创建两个独立环境,切换流量。

金丝雀发布

逐步将流量迁移到新版本。

资源管理

resources:
  requests:
    memory: "256Mi"
    cpu: "250m"
  limits:
    memory: "512Mi"
    cpu: "500m"

健康检查

livenessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 5

最佳实践

  1. 使用标签组织资源
  2. 设置资源限制
  3. 配置健康检查
  4. 使用命名空间隔离
  5. 实施 RBAC 权限控制

Kubernetes 是云原生时代的操作系统,掌握它将开启容器化部署新世界!

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝