• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

kubernetes-sigs/kube-scheduler-simulator: A web-based simulator for the Kubernet ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

kubernetes-sigs/kube-scheduler-simulator

开源软件地址(OpenSource Url):

https://github.com/kubernetes-sigs/kube-scheduler-simulator

开源编程语言(OpenSource Language):

Go 75.0%

开源软件介绍(OpenSource Introduction):

Kubernetes scheduler simulator

Hello world. Here is Kubernetes scheduler simulator.

Nowadays, the scheduler is configurable/extendable in the multiple ways:

But, unfortunately, not all configurations/expansions yield good results. Those who customize the scheduler need to make sure their scheduler is working as expected, and doesn't have an unacceptably negative impact on the scheduling.

In real Kubernetes, we cannot know the results of scheduling in detail without reading the logs, which usually require privileged access to the control plane. That's way we are developing a simulator for kube-scheduler -- you can try out the behavior of the scheduler with web UI while checking which plugin made what decision for which Node.

Simulator's architecture

We have several components:

  • Simulator (in /simulator)
  • Web UI (in /web)
  • Coming soon... :) (see ./keps to see some nice ideas we're working on)

Simulator

Simulator internally has kube-apiserver, scheduler, and HTTP server.

You can create any resources by communicating with kube-apiserver via kubectl, k8s client library, or web UI.

See the following docs to know more about simulator:

  • how-it-works.md: describes about how the simulator works.
  • kube-apiserver.md: describe about kube-apiserver in simulator. (how you can configure and access)
  • api.md: describes about HTTP server the simulator has.

Web UI

Web UI is one of the clients of simulator, but it's optimized for simulator.

From the web, you can create/edit/delete these resources to simulate a cluster.

  • Nodes
  • Pods
  • Persistent Volumes
  • Persistent Volume Claims
  • Storage Classes
  • Priority Classes

list resources

You can create resources with yaml file as usual.

create node

And, after pods are scheduled, you can see the results of

  • Each Filter plugins
  • Each Score plugins
  • Final score (normalized and applied Plugin Weight)

result

You can configure the scheduler on the simulator through KubeSchedulerConfiguration.

Scheduler Configuration | Kubernetes

You can pass a KubeSchedulerConfiguration file via the environment variable KUBE_SCHEDULER_CONFIG_PATH and the simulator will start kube-scheduler with that configuration.

Note: changes to any fields other than .profiles are disabled on simulator, since they do not affect the results of the scheduling.

configure scheduler

If you want to use your custom plugins as out-of-tree plugins in the simulator, please follow this doc.

Getting started

Run simulator with Docker

We have docker-compose.yml to run the simulator easily.

You can use the following command.

# build the images for web frontend and simulator server, then start the containers.
make docker_build_and_up

Then, you can access the simulator with http://localhost:3000

Note: Insufficient memory allocation may cause problems in building the image. Please allocate enough memory in that case.

Run simulator locally

You have to run frontend, server and etcd.

Run simulator server and etcd

To run this simulator's server, you have to install Go and etcd.

You can install etcd with kubernetes/kubernetes/hack/install-etcd.sh.

cd simulator
make start

It starts etcd and simulator-server locally.

Run simulator frontend

To run the frontend, please see README.md on ./web dir.

Contributing

see CONTRIBUTING.md

Community, discussion, contribution, and support

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this project at:

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
rancher/opni: Observability + AIOps for Kubernetes发布时间:2022-08-13
下一篇:
zlabjp/kubernetes-scripts: Useful scripts for operating Kubernetes发布时间:2022-08-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap