Я настраиваю бит файла на 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