Как я могу определить текущее использование временного хранилища работающего модуля Kubernetes? - PullRequest
0 голосов
/ 09 ноября 2018

Как узнать с помощью kubectl, сколько эфемерного хранилища используется в настоящее время?

В спецификации модуля Kubernetes я могу указать запросы ресурсов и ограничения для ЦП, памяти и эфемерного хранилища:

resources:
  requests:
    memory: "60Mi"
    cpu: "70m"
    ephemeral-storage: "2Gi"
  limits:
    memory: "65Mi"
    cpu: "75m"
    ephemeral-storage: "4Gi"

Однако, чтобы установить хорошие запросы и ограничения для эфемерного хранилища, мне нужно знать, каково это значение для работающего модуля, что я не могу понять. Я могу получить использование процессора и памяти, используя kubectl top pod, но, насколько я могу судить, эфемерное использование памяти фактически рассчитывается только при принятии фактического решения о выселении .

1 Ответ

0 голосов
/ 09 ноября 2018

Чисто необработанный подход для этого заключается в использовании использования диска (du) командной строки Unix.

Оболочка в твоей капсуле:

$ kubectl exec -it <pod-id> sh

Измените dirs на точку монтирования вашего временного хранилища (если вы используете монтирование томов):

$ mount # check mount points if you'd like
$ cd /mnt/of/ephemeral
$ du .

Если вы не используете монтирование томов:

$ du .

Существуют и другие инструменты, которые вы можете использовать для получения метрик:

  • cAdvisor также встроен в код кублета, выставленный в конечной точке /stats/summary или /metrics. Подробнее здесь . Пример вывода:

    $ curl -k -H 'Authorization: Bearer <Redacted>' \
    https://node-hostname:10250/stats/summary
    
    {
     "node": {
       "nodeName": "node-hostname",
       "systemContainers": [
        {
         "name": "kubelet",
        ...
        "volume": [
         {
          "time": "2018-11-08T23:52:03Z",
          "availableBytes": 1969168384,
          "capacityBytes": 1969180672,
          "usedBytes": 12288,
          "inodesFree": 480748,
          "inodes": 480757,
          "inodesUsed": 9,
          "name": "kube-proxy-token-pprwb"
         }
        ],
        "ephemeral-storage": {
         "time": "2018-11-09T00:05:10Z",
         "availableBytes": 31057477632,
         "capacityBytes": 41567858688,
         "inodesFree": 4873887,
         "inodes": 5120000
        }
    ...
    }
    

    Аналогично:

    $ curl -k -H 'Authorization: Bearer <Redacted>' \
    https://node-hostname:10250/stats/summary
    
    # HELP apiserver_audit_event_total Counter of audit events generated and sent to the audit backend.
    # TYPE apiserver_audit_event_total counter
    apiserver_audit_event_total 0
    # HELP apiserver_client_certificate_expiration_seconds Distribution of the remaining lifetime on the certificate used to authenticate a request.
    # TYPE apiserver_client_certificate_expiration_seconds histogram
    apiserver_client_certificate_expiration_seconds_bucket{le="0"} 0
    apiserver_client_certificate_expiration_seconds_bucket{le="21600"} 0
    apiserver_client_certificate_expiration_seconds_bucket{le="43200"} 0
    ...
    

    Подробнее о аутентификации / авторизации kubelet .

  • Prometheus

Подробнее о показателях K8s здесь .

...