Как можно получить все pod в кластере из filebeat? - PullRequest
0 голосов
/ 27 декабря 2018

Я настраиваю бит файла на kubernetes.Когда я развернул Filebeat в Kubernetes, я получил все журналы контейнеров в первый раз.Я проверил все реплики и узлы. Я хочу сделать то же самое с Хелмом.Однако я применил очень сложную конфигурацию, я не могу получить файлы журналов всех контейнеров, PodList возвращает только запущенный журнал узла контейнера.Я не могу узнать, как я это сделал с первой попытки.Первый вариант, который мне пришёл в голову, - дать сервисной учетной записи роль администратора кластера.но я не смог получить доступ ко всем файлам журнала снова, когда попробовал.

Это мой последний конфиг.просто работает на работающем узле.(DAEMONSET ОЧЕНЬ ПЛОХОЕ РЕШЕНИЕ. Потому что, если я как-нибудь достигну списка модулей главного узла, я смогу найти решение в одном случае, как упомянуто выше.)

config автообнаружения.

apiVersion: v1
kind: ConfigMap
metadata:
  name: filebeat-config
  namespace: bau
  labels:
    k8s-app: filebeat
data:
  filebeat.yml: |-
    filebeat.autodiscover:
      providers:
        - type: kubernetes
          templates:
            - condition:
                equals:
                  kubernetes.namespace: kube-system
              config:
                - type: docker
                  containers.ids:
                    - "${data.kubernetes.container.id}"
                  exclude_lines: ["^\\s+[\\-`('.|_]"]
    output.elasticsearch:
      hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}']
    setup.template.settings:
      index.number_of_shards: 5

мой модуль:

apiVersion: v1
kind: Pod
metadata: 
  name: filebeat
  namespace: bau
spec: 
  serviceAccountName: filebeat
  containers: 
    - 
      args: 
        - "-c"
        - /etc/filebeat.yml
        - "-e"
      env: 
        - 
          name: ELASTICSEARCH_HOST
          value: "http://bau-sla-elasticsearch"
        - 
          name: ELASTICSEARCH_PORT
          value: "9200"
        - 
          name: KIBANA_HOST
          value: "http://bau-sla-kibana"
        - 
          name: KIBANA_PORT
          value: "5601"
      image: "10.6.155.20:5000/filebeat:6.5.3"
      name: filebeat
      resources: 
        limits: 
          memory: 200Mi
        requests: 
          cpu: 100m
          memory: 100Mi
      securityContext: 
        runAsUser: 0
        fsGroup: 2000
      volumeMounts: 
        - 
          mountPath: /etc/filebeat.yml
          name: config
          subPath: filebeat.yml
        - 
          mountPath: /usr/share/filebeat/data
          name: data
        - 
          mountPath: /var/lib/docker/containers
          name: varlibdockercontainers
          readOnly: true
  volumes: 
    - 
      name: config
      configMap: 
        defaultMode: 384
        name: filebeat-config
    - 
      hostPath: 
        path: /var/lib/docker/containers
      name: varlibdockercontainers
    - 
      hostPath: 
        path: /var/lib/filebeat/bau
        type: DirectoryOrCreate
      name: data

мой сервис и кластеробвязка:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: filebeat
  namespace: bau
  labels:
    k8s-app: filebeat
kubectl create clusterrolebinding filebeat \
  --clusterrole=cluster-admin \
  --serviceaccount=bau:filebeat
...