Files
docker_practice/12_kubernetes_concepts/practice.md
Baohua Yang 175aaae48a style(docs): standardize heading formats and numbering
- Enforce Level 1-3 structural numbering based on SUMMARY.md hierarchy
- Remove structural numbering from Level 4+ headings
- Eliminate single child headings by converting to bold text
- Auto-inject summary text for headings with multiple children missing intro text
- Exclude Appendix chapters from structural numbering
- Avoid modifying code block contents
- Add script to detect non-standard English usage in headers
2026-02-21 22:40:33 -08:00

1.8 KiB
Raw Blame History

12.5 Kubernetes 实战练习

本章将通过一个具体的案例:部署一个 Nginx 网站,并为其配置 Service 和 Ingress来串联前面学到的知识。

12.5.1 目标

  1. 部署一个 Nginx Deployment。
  2. 创建一个 Service 暴露 Nginx。
  3. (可选) 通过 Ingress 访问服务。

12.5.2 步骤 1创建 Deployment

创建一个名为 nginx-deployment.yaml 的文件:

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

应用配置:

kubectl apply -f nginx-deployment.yaml

12.5.3 步骤 2创建 Service

创建一个名为 nginx-service.yaml 的文件:

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort # 使用 NodePort 方便本地测试

应用配置:

kubectl apply -f nginx-service.yaml

查看分配的端口:

kubectl get svc nginx-service

如果输出端口是 80:30080/TCP,你可以通过 http://<NodeIP>:30080 访问 Nginx。

12.5.4 步骤 3模拟滚动更新

修改 nginx-deployment.yaml,将镜像版本改为 nginx:1.27-alpine

kubectl apply -f nginx-deployment.yaml

观察更新过程:

kubectl rollout status deployment/nginx-deployment

12.5.5 步骤 4清理资源

练习结束后,记得清理资源:

kubectl delete -f nginx-service.yaml
kubectl delete -f nginx-deployment.yaml