Модуль monitoring-kubernetes-control-plane настраивается автоматически и обычно не требует настройки. Настройка может потребоваться в некоторых нестандартных случаях.

Параметры

  • kubeApiserver — параметры для сбора метрик kube-apiserver-а.
    • metricsPath — путь, по которому искать метрики. По умолчанию /metrics.
    • accessType — способ организации доступа Prometheus к метрикам.
      • Варианты:
        • DefaultService — самый распространённый вариант для 99% кластеров — kube-apiserver доступен через сервис kubernetes в namespace default.
        • Pod — kube-apiserver работает в Pod’е и порт с метриками доступен изнутри кластера средствами Kubernetes. См. дополнительные настройки в секции pod ниже.
        • ThroughNode — kube-apiserver работает на одной или нескольких узлах и доступен с этих узлов по локальному порту. В данном случае на узлах будет запущен прокси для обеспечения связи с Prometheus. См. дополнительные настройки в секции throughNode ниже.
      • По умолчанию — DefaultService.
    • pod — дополнительные параметры для accessType Pod.
      • port — порт, где доступны метрики.
        • По умолчанию:
          • Вычисляется автоматически на основе аргументов из Pod’а с kube-apiserver.
          • Если не удалось, то — 6443.
      • podSelector — селектор Pod’ов с сервисом. Обязательный параметр.
        • Формат — словарь лейблов.
      • podNamespace — namespace, где работают Pod’ы компонента. Обязательный параметр.
      • authenticationMethod — как аутентифицироваться. Обязательный параметр.
        • Варианты:
          • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
          • PrometheusCertificate — использовать стандартный сертификат, который поставляется с модулем prometheus, и выдать ему соответствующие права на доступ к метрикам при помощи RBAC.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
    • throughNode — дополнительные параметры для accessType ThroughNode.
      • nodeSelector — селектор узлов, где работает kube-apiserver. Обязательный параметр.
        • Формат — словарь лейблов.
      • localPort — локальный порт kube-apiserver. Обязательный параметр.
      • proxyListenPort — на каком порту запустить прокси.
        • По умолчанию — 10361.
      • authenticationMethod — как аутентифицироваться. Обязательный параметр.
        • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
        • ProxyServiceAccount — при помощи RBAC разрешить ServiceAccount-у прокси обращаться к метрикам компонента и использовать этот SA для сбора.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
  • kubeControllerManager — параметры для сбора метрик kube-controller-manager-а.
    • metricsPath — путь, по которому искать метрики. По умолчанию /metrics.
    • accessType — способ организации доступа Prometheus к метрикам.
      • Варианты:
        • Pod — kube-controller-manager работает в Pod’е и порт с метриками доступен изнутри кластера средствами Kubernetes. См. дополнительные настройки в секции pod ниже.
        • ThroughNode — kube-controller-manager работает на одной или нескольких узлах и доступен с этих узлов по локальному порту. В данном случае на узлах будет запущен прокси для обеспечения связи с Prometheus. См. дополнительные настройки в секции throughNode ниже.
      • По умолчанию — ThroughNode.
    • pod — дополнительные параметры для accessType Pod.
      • port — порт, где доступны метрики. Обязательный параметр.
      • scheme — HTTP-схема, по которой работает HTTP-порт с метриками.
      • podSelector — селектор Pod’ов с сервисом. Обязательный параметр.
        • Формат — словарь лейблов.
      • podNamespace — namespace, где работают Pod’ы kube-controller-manager. Обязательный параметр.
      • authenticationMethod — как аутентифицироваться. Обязательный параметр.
        • Варианты:
          • None — не аутентифицироваться.
          • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
          • PrometheusCertificate — использовать стандартный сертификат, который поставляется с модулем prometheus, и выдать ему соответствующие права на доступ к метрикам при помощи RBAC.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
    • throughNode — дополнительные параметры для accessType ThroughNode.
      • nodeSelector — селектор узлов, где работает kube-controller-manager.
        • Формат — словарь лейблов.
        • По умолчанию — node-role.kubernetes.io/master: ""
      • localPort — локальный порт kube-controller-manager.
        • По умолчанию — 10252.
      • scheme — HTTP-схема, по которой работает локальный порт.
        • По умолчанию — http.
      • proxyListenPort — на каком порту запустить прокси.
        • По умолчанию — 10362.
      • authenticationMethod — как аутентифицироваться.
        • Варианты:
          • None — не аутентифицироваться.
          • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
          • ProxyServiceAccount — при помощи RBAC разрешить ServiceAccount-у прокси обращаться к метрикам компонента и использовать этот SA для сбора.
        • По умолчанию — None.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
  • kubeScheduler — параметры для сбора метрик kube-scheduler’а.
    • metricsPath — путь, по которому искать метрики. По умолчанию /metrics.
    • accessType — способ организации доступа Prometheus к метрикам.
      • Варианты:
        • Pod — kube-scheduler работает в Pod’е и порт с метриками доступен изнутри кластера средствами Kubernetes. См. дополнительные настройки в секции pod ниже.
        • ThroughNode — kube-scheduler работает на одной или нескольких узлах и доступен с этих узлов по локальному порту. В данном случае на узлах будет запущен прокси для обеспечения связи с Prometheus. См. дополнительные настройки в секции throughNode ниже.
      • По умолчанию — ThroughNode.
    • pod — дополнительные параметры для accessType Pod.
      • port — порт, где доступны метрики. Обязательный параметр.
      • scheme — HTTP-схема, по которой работает HTTP-порт с метриками.
      • podSelector — селектор Pod’ов с сервисом. Обязательный параметр.
        • Формат — словарь лейблов.
      • podNamespace — namespace, где работают Pod’ы kube-scheduler. Обязательный параметр.
      • authenticationMethod — как аутентифицироваться. Обязательный параметр.
        • Варианты:
          • None — не аутентифицироваться.
          • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
          • PrometheusCertificate — использовать стандартный сертификат, который поставляется с модулем prometheus, и выдать ему соответствующие права на доступ к метрикам при помощи RBAC.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
    • throughNode — дополнительные параметры для accessType ThroughNode.
      • nodeSelector — селектор узлов, где работает kube-scheduler.
        • Формат — словарь лейблов.
        • По умолчанию — node-role.kubernetes.io/master: "".
      • localPort — локальный порт kube-scheduler.
        • По умолчанию — 10251.
      • scheme — HTTP-схема, по которой работает локальный порт.
        • По умолчанию — http.
      • proxyListenPort — на каком порту запустить прокси.
        • По умолчанию — 10363.
      • authenticationMethod — как аутентифицироваться.
        • Варианты:
          • None — не аутентифицироваться.
          • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
          • ProxyServiceAccount — при помощи RBAC разрешить ServiceAccount-у прокси обращаться к метрикам компонента и использовать этот SA для сбора.
        • По умолчанию — None.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
  • kubeEtcd — параметры для сбора метрик основного инстанса kube-etcd`.
    • metricsPath — путь, по которому искать метрики. По умолчанию /metrics.
    • accessType — способ организации доступа Prometheus к метрикам.
      • Варианты:
        • Pod — kube-etcd работает в Pod’е и порт с метриками доступен изнутри кластера средствами Kubernetes. См. дополнительные настройки в секции pod ниже.
        • ThroughNode — kube-etcd работает на одной или нескольких узлах и доступен с этих узлов по локальному порту. В данном случае на узлах будет запущен прокси для обеспечения связи с Prometheus. См. дополнительные настройки в секции throughNode ниже.
      • По умолчанию — ThroughNode.
    • pod — дополнительные параметры для accessType Pod.
      • port — порт, где доступны метрики. Обязательный параметр.
      • scheme — HTTP-схема, по которой работает HTTP-порт с метриками.
        • По умолчанию — https.
      • podSelector — селектор Pod’ов с сервисом. Обязательный параметр.
        • Формат — словарь лейблов.
      • podNamespace — namespace, где работают Pod’ы kube-etcd. Обязательный параметр.
      • authenticationMethod — как аутентифицироваться.
        • Варианты:
          • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
          • D8PKI — использовать сертификаты из секрета kube-system/d8-pki, который генерируется при бутстрапе кластера средствами dhctl. Данный вариант не предназначен для ручного использования, только для автонастройки.
        • Обязательный параметр если в системе нет секрета kube-system/d8-pki.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
    • throughNode — дополнительные параметры для accessType ThroughNode.
      • nodeSelector — селектор узлов, где работает kube-etcd. Обязательный параметр.
        • Формат — словарь лейблов.
      • localPort — локальный порт kube-etcd.
        • По умолчанию:
          • Вычисляется автоматически на основе аргументов из Pod’а с kube-etcd.
          • Если не удалось, то — 2379.
      • scheme — HTTP-схема, по которой работает HTTP-порт с метриками.
        • По умолчанию — https.
      • proxyListenPort — на каком порту запустить прокси.
        • По умолчанию — 10370.
      • authenticationMethod — как аутентифицироваться.
        • Варианты:
          • None — не аутентифицироваться.
          • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
          • HostPathCertificate — использовать сертификат и ключ, которые уже лежат на ФС узла.
          • D8PKI — использовать сертификаты из секрета kube-system/d8-pki, который генерируется при bootstrap’е кластера средствами dhctl. Данный вариант не предназначен для ручного использования, только для автонастройки.
        • По умолчанию — HostPathCertificate.
      • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
        • client.crt — сертификат.
        • client.key — ключ.
      • hostPathCertificate — путь до сертификата на ФС узла.
        • По умолчанию:
          • Вычисляется автоматически на основе аргументов запуска kube-apiserver.
          • Если не удалось, то — /etc/kubernetes/pki/apiserver-etcd-client.crt.
      • hostPathCertificateKey — путь до ключа на ФС узла.
        • По умолчанию:
          • Вычисляется автоматически на основе аргументов запуска kube-apiserver.
          • Если не удалось, то — /etc/kubernetes/pki/apiserver-etcd-client.key.
  • kubeEtcdAdditionalInstances — параметры для сбора метрик дополнительного инстанса kube-etcd. Например, для kube-etcd-events в kops-инсталляциях (который в данном модуле дискаверится автоматически).
    • Формат — массив инстансов:
      • name — короткое имя для инстанса.
        • Обязательный параметр.
        • Не более 12 символов [a-z0-9].
      • metricsPath — путь, по которому искать метрики. По умолчанию — /metrics.
      • accessType — способ организации доступа Prometheus к метрикам.
        • Варианты:
          • Pod — дополнительный kube-etcd работает в Pod’е и порт с метриками доступен изнутри кластера средствами Kubernetes. См. дополнительные настройки в секции pod ниже.
          • ThroughNode — дополнительный kube-etcd работает на одной или нескольких узлах и доступен с этих узлов по локальному порту. В данном случае на узлах будет запущен прокси для обеспечения связи с Prometheus. См. дополнительные настройки в секции throughNode ниже.
        • Обязательный параметр.
      • pod — дополнительные параметры для accessType Pod.
        • port — порт, где доступны метрики. Обязательный параметр.
        • scheme — HTTP-схема, по которой работает HTTP-порт с метриками.
          • По умолчанию — https.
        • podSelector — селектор Pod’ов с сервисом. Обязательный параметр.
          • Формат — словарь лейблов.
        • podNamespace — namespace, где работают Pod’ы с дополнительными kube-etcd. Обязательный параметр.
        • authenticationMethod — как аутентифицироваться.
          • Варианты:
            • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
            • D8PKI — использовать сертификаты из секрета kube-system/d8-pki, который генерируется при bootstrap’е кластера средствами dhctl. Данный вариант не предназначен для ручного использования, только для автонастройки.
          • Обязательный параметр, если в системе нет секрета kube-system/d8-pki.
        • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр. Секрет должен содержать два ключа:
          • client.crt — сертификат.
          • client.key — ключ.
      • throughNode — дополнительные параметры для accessType ThroughNode.
        • nodeSelector — селектор узлов, где работает дополнительней kube-etcd. Обязательный параметр.
          • Формат — словарь лейблов.
        • localPort — локальный порт дополнительного kube-etcd. Обязательный параметр.
        • scheme — HTTP-схема, по которой работает HTTP-порт с метриками.
          • По умолчанию — https.
        • proxyListenPort — на каком порту запустить прокси.
          • По умолчанию — вычисляется автоматически по формуле 10370 + n.
        • authenticationMethod — как аутентифицироваться.
          • Варианты:
            • Certificate — указать кастомный сертификат. См. certificateSecret ниже.
            • HostPathCertificate — использовать сертификат и ключ, которые уже лежат на ФС узла.
            • D8PKI — использовать сертификаты из секрета kube-system/d8-pki, который генерируется при bootstrap’е кластера средствами dhctl. Данный вариант не предназначен для ручного использования, только для автонастройки.
          • Обязательный параметр, если в системе нет секрета kube-system/d8-pki.
        • certificateSecret — имя секрета в namespace d8-system, где лежит кастомный сертификат. Обязательный параметр, если authenticationMethod == Certificate. Секрет должен содержать два ключа:
          • client.crt — сертификат.
          • client.key — ключ.
        • hostPathCertificate — путь до сертификата на ФС узла. Обязательный параметр, если authenticationMethod == HostPathCertificate.
        • hostPathCertificateKey — путь до ключа на ФС узла. Обязательный параметр, если authenticationMethod == HostPathCertificate.