• Stars
    star
    128
  • Rank 281,044 (Top 6 %)
  • Language
    Go
  • License
    Other
  • Created about 5 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

GPU admission

It is a scheduler extender for GPU admission. It provides the following features:

  • provides quota limitation according to GPU device type
  • avoids fragment allocation of node by working with gpu-manager

For more details, please refer to the documents in docs directory in this project

1. Build

$ make build

2. Run

2.1 Run gpu-admission.

$ bin/gpu-admission --address=127.0.0.1:3456 --v=4 --kubeconfig <your kubeconfig> --logtostderr=true

Other options

      --address string                   The address it will listen (default "127.0.0.1:3456")
      --alsologtostderr                  log to standard error as well as files
      --kubeconfig string                Path to a kubeconfig. Only required if out-of-cluster.
      --log-backtrace-at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
      --log-dir string                   If non-empty, write log files in this directory
      --log-flush-frequency duration     Maximum number of seconds between log flushes (default 5s)
      --logtostderr                      log to standard error instead of files (default true)
      --master string                    The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.
      --pprofAddress string              The address for debug (default "127.0.0.1:3457")
      --stderrthreshold severity         logs at or above this threshold go to stderr (default 2)
  -v, --v Level                          number for the log level verbosity
      --version version[=true]           Print version information and quit
      --vmodule moduleSpec               comma-separated list of pattern=N settings for file-filtered logging

2.2 Configure kube-scheduler policy file, and run a kubernetes cluster.

Example for scheduler-policy-config.json:

{
  "kind": "Policy",
  "apiVersion": "v1",
  "predicates": [
    {
      "name": "PodFitsHostPorts"
    },
    {
      "name": "PodFitsResources"
    },
    {
      "name": "NoDiskConflict"
    },
    {
      "name": "MatchNodeSelector"
    },
    {
      "name": "HostName"
    }
  ],
  "extenders": [
    {
      "urlPrefix": "http://<gpu-admission ip>:<gpu-admission port>/scheduler",
      "apiVersion": "v1beta1",
      "filterVerb": "predicates",
      "enableHttps": false,
      "nodeCacheCapable": false
    }
  ],
  "hardPodAffinitySymmetricWeight": 10,
  "alwaysCheckAllPredicates": false
}

Do not forget to add config for scheduler: --policy-config-file=XXX --use-legacy-policy-config=true. Keep this extender as the last one of all scheduler extenders.

More Repositories

1

tke

Native Kubernetes container management platform supporting multi-tenant and multi-cluster
Go
1,474
star
2

gpu-manager

Go
823
star
3

kvass

Kvass is a Prometheus horizontal auto-scaling solution , which uses Sidecar to generate special config file only containes part of targets assigned from Coordinator for every Prometheus shard.
Go
614
star
4

kstone

Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.
Go
526
star
5

vcuda-controller

C
494
star
6

tapp

Another great app kind for Kubernetes!
Go
113
star
7

galaxy

Providing high-performance network for Kubernetes
Go
109
star
8

image-transfer

Go
74
star
9

cron-hpa

Cron Horizontal Pod Autoscaler(CronHPA)
Go
60
star
10

lb-controlling-framework

A controller that helps you manipulate arbitrary load balancers
Go
56
star
11

charts

Mustache
40
star
12

docs

https://tkestack.github.io/docs/
37
star
13

go-nvml

Go
31
star
14

kube-jarvis

Go
28
star
15

tke-k8s-distro

Repository of Tencent TKE Kubernetes Distribution
Shell
28
star
16

yarn-opterator

An kubernetes opterator to manager the yarn nodemanager, which can be used to deploy yarn on kubernetes.
Go
22
star
17

volume-decorator

Go
14
star
18

csi-operator

Go
14
star
19

kstone-dashboard

Kstone Dashboard is a web-based UI for managing Kstone. It can help users to manage etcd based kstone and enjoy monitoring, inspection, visualization, backup and other features.
TypeScript
14
star
20

kstone-etcd-operator

kstone-etcd-operator is a subproject of etcd cluster management platform kstone. It's inspired by etcd-operator. And has more complete support for persistent storage and better disaster tolerance.
Go
11
star
21

toc

7
star
22

knitnet-operator

Operator for support direct networking between Pods and Services in different Kubernetes clusters
Go
7
star
23

gpu-exporter

C
5
star
24

ronqir

CRI runtime in Rust
5
star
25

gc-controller

Go
4
star
26

kube-event-watcher

Go
4
star
27

aia-ip-controller

Aia-ip-controller is a Kubernetes application, which make it possible for Tencent Kubernetes Engine(TKE) customers to leverage Tencent Cloud's AIa Service to accelerate network with global coverage.
Go
4
star
28

tke-extend-network-controller

A Network Controller for TKE
Go
3
star
29

web

TKEStack website
HTML
1
star