Hello!

Ran through similar issue/confusion. Apparently the openshift-metrics
ansible install which generates the openshift-infra project isn't't enough
for the HPA to work.
https://docs.okd.io/3.11/dev_guide/pod_autoscaling.html#req-for-using-hpas
So you actually need to install the metrics-server for kubernetes which
generates a new project called openshift-metrics-server inside your cluster.

After that you can create and use HPA objects, but only for API
schemas/versions of v1 and v2beta1, so no v2beta2. The API reference is on
the Kubernetes documentation site:
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/#horizontalpodautoscaler-v2beta1-autoscaling

În lun., 1 iul. 2019 la 17:56, Robert Dahlem <[email protected]> a
scris:

> Hi,
>
> I'm on CentOS 7.6, OpenShift 3.11 and Ansible 2.6.14.
>
> I am tring to get HPAs to work. What I did so far:
>
> # oc login -u system:admin ...
> # oc project openshift-infra
> # PLAYBOOKS=/usr/share/ansible/openshift-ansible/playbooks
> # ansible-playbook $PLAYBOOKS/openshift-metrics/config.yml \
>   -e openshift_metrics_install_metrics=True \
>   -e openshift_metrics_hawkular_hostname=hawkular-metrics.$MYDOMAIN
>
> # oc login -u dev ...
> # oc project $MYSPACE
> # oc autoscale dc/$MYAPP --min 1 --max 5 --cpu-percent=75
> # oc set resources dc $MYAPP --requests=cpu=400m
>
> I can browse to https://hawkular-metrics.$MYDOMAIN/hawkular/metrics.
> Also in the Web Console I can see the metrics (87 Mib Memory, 0.002
> Cores CPU and 0.5 Kib/s Network).
>
> Unfortunately the HPA seems not to be able to fetch the metrics:
>
>
> ================================================================================
> # oc describe hpa
> Name:                                                  $MYAPP
> Namespace:                                             $MYSPACE
> Labels:                                                <none>
> Annotations:                                           <none>
> CreationTimestamp:                                     Mon, 01 Jul 2019
> 14:57:49 +0200
> Reference:
> DeploymentConfig/$MYAPP
> Metrics:                                               ( current / target )
>    resource cpu on pods  (as a percentage of request):  <unknown> / 75%
> Min replicas:                                          1
> Max replicas:                                          5
> DeploymentConfig pods:                                 1 current / 0
> desired
> Conditions:
>    Type           Status  Reason                   Message
>    ----           ------  ------                   -------
>    AbleToScale    True    SucceededGetScale        the HPA controller
> was able to get the target's current scale
>    ScalingActive  False   FailedGetResourceMetric  the HPA was unable to
> compute the replica count: unable to get metrics for resource cpu:
> unable to fetch metrics from resource metrics API: the server could not
> find the requested resource (get pods.metrics.k8s.io)
> Events:
>    Type     Reason                        Age                 From
>                  Message
>    ----     ------                        ----                ----
>                  -------
>    Warning  FailedComputeMetricsReplicas  40m (x13 over 46m)
> horizontal-pod-autoscaler  failed to get cpu utilization: unable to get
> metrics for resource cpu: unable to fetch metrics from resource metrics
> API: the server could not find the requested resource (get
> pods.metrics.k8s.io)
>    Warning  FailedGetResourceMetric       1m (x91 over 46m)
> horizontal-pod-autoscaler  unable to get metrics for resource cpu:
> unable to fetch metrics from resource metrics API: the server could not
> find the requested resource (get pods.metrics.k8s.io)
>
> ================================================================================
>
> I can ping hawkular-metrics.$MYDOMAIN and I can
>         curl --insecure https://hawkular-metrics.
> $MYDOMAIN/hawkular/metrics
> from the Master and the Node.
>
> Additionally I found this (timestamps deleted for brevity):
>
> # oc logs heapster-g48vb
>
> ================================================================================
> The endpoint check has successfully completed.
>
> Starting Heapster with the following arguments:
>
> --source=kubernetes.summary_api:${MASTER_URL}?useServiceAccount=true&kubeletHttps=true&kubeletPort=10250
> --tls_cert=/heapster-certs/tls.crt --tls_key=/heapster-certs/tls.key
> --tls_client_ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
> --allowed_users=system:master-proxy
> <http://kubernetes.io/serviceaccount/ca.crt--allowed_users=system:master-proxy>
> --metric_resolution=30s
> --sink=hawkular:
> https://hawkular-metrics:443?tenant=_system&labelToTenant=pod_namespace&labelNodeId=nodename&caCert=/hawkular-metrics-certs/tls.crt&user=hawkular&pass=$HEAPSTER_PASSWORD&filter=label(container_name
> :^system.slice.*|^user.slice)&concurrencyLimit=5
>
> heapster.go:72] heapster
>
> --source=kubernetes.summary_api:${MASTER_URL}?useServiceAccount=true&kubeletHttps=true&kubeletPort=10250
> --tls_cert=/heapster-certs/tls.crt --tls_key=/heapster-certs/tls.key
> --tls_client_ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
> --allowed_users=system:master-proxy
> <http://kubernetes.io/serviceaccount/ca.crt--allowed_users=system:master-proxy>
> --metric_resolution=30s
> --sink=hawkular:
> https://hawkular-metrics:443?tenant=_system&labelToTenant=pod_namespace&labelNodeId=nodename&caCert=/hawkular-metrics-certs/tls.crt&user=hawkular&pass=$HEAPSTER_PASSWORD&filter=label(container_name
> :^system.slice.*|^user.slice)&concurrencyLimit=5
>
> heapster.go:73] Heapster version v1.3.0
>
> configs.go:61] Using Kubernetes client with master
> "https://172.30.0.1:443"; and version v1
>
> configs.go:62] Using kubelet port 10250
>
> driver.go:341] Initialised Hawkular Sink with parameters {_system
>
> https://hawkular-metrics:443?tenant=_system&labelToTenant=pod_namespace&labelNodeId=nodename&caCert=/hawkular-metrics-certs/tls.crt&user=hawkular&pass=XC3Ky4WL9mXWcdQ&filter=label(container_name
> :^system.slice.*|^user.slice)&concurrencyLimit=5
> 0xc42006de40    5 }
>
> heapster.go:196] Starting with Hawkular-Metrics Sink
>
> heapster.go:196] Starting with Metric Sink
>
> heapster.go:106] Starting heapster on port 8082
>
> reflector.go:323]
> k8s.io/heapster/metrics/processors/namespace_based_enricher.go:84: watch
> of *v1.Namespace ended with: The resourceVersion for the provided watch
> is too old.
>
> reflector.go:323]
> k8s.io/heapster/metrics/processors/namespace_based_enricher.go:84: watch
> of *v1.Namespace ended with: The resourceVersion for the provided watch
> is too old.
> [repeats ...]
>
> ================================================================================
>
> Any idea how to debug this?
>
> Kind regards,
> Robert
>
>
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.openshift.redhat.com/openshiftmm/listinfo/users
>
_______________________________________________
users mailing list
[email protected]
http://lists.openshift.redhat.com/openshiftmm/listinfo/users

Reply via email to