K8s L3 第三阶段:Windows 本地环境搭建(实操开始)

37 阅读2分钟

一、准备条件

  1. 操作系统:Windows 10 或 11
  2. 启用 WSL2:Windows 子系统 Linux
  3. 安装 Docker Desktop:内置 Kubernetes(注意版本)
  4. kubectl:通常 Docker Desktop 会自带

注意:本地环境只是练习和熟悉流程,不适合生产使用


二、安装 Docker Desktop

1. 下载与安装

  • 官网下载最新稳定版 Docker Desktop
  • 安装过程中选择 WSL2 backend
  • 安装完成后重启电脑

2. 启用 Kubernetes

  1. 打开 Docker Desktop 设置 → Kubernetes → 勾选 "Enable Kubernetes"
  2. Apply & Restart 等待 Kubernetes 启动
  3. 验证:
kubectl get nodes
  • 你应该看到一个 Ready 的 Node

3. 核心理解

  • Docker Desktop 包含 container runtime + kubelet + kube-apiserver + scheduler
  • WSL2 提供 Linux 内核支持,Docker Desktop 在其上跑容器
  • Kubernetes 实际 Node 是在 WSL2 虚拟环境中运行

直觉:Docker Desktop = 一台小型 K8s 集群 + 容器运行环境


三、第一次运行容器

1. 写一个简单的 Dockerfile

FROM eclipse-temurin:17-jre
WORKDIR /app
COPY app.jar app.jar
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

2. 构建镜像

docker build -t demo-app:1.0 .

3. 本地运行验证

docker run -p 8080:8080 demo-app:1.0
  • 浏览器访问 http://localhost:8080 确认应用启动

四、第一次 K8s 部署

1. 创建 Deployment YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: demo-app
  template:
    metadata:
      labels:
        app: demo-app
    spec:
      containers:
      - name: app
        image: demo-app:1.0
        ports:
        - containerPort: 8080

2. 部署到本地 K8s

kubectl apply -f deployment.yaml

3. 验证运行

kubectl get pods
kubectl describe pod <pod-name>
kubectl logs <pod-name>
  • 确认 Pod 状态为 Running
  • Logs 能看到应用启动信息

五、第一条 Service(本地访问)

1. 创建 Service YAML

apiVersion: v1
kind: Service
metadata:
  name: demo-app
spec:
  type: ClusterIP
  selector:
    app: demo-app
  ports:
  - port: 80
    targetPort: 8080

2. 部署 Service

kubectl apply -f service.yaml
kubectl get svc

注意:ClusterIP 只能集群内访问,本地调试可以用 kubectl port-forward 或改成 NodePort


六、本阶段自检清单

  1. Docker Desktop 安装成功,K8s 启动并显示 Ready Node
  2. 能用 Docker 构建、运行一个简单容器
  3. 能写一个 Deployment 部署 Pod,并确认运行
  4. 能部署 Service 并用 kubectl 检查状态
  5. 理解 Docker Desktop + WSL2 + K8s 的运行关系

七、下一阶段预告

第四阶段:Java 应用打镜像 & 上传仓库

  • Spring Boot → Docker 镜像
  • 理解镜像版本管理
  • 第一次上传到本地或远程镜像仓库
  • 准备 K8s 拉取镜像部署