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