Uploaded image for project: 'OpenShift Pod Autoscaling'
  1. OpenShift Pod Autoscaling
  2. PODAUTO-193

QE: How to scale and deploy ClusterResourceOverride on specific nodes

XMLWordPrintable

    • BU Product Work
    • False
    • Hide

      None

      Show
      None
    • False
    • OCPSTRAT-1427 - Ability to run CRO on infra/worker node ( this will also enable CRO to run in HCP)

      See https://issues.redhat.com/browse/PODAUTO-192 for documentation on the new feature.

      Before this change:

      We install the operator and apply our CR which looks like this:

      apiVersion: operator.autoscaling.openshift.io/v1
      kind: ClusterResourceOverride
      metadata:
        name: cluster
      spec:
        podResourceOverride:
          spec:
            memoryRequestToLimitPercent: 50
            cpuRequestToLimitPercent: 25
            limitCPUToMemoryPercent: 200

      And a DaemonSet will schedule the CRO on all nodes in your cluster.

      After this change:

      We will install the operator and apply the same CR above.

      A CRO Deployment will be created with the default 2 pods (replicas). The two pods will schedule on any master nodes in your cluster, but installation will fail if there are not enough master nodes to support it. Two or more pods will not be able to schedule on the same node (similar to the DaemonSet functionality).

      Using the new CRD:

      Apply this new CR will new deploymentOverride fields:

      apiVersion: operator.autoscaling.openshift.io/v1
      kind: ClusterResourceOverride
      metadata:
        name: cluster
      spec:
        podResourceOverride:
          spec:
            memoryRequestToLimitPercent: 50
            cpuRequestToLimitPercent: 25
            limitCPUToMemoryPercent: 200
        deploymentOverrides:
          replicas: 1
          nodeSelector:
            node-role.kubernetes.io/worker: ""
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"

      This will schedule a single CRO pod onto a worker node. You can apply taints to nodes to test the tolerations field. E.g.

      kubectl taint nodes node1 key=value:NoSchedule

      If the toleration in the CR above does not exist, the CRO cannot schedule on that node.

              asahay@redhat.com Aditi Sahay
              rh-ee-macao Max Cao
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: