이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

Kubernetes/Kubernetes 에러 경험

metricbeat : Error initializing Kubernetes metadata enricher

이쿠우우 2024. 9. 7. 21:04
반응형

metricbeat 사용중 에러 발생

오류명

Error initializing Kubernetes metadata enricher: unable to build kube config due to error: invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable

 

 

원인

kubeconfig 파일을 찾지 못해서 발생하는 에러.
근데 왜 worker node에서 kubeconfig 파일을 사용해야하는지는 ... 모르겠음.
리서치 항목 : kubeconfig 있을 때, 없을 때 차이 비교해봐야함.
  • kubeconifg 값에 아무것도 안주고 이상이 없는지 확인 (ERROR log 남는지 확인)
  • kubeconfig 환경변수 추가 안하고 kube-proxy, state-metrics 등 정보 가져오는지 확인
  • kubeconfig 환경변수 정상 추가 후 kube-proxy, state-metrics 등 정보 가져오는지 확인
결론 : 해당 에러는 단순하게 kubeconfig 환경변수 못찾아서 발생하는 오류고 실제 동작에는 영향이 없음.

 

해당 에러는 Metricbeat이 Kubernetes API 서버와 통신하기 위해 필요한 구성 정보가 없어 발생하는 문제입니다. 로컬 환경에서 실행 중인 Metricbeat은 Kubernetes 클러스터 내부에서 실행 중인 Pod이나 Container가 아니므로, InCluster 인증 방식을 사용할 수 없습니다.

 

 

해결책

kubernetes module의 kubeconfig 옵션을 사용해봤지만 해결되지 않음.
그래서 환경 변수를 사용하는 아래와 같은 방법을 사용해야함.

 

kubeconfig파일을 다운받고
worker node의
/etc/metricbeat/kubeconfig.yaml
경로에 배치
 
cat /etc/systemd/system/metricbeat.service
파일에
Environment=KUBECONFIG=/etc/metricbeat/kubeconfig.yaml
내용 추가해야함
아래와 같이 수정.
[Unit]
Description=metricbeat

[Service]
Environment=KUBECONFIG=/etc/metricbeat/kubeconfig.yaml
ExecStart=/bin/bash -c '/bin/metricbeat --path.config /etc/metricbeat/ -c /etc/metricbeat/metricbeat.yml -e'
Delegate=yes
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

이후

systemctl daemon-reload
systemctl restart metricbeat
반응형