0

Stackdriver 로깅 에이전트가 활성화 된 Google 컨테이너 엔진에 컨테이너 클러스터가 있습니다. 내 컨테이너에서 stdout 로그를 올바르게 가져옵니다. 이제 fluentd config를 변경하여 GCP 로깅보기에 표시된 로그가 올바른 심각도와 구성 요소를 갖도록 로그 파서를 지정하고 싶습니다. 이 Stackdriver logging guide from kubernetes.io 다음GKE 관리 로깅 에이전트에 대한 fluentd 구성을 변경하는 방법은 무엇입니까?

, 나는 시도했다 :

  1. 새로운 ConfigMap 이름 가 Fluentd를 만든 YML 파일
  2. 추가 된 새로운 <filter> 내 log4js에 따라 로그 형식
  3. 로 Fluentd에 ConfigMap에게 가져 -cm-2 in kube-system 네임 스페이스
  4. fluentd에 대해 DaemonSet을 편집하고 ConfigMap ~ fluentd-cm-2. 나는 후자가 DaemonSet yaml의 새로운 복사본을 얻은 후에도 "개체가 수정되었습니다."라는 오류 메시지와 함께 실패했기 때문에 대신 kubectl edit ds을 사용했습니다.

예기치 않은 결과 : DaemonSet를 다시 시작하지만, 그 구성이 원래 ConfigMap에 복귀, 그래서 내 변경 사항을 적용하지 않았다.

ConfigMap도 직접 편집 (kubectl edit cm fluentd-gcp-config-v1.1 --namespace kube-system)했으나 저장했지만 되돌려졌습니다.

fluentd에 대한 DaemonSetConfigMap에는 addonmanager.kubernetes.io/mode: Reconcile이라는 태그가 지정되었습니다. 나는이 "화해"모드 때문에 GKE가 나의 설정을 덮어 썼다고 결론을 내릴 것이다.

제 질문은 : 클러스터 공급시 로깅 에이전트가 GKE에 의해 설치되었을 때 Google Container Engine 클러스터의 유동적 인 구성을 어떻게 변경할 수 있습니까?

답변

3

documentation page you mentioned의 전제 조건 섹션을 살펴보십시오. GKE에서는 기본 Stackdriver Logging 통합을 변경할 수 없습니다. 그 이유는 GKE가이 구성을 유지 관리하기 때문입니다. 에이전트를 업데이트하고 상태를 감시합니다. 가능한 모든 구성에 대해 동일한 수준의 지원을 제공 할 수는 없습니다.

그러나 항상 기본 통합을 비활성화하고 패치 된 자체 버전의 DaemonSet을 배포 할 수 있습니다. 당신은 GKE documentation의 기본 통합을 사용하지 않도록 설정하는 방법을 찾을 수 있습니다 :

gcloud beta container clusters update [CLUSTER-NAME] \ --logging-service=none

주를 기본 통합을 해제 한 후, 새 배포 자신을 유지해야한다는 : 에이전트를 업데이트를 자원을 설정, 건강을 지켜라.

+0

감사합니다. – edwinbs