支持模拟成千上万个 Kubelet 节点的效率工具

大家好,又见面了,我是 GitHub 精选君!

今天要给大家推荐一个 GitHub 开源项目 kubernetes-sigs/kwok,该项目在 GitHub 有超过 0.4k Star,用一句话介绍该项目就是:“Kubernetes WithOut Kubelet - Simulates thousand s of Nodes and Clusters.”,支持模拟成千上万个 Kubelet 节点。

使用动图:https://raw.githubusercontent.com/kubernetes-sigs/kwok/master/demo/manage-clusters.svg

Kwok 是一个用于开发 Kubernetes 并提高效率的工具。它可以帮助用户快速在本地计算机上模拟成千上万个跟 Kubelet 行为一致的节点,从而方便用户做各种形式的测试,这对 Kubernetes 的性能优化帮助很大。

如何安装使用

Kwok 有多种安装方式,推荐使用 brew install kwok。

以下是项目的系统支持状态:

使用示例 DEMO

安装 kwok 后,使用如下命令即可启动一个本地的 Kubernetes 集群:

kwok \
  --kubeconfig=~/.kube/config \
  --manage-all-nodes=false \
  --manage-nodes-with-annotation-selector=kwok.x-k8s.io/node=fake \
  --manage-nodes-with-label-selector= \
  --disregard-status-with-annotation-selector=kwok.x-k8s.io/status=custom \
  --disregard-status-with-label-selector= \
  --cidr=10.0.0.1/24 \
  --node-ip=10.0.0.1

对应的也可以使用 kwokctl 来创建和管理集群:

$ kwokctl create cluster --name=kwok
kwokctl create cluster
Creating cluster "kwok-kwok"
Starting cluster "kwok-kwok"
Cluster "kwok-kwok" is ready
You can now use your cluster with:

    kubectl config use-context kwok-kwok

Thanks for using kwok!

$ kubectl config use-context kwok-kwok

$ kwokctl get clusters
kwok

$ kwokctl delete cluster --name=kwok
Stopping cluster "kwok-kwok"
Deleting cluster "kwok-kwok"
Cluster "kwok-kwok" deleted

有了集群后,可以使用 Kubectl 创建 v1.Node 资源来新增虚拟的 Node 节点,执行以上 yaml 配置后,会生成如下 node 节点:

$ kubectl get node -o wide
NAME          STATUS   ROLES   AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE    KERNEL-VERSION   CONTAINER-RUNTIME
kwok-node-0   Ready    agent   5s    fake      196.168.0.1   <none>        <unknown>   <unknown>        <unknown>

这样你可以像正常使用 k8s 一样在上面创建 pod。

更多项目详情请查看如下链接。

开源项目地址:https://github.com/kubernetes-sigs/kwok (文末可点击阅读原文)

开源项目作者:kwok

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on February 13, 2023