Дросселирование процессора в модулях GKE по умолчанию - PullRequest
1 голос
/ 01 октября 2019

Я только что создал кластер в GKE с 2 узлами n1-standard-2 и установил PrometheusOperator, используя официальный helm .

Prometheus, кажется, работает нормально, но я получаюПредупреждения, подобные этому:

message: 33% throttling of CPU in namespace kube-system for container metrics-server in pod metrics-server-v0.3.1-8d4c5db46-zddql.
22 minutes agocontainer: metrics-serverpod: metrics-server-v0.3.1-8d4c5db46-zddql
message: 35% throttling of CPU in namespace kube-system for container heapster-nanny in pod heapster-v1.6.1-554bfbc7d-tg6fm.
an hour agocontainer: heapster-nannypod: heapster-v1.6.1-554bfbc7d-tg6fm
message: 77% throttling of CPU in namespace kube-system for container prometheus-to-sd in pod prometheus-to-sd-789b2.
20 hours agocontainer: prometheus-to-sdpod: prometheus-to-sd-789b2
message: 45% throttling of CPU in namespace kube-system for container heapster in pod heapster-v1.6.1-554bfbc7d-tg6fm.
20 hours agocontainer: heapsterpod: heapster-v1.6.1-554bfbc7d-tg6fm
message: 38% throttling of CPU in namespace kube-system for container default-http-backend in pod l7-default-backend-8f479dd9-9n77b.

Все эти модули являются частью установки GKE по умолчанию, и я не внес в них никаких изменений. Я полагаю, что они являются частью некоторых облачных инструментов Google, которые я еще не пробовал.

Мои узлы на самом деле не находятся под большой нагрузкой:

kubectl top node                                           
NAME                                      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
gke-psi-cluster-01-pool-1-d5650403-cl4g   230m         11%    2973Mi          52%       
gke-psi-cluster-01-pool-1-d5650403-xn35   146m         7%     2345Mi          41%  

Вот мой конфиг Prometheus helm:

alertmanager:
  alertmanagerSpec:
    storage:
      volumeClaimTemplate:
        spec:
          accessModes:
          - ReadWriteOnce
          resources:
            requests:
              storage: 5Gi
  config:
    global:
      resolve_timeout: 5m
    receivers:
    - name: "null"
    - name: slack_k8s
      slack_configs:
      - api_url: REDACTED
        channel: '#k8s'
        send_resolved: true
        text: |-
          {{ range .Alerts }}
            {{- if .Annotations.summary }}
            *{{ .Annotations.summary }}*
            {{- end }}
            *Severity* : {{ .Labels.severity }}
            {{- if .Labels.namespace }}
            *Namespace* : {{ .Labels.namespace }}
            {{- end }}
            {{- if .Annotations.description }}
            {{ .Annotations.description }}
            {{- end }}
            {{- if .Annotations.message }}
            {{ .Annotations.message }}
            {{- end }}
          {{ end }}
        title: '{{ (index .Alerts 0).Labels.alertname }}'
        title_link: https://karma.REDACTED?q=alertname%3D{{ (index .Alerts 0).Labels.alertname
          }}
    route:
      group_by:
      - alertname
      - job
      group_interval: 5m
      group_wait: 30s
      receiver: slack_k8s
      repeat_interval: 6h
      routes:
      - match:
          alertname: Watchdog
        receiver: "null"
      - match:
          alertname: KubeAPILatencyHigh
        receiver: "null"
  ingress:
    enabled: false
    hosts:
    - alertmanager.REDACTED
coreDns:
  enabled: false
grafana:
  adminPassword: REDACTED
  ingress:
    annotations:
      kubernetes.io/tls-acme: "true"
    enabled: true
    hosts:
    - grafana.REDACTED
    tls:
    - hosts:
      - grafana.REDACTED
      secretName: grafana-crt-secret
  persistence:
    enabled: true
    size: 5Gi
kubeControllerManager:
  enabled: true
kubeDns:
  enabled: true
kubeScheduler:
  enabled: true
nodeExporter:
  enabled: true
prometheus:
  ingress:
    enabled: false
    hosts:
    - prometheus.REDACTED
  prometheusSpec:
    additionalScrapeConfigs:
    - basic_auth:
        password: REDACTED
        username: prometheus
    retention: 30d
    ruleSelectorNilUsesHelmValues: false
    serviceMonitorSelectorNilUsesHelmValues: false
    storageSpec:
      volumeClaimTemplate:
        spec:
          accessModes:
          - ReadWriteOnce
          resources:
            requests:
              storage: 30Gi
prometheusOperator:
  createCustomResource: false

Я обнаружил эту проблему git https://github.com/kubernetes-monitoring/kubernetes-mixin/issues/108, но я не уверен, применимо ли это к моему случаю, потому что это стандартные модули GKE. Я хочу убедиться, что все работает без сбоев, и Stackdriver может правильно восстановить все мои журналы, даже если я еще не нашел, как его использовать.

Должен ли я изменить ограничения на развертывание GKE по умолчанию вКубэ-система? Есть ли проблемы с развертыванием prometheusOperator на GKE?

1 Ответ

0 голосов
/ 09 октября 2019

Просматривая много ссылок, я думаю, что понимаю проблему здесь.

Я думаю, что это проблема k8s, с которой вы столкнулись. [1]

Кажется, что существует проблема с квотами CFS в Linux, которая затрагивает все контейнеризованные облака, включая Kubernetes, вы можете обойти эту проблему, добавив более высокий предел ЦП в свой кластер или удалив ограничения ЦП из своих контейнеров,Пожалуйста, проверьте это в промежуточной среде, а не прямо на производстве.

Best of Luck!


[1] https://github.com/kubernetes/kubernetes/issues/67577

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...