Kind Quick Start
English | 简体中文
Kind 是一个使用 Docker 容器节点运行本地 Kubernetes 集群的工具。Spiderpool 提供了安装 Kind 集群的脚本,您可以使用它来部署符合您需求的集群,进行 Spiderpool 的测试与体验。
先决条件
-
已安装 Go
-
克隆 Spiderpool 代码仓库到本地主机上,并进入 Spiderpool 工程的根目录。
git clone https://github.com/spidernet-io/spiderpool.git && cd spiderpool
-
通过以下方式获取 Spiderpool 的最新镜像。
~# SPIDERPOOL_LATEST_IMAGE_TAG=$(curl -s https://api.github.com/repos/spidernet-io/spiderpool/releases | jq -r '.[].tag_name | select(("^v1.[0-9]*.[0-9]*$"))' | head -n 1)
-
执行
make dev-doctor
,检查本地主机上的开发工具是否满足部署 Kind 集群与 Spiderpool 的条件,如果缺少组件会为您自动安装。
Spiderpool 脚本支持的多种安装模式
如果您在中国大陆,安装时可以额外指定参数 -e E2E_CHINA_IMAGE_REGISTRY=true
,以帮助您更快的拉取镜像。
安装 Spiderpool 在 Underlay CNI(Macvlan) 集群
~# make e2e_init_underlay -e E2E_SPIDERPOOL_TAG=$SPIDERPOOL_LATEST_IMAGE_TAG
安装 Spiderpool 在 Calico Overlay CNI 集群
~# make e2e_init_overlay_calico -e E2E_SPIDERPOOL_TAG=$SPIDERPOOL_LATEST_IMAGE_TAG
安装 Spiderpool 在 Cilium Overlay CNI 集群
~# make e2e_init_overlay_cilium -e E2E_SPIDERPOOL_TAG=$SPIDERPOOL_LATEST_IMAGE_TAG
验证安装
在 Spiderpool 工程的根目录下执行如下命令,为 kubectl 配置 Kind 集群的 KUBECONFIG。
~# export KUBECONFIG=$(pwd)/test/.cluster/spider/.kube/config
您可以看到类似如下的内容输出:
~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
spider-control-plane Ready control-plane 2m29s v1.26.2
spider-worker Ready <none> 2m58s v1.26.2
~# kubectll get po -n kube-sysem | grep spiderpool
NAME READY STATUS RESTARTS AGE
spiderpool-agent-4dr97 1/1 Running 0 3m
spiderpool-agent-4fkm4 1/1 Running 0 3m
spiderpool-controller-7864477fc7-c5dk4 1/1 Running 0 3m
spiderpool-controller-7864477fc7-wpgjn 1/1 Running 0 3m
spiderpool-init 0/1 Completed 0 3m
spiderpool-multus-66xnx 1/1 Running 0 3m
spiderpool-multus-xwxv4 1/1 Running 0 3m
~# kubectl get spiderippool
NAME VERSION SUBNET ALLOCATED-IP-COUNT TOTAL-IP-COUNT DEFAULT
default-v4-ippool 4 172.18.0.0/16 5 253 true
default-v6-ippool 6 fc00:f853:ccd:e793::/64 5 253 true
vlan100-v4 4 172.100.0.0/16 0 2559 false
vlan100-v6 6 fd00:172:100::/64 0 65009 false
vlan100-v4 4 172.200.0.0/16 0 2559 false
vlan200-v6 6 fd00:172:200::/64 0 65009 false
Spiderpool 提供的快速安装 Kind 集群脚本会自动为您创建一个应用,以验证您的 Kind 集群是否能够正常工作,以下是应用的运行状态:
~# kubectl get po -l app=test-pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test-pod-856f9689d-876nm 1/1 Running 0 5m34s 172.18.40.63 spider-worker <none> <none>
您也可以手动创建应用验证 Kind 集群是否能够正常工作,以下命令会创建 1 个副本 Deployment:
cat <<EOF | kubectl create -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-app
spec:
replicas: 1
selector:
matchLabels:
app: test-app
template:
metadata:
labels:
app: test-app
spec:
containers:
- name: test-app
image: nginx
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
protocol: TCP
EOF
~# kubectl get po -l app=test-app -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test-app-84d5699474-dbtl5 1/1 Running 0 6m23s 172.18.40.112 spider-control-plane <none> <none>
通过测试,Kind 集群一切正常,您可以基于它测试与体验 Spiderpool 的更多功能。
卸载
-
卸载 Kind 集群
执行
make clean
卸载 Kind 集群。 -
删除测试镜像
~# docker rmi -f $(docker images | grep spiderpool | awk '{print $3}') ~# docker rmi -f $(docker images | grep multus | awk '{print $3}')