github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/neon/templates/autoscale-scheduler.yaml (about) 1 apiVersion: v1 2 kind: ServiceAccount 3 metadata: 4 name: autoscale-scheduler 5 namespace: kube-system 6 --- 7 apiVersion: rbac.authorization.k8s.io/v1 8 kind: RoleBinding 9 metadata: 10 name: autoscale-scheduler-apiserver-auth-config 11 namespace: kube-system 12 roleRef: 13 apiGroup: rbac.authorization.k8s.io 14 kind: Role 15 name: extension-apiserver-authentication-reader 16 subjects: 17 - kind: ServiceAccount 18 name: autoscale-scheduler 19 namespace: kube-system 20 --- 21 apiVersion: rbac.authorization.k8s.io/v1 22 kind: ClusterRoleBinding 23 metadata: 24 name: autoscale-scheduler-virtualmachine-viewer 25 namespace: kube-system 26 roleRef: 27 apiGroup: rbac.authorization.k8s.io 28 kind: ClusterRole 29 name: neonvm-virtualmachine-viewer-role 30 subjects: 31 - kind: ServiceAccount 32 name: autoscale-scheduler 33 namespace: kube-system 34 --- 35 apiVersion: rbac.authorization.k8s.io/v1 36 kind: ClusterRoleBinding 37 metadata: 38 name: autoscale-scheduler-virtualmachinemigration-editor 39 namespace: kube-system 40 roleRef: 41 apiGroup: rbac.authorization.k8s.io 42 kind: ClusterRole 43 name: neonvm-virtualmachinemigration-editor-role 44 subjects: 45 - kind: ServiceAccount 46 name: autoscale-scheduler 47 namespace: kube-system 48 --- 49 apiVersion: rbac.authorization.k8s.io/v1 50 kind: ClusterRoleBinding 51 metadata: 52 name: autoscale-scheduler-as-kube-scheduler 53 roleRef: 54 apiGroup: rbac.authorization.k8s.io 55 kind: ClusterRole 56 name: system:kube-scheduler 57 subjects: 58 - kind: ServiceAccount 59 name: autoscale-scheduler 60 namespace: kube-system 61 --- 62 apiVersion: rbac.authorization.k8s.io/v1 63 kind: ClusterRoleBinding 64 metadata: 65 name: autoscale-scheduler-as-volume-scheduler 66 roleRef: 67 apiGroup: rbac.authorization.k8s.io 68 kind: ClusterRole 69 name: system:volume-scheduler 70 subjects: 71 - kind: ServiceAccount 72 name: autoscale-scheduler 73 namespace: kube-system 74 --- 75 apiVersion: v1 76 data: 77 scheduler-config.yaml: | 78 apiVersion: kubescheduler.config.k8s.io/v1beta3 79 kind: KubeSchedulerConfiguration 80 leaderElection: 81 leaderElect: false 82 profiles: 83 - schedulerName: autoscale-scheduler 84 plugins: 85 multiPoint: 86 enabled: 87 - name: AutoscaleEnforcer 88 kind: ConfigMap 89 metadata: 90 name: autoscale-scheduler-config 91 namespace: kube-system 92 --- 93 apiVersion: v1 94 data: 95 autoscale-enforcer-config.json: | 96 { 97 "memBlockSize": "1Gi", 98 "nodeDefaults": { 99 "cpu": { "watermark": 0.9 }, 100 "memory": { "watermark": 0.9 }, 101 "computeUnit": { "vCPUs": 0.25, "mem": 1 }, 102 "minUsageScore": 0.5, 103 "maxUsageScore": 0, 104 "scorePeak": 0.8 105 }, 106 "nodeOverrides": [], 107 "schedulerName": "autoscale-scheduler", 108 "dumpState": { 109 "port": 10298, 110 "timeoutSeconds": 5 111 }, 112 "migrationDeletionRetrySeconds": 5, 113 "doMigration": false 114 } 115 kind: ConfigMap 116 metadata: 117 name: scheduler-plugin-config 118 namespace: kube-system 119 --- 120 apiVersion: apps/v1 121 kind: Deployment 122 metadata: 123 labels: 124 component: scheduler 125 tier: control-plane 126 name: autoscale-scheduler 127 namespace: kube-system 128 spec: 129 replicas: 1 130 selector: 131 matchLabels: 132 component: scheduler 133 tier: control-plane 134 template: 135 metadata: 136 labels: 137 component: scheduler 138 name: autoscale-scheduler 139 tier: control-plane 140 spec: 141 containers: 142 - command: 143 - /usr/bin/kube-scheduler 144 - --config=/etc/kubernetes/autoscale-scheduler-config/scheduler-config.yaml 145 image: neondatabase/autoscale-scheduler:v0.17.0 146 livenessProbe: 147 httpGet: 148 path: /healthz 149 port: 10259 150 scheme: HTTPS 151 initialDelaySeconds: 15 152 name: autoscale-scheduler 153 ports: 154 - containerPort: 9100 155 name: metrics 156 protocol: TCP 157 readinessProbe: 158 httpGet: 159 path: /healthz 160 port: 10259 161 scheme: HTTPS 162 resources: 163 requests: 164 cpu: "0.1" 165 securityContext: 166 privileged: false 167 volumeMounts: 168 - mountPath: /etc/kubernetes/autoscale-scheduler-config 169 name: scheduler-config-volume 170 - mountPath: /etc/scheduler-plugin-config 171 name: plugin-config-volume 172 hostNetwork: false 173 hostPID: false 174 priorityClassName: system-cluster-critical 175 serviceAccountName: autoscale-scheduler 176 volumes: 177 - configMap: 178 name: autoscale-scheduler-config 179 name: scheduler-config-volume 180 - configMap: 181 name: scheduler-plugin-config 182 name: plugin-config-volume