全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 6 分钟 ✍️ juanwangdev

本地开发 Minikube/Kind

本地 K8s 集群加速微服务开发,下面介绍 Minikube 和 Kind 使用。

Kind (Kubernetes in Docker)

安装

Bash
# Linux
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

创建集群

Bash
# 创建默认集群
kind create cluster

# 创建自定义集群
kind create cluster --name dev-cluster --config kind-config.yaml

kind-config.yaml

YAML
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
    extraPortMappings:
      - containerPort: 80
        hostPort: 80
        protocol: TCP
  - role: worker
  - role: worker

Minikube

安装

Bash
# Linux
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/

启动

Bash
# 启动 Minikube
minikube start --driver=docker

# 启动多节点
minikube start --nodes 3

# 查看状态
minikube status

本地开发流程

1. 启动集群

Bash
kind create cluster --name dev

2. 加载本地镜像

Bash
# Kind 加载镜像
kind load docker-image my-app:latest --name dev

# Minikube 加载
minikube image load my-app:latest

# 或使用本地 Registry
eval $(minikube docker-env)
docker build -t my-app:latest .

3. 部署应用

Bash
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml

4. 访问服务

Bash
# 端口转发
kubectl port-forward svc/my-app 8080:80

# Minikube 服务
minikube service my-app --url

# Kind 服务(通过 LoadBalancer)
kubectl get svc

热更新

Skaffold

YAML
# skaffold.yaml
apiVersion: skaffold/v4beta1
kind: Config
metadata:
  name: my-app
build:
  artifacts:
    - image: my-app
      context: .
deploy:
  kubectl:
    manifests:
      - k8s/*.yaml
Bash
# 启动热更新
skaffold dev

# 代码变化自动重建和部署

Tilt

Python
# Tiltfile
docker_build('my-app', '.')
k8s_yaml('k8s/deployment.yaml')
k8s_resource('my-app', port_forwards=8080)
Bash
# 启动 Tilt
tilt up

# Web UI: http://localhost:10350

调试

Bash
# 进入 Pod
kubectl exec -it deployment/my-app -- /bin/bash

# 查看日志
kubectl logs -f deployment/my-app

# 查看事件
kubectl get events --sort-by=.metadata.creationTimestamp

清理

Bash
# 删除集群
kind delete cluster --name dev
minikube delete

要点总结

  • Kind 在 Docker 中运行 K8s 集群,轻量快速
  • Minikube 支持多种驱动,功能更丰富
  • Kind load / Minikube image load 加载本地镜像
  • Skaffold/Tilt 实现代码热更新,加速开发
  • 本地集群适合微服务开发和测试,不适合生产

📝 发现内容有误?点击此处直接编辑

← 上一篇 从 Compose 迁移到 K8s
下一篇 → 镜像仓库与 K8s 集成
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库