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 下载:
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