k3d实验环境部署

作于:2025-08-18 00:28 ,预计阅读时间 2 分钟

k3d 是一个用于在 docker 内运行 k3s 的轻量级的包装。

k3d 简化了在 kubernetes 上进行本地开发的过程。 让在 docker 中运行单节点/多节点 k3s 集群变得非常容易。

k3d安装

安装非常简单:

# wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash

也可以从 github release 下载:

github.com/k3d-io/k3d/releases

kubectl安装

参考官方文档 install and set up kubectl 完成安装。

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

sudo install kubectl /usr/local/bin/kubectl

镜像配置

参考 Using Image Registry 配置镜像加速。

配置格式和 K3S Registries Configuration File 相同。

mirrors:
  "docker.io":
    endpoint:
      - "https://docker.1ms.run" # 替换为你使用的镜像源

保存为 /path/to/your/registries.yaml

创建集群

k3d cluster create mycluster --registry-config /path/to/your/registries.yaml

检查集群状态

kubectl get pods --all-namespaces

可能需要一点时间等待所有 Pods 就绪。如果有卡在 ContainerCreating 的 Pod 可以 describe 排查下。

下面是我的集群创建后:

➜  k3s k get pods --all-namespaces
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   coredns-ccb96694c-99b5v                   1/1     Running     0          18h
kube-system   helm-install-traefik-crd-hl8vw            0/1     Completed   0          18h
kube-system   helm-install-traefik-dzshb                0/1     Completed   1          18h
kube-system   local-path-provisioner-5cf85fd84d-z7d48   1/1     Running     0          18h
kube-system   metrics-server-5985cbc9d7-gzvsk           1/1     Running     0          18h
kube-system   svclb-traefik-0245ffa8-dcv86              2/2     Running     0          18h
kube-system   traefik-5d45fc8cc9-st9wp                  1/1     Running     0          18h

/k3d/ /kubernetes/