首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >6k star,秒级启动一个k8s集群

6k star,秒级启动一个k8s集群

原创
作者头像
大侠之运维
发布2025-09-17 10:21:09
发布2025-09-17 10:21:09
1800
举报

这简直就是一个套娃的工具,k3s可以快速启动一个轻量级的k8s集群,而k3d可以在本地快速运行k3s,依赖docker环境。

如果你想快速启动一个k8s环境,做一些简单的实验,那么快去试下吧!

环境准备

代码语言:bash
复制
k3d v5.x.x requires at least Docker v20.10.5 (runc >= v1.0.0-rc93)

它的原理就是在docker里面运行k3s,把整个k8s集群封装在docker中,启动和运行非常之快,几乎秒级启动一个k8s集群。

k3d的特点

  1. 轻量:基于 k3s,比标准 Kubernetes 占用资源少。
  2. 快速:集群启动只需几秒。
  3. 本地开发友好:适合个人电脑环境,不需要云端集群。
  4. 灵活:支持多节点、多 server、多 agent 的拓扑结构。
  5. 可移植:因为基于 Docker,容易在 CI/CD 流水线中使用。

快速部署启动

代码语言:bash
复制
wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash

创建一个 1 master + 2 worker 的集群

代码语言:bash
复制
k3d cluster create multi-node --servers 1 --agents 2

查看节点

代码语言:bash
复制
kubectl get nodes -o wide

在 k3d 中部署 Nginx 并通过 Ingress 访问

目标:快速体验如何部署应用,并通过 Ingress 访问服务。

代码语言:bash
复制
# 创建一个带有 Traefik Ingress 的集群
k3d cluster create demo --agents 2 --servers 1 --api-port 6550 -p "8080:80@loadbalancer"

# 部署 Nginx Deployment
kubectl create deployment nginx --image=nginx

# 暴露 Service
kubectl expose deployment nginx --port=80 --type=ClusterIP

# 创建 Ingress
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
spec:
  rules:
  - host: nginx.local
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx
            port:
              number: 80
EOF

测试

代码语言:bash
复制
echo "127.0.0.1 nginx.local" | sudo tee -a /etc/hosts
curl http://nginx.local:8080

使用 Helm 在 k3d 中部署 Prometheus + Grafana

代码语言:bash
复制
# 添加 Helm 仓库
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

# 部署 Prometheus
helm install prometheus prometheus-community/prometheus

# 部署 Grafana
helm install grafana grafana/grafana \
  --set service.type=NodePort \
  --set adminPassword=admin

🔹 可以用 k3d 来做什么

  1. 本地 Kubernetes 学习 / 实验
  2. 学习 kubectl 命令
  3. 部署简单的 Deployment / Service / Ingress
  4. 熟悉 K8s 基础资源对象
  5. 应用本地测试 / 验证
  6. 在没有云集群的情况下验证 Helm Chart
  7. 测试微服务应用的部署逻辑
  8. 模拟服务发现、负载均衡
  9. CI/CD 流水线集成
  10. 在 GitHub Actions、GitLab CI 等环境里用 k3d 快速拉起 K8s 集群
  11. 在集群里跑集成测试(例如 helm install / kubectl apply)
  12. 让测试环境与线上环境更接近
  13. 开发者日常调试
  14. 和 Docker Compose 类似,但提供 K8s 的 API 和对象管理能力
  15. 本地调试 Ingress / Traefik / Istio 等 K8s 中间件
  16. 测试 ConfigMap / Secret / Volume 等功能

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
  • k3d的特点
  • 快速部署启动
  • 在 k3d 中部署 Nginx 并通过 Ingress 访问
  • 使用 Helm 在 k3d 中部署 Prometheus + Grafana
  • 🔹 可以用 k3d 来做什么
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档