Calico 컴포넌트 디버깅
가상 사설 클라우드 기존 인프라
배치되지 않는 팟(Pod) 또는 간헐적인 네트워킹 문제와 같은 Calico 컴포넌트에 대한 문제가 발생합니다.
배치되지 않는 팟(Pod) 또는 간헐적인 네트워킹 문제와 같은 Calico 컴포넌트에 대한 문제가 발생합니다.
Calico 오퍼레이터는 클러스터 워커의 수를 기준으로 calico-typha 포드의 수를 결정하며, 테인팅된 노드는 고려하지 않습니다. 클러스터에 테이틴트(untainted) 노드가 3개 미만이거나, 테이틴트 노드 수가 적은 초대형 클러스터인 경우, calico-typha 포드가 실행될 테이틴트 노드를 찾지 못해 ‘ Pending ’ 상태에 멈춰 있을 수 있습니다.
일반적으로 실행 중인 상태의 calico-typha 파드가 하나 이상 있는 한 문제가 발생하지 않습니다. 그러나 고가용성을 위해 최소 2개의 calico-typha 파드를 항상 실행하는 것이 좋습니다. 가장 좋은 방법은 모든 노드를 실행하기에 오염되지 않은 노드가 충분한지 확인하는 것입니다.calico-typha 다음에 의해 생성된 포드 Calico 운영자.
Calico 상세한 로그 기록이 없으면 네트워킹 문제를 진단하기 어려울 수 있습니다. Calico 구성 요소의 기본 로그 수준은 ‘ info ’로 설정되어 있으며, 이 수준에서는 기본적인 운영 정보를 제공하지만 복잡한 네트워킹 문제를 해결하는 데 필요한 충분한 세부 정보가 포함되지 않을 수 있습니다.
Calico 구성 요소의 로깅 수준을 ‘ debug ’로 높여 해당 문제에 대한 보다 상세한 정보를 수집하십시오. 디버그 수준 로깅은 네트워킹 문제의 근본 원인을 파악하는 데 도움이 되는 상세한 출력을 제공합니다.
calico-typha 컴포넌트의 로그 레벨 늘리기
calico-typha 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.
-
다음 명령을 실행하여
calico-typha배치를 편집하십시오.1.29 및 이후 버전의 경우:
kubectl edit deploy calico-typha -n calico-system1.28 이하의 경우:
kubectl edit deploy calico-typha -n kube-system -
TYPHA_LOGSEVERITYSCREEN환경 변수를info에서debug로 변경하십시오.containers: - env: - name: TYPHA_LOGSEVERITYSCREEN value: debug -
파일을 저장한 후 닫아 변경사항을 적용하고
calico-typha배치를 다시 시작하십시오.
calico-cni 컴포넌트의 로그 레벨 늘리기
calico-cni 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.
-
다음 명령을 실행하여
calico-configconfigmap을 편집하십시오.kubectl edit cm -n kube-system calico-config -
cni_network_config>plugins>log_level환경 변수를debug로 변경하십시오.cni_network_config: |- { "name": "k8s-pod-network", "cniVersion": "0.3.1", "plugins": [ { "type": "calico", "log_level": "debug", -
파일을 저장한 후 닫으십시오.
calico-node팟(Pod)이 다시 시작될 때까지 변경사항이 적용되지 않습니다. -
변경사항을 적용하려면
calico-node팟(Pod)을 다시 시작하십시오.kubectl rollout restart daemonset/calico-node -n kube-system출력 예
daemonset.apps/calico-node restarted
calico-node 컴포넌트의 로그 레벨 늘리기
calico-node 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.
-
다음 명령을 실행하십시오.
1.29 및 이후 버전의 경우:
kubectl edit ds calico-node -n calico-system1.28 이하의 경우:
kubectl edit ds calico-node -n kube-system -
FELIX_USAGEREPORTINGENABLED이름 및 값 쌍 아래에(또는FELIX_*환경 변수 이름 값 쌍 다음에) 다음 항목을 추가하십시오.- name: FELIX_LOGSEVERITYSCREEN value: Debug -
변경사항을 저장하십시오. 변경사항을 저장하면
calico-nodedaemonset의 모든 팟(Pod)이 변경사항을 적용하는 롤링 업데이트를 완료합니다.calico-cni도kube-system/calico-configconfigmap의 로깅 레벨에 변경사항을 적용합니다.
calico-kube-controllers 컴포넌트의 로그 레벨 늘리기
calico-kube-controllers 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.
-
다음 명령을 실행하여 배포를 수정하십시오.
1.29 및 이후 버전의 경우:
kubectl edit deploy calico-kube-controllers -n calico-system1.28 이하의 경우:
kubectl edit deploy calico-kube-controllers -n kube-system -
DATASTORE_TYPE이름 및 값 쌍 아래에 다음 항목을 추가하십시오.- name: LOG_LEVEL value: debug -
변경사항을 저장하십시오.
calico-kube-controllers팟(Pod)이 다시 시작되고 변경사항을 적용합니다.
Calico 로그 수집
-
클러스터에 있는 파드와 노드를 나열하고, 문제가 발생한 파드 이름, 파드 IP 주소 및 해당 워커 노드를 기록해 두십시오.
kubectl get pods -o wide -n kube-system -
문제점이 발생한 작업자 노드의
calico-node팟(Pod)에 대한 로그를 가져오십시오.1.29 및 이후 버전의 경우:
kubectl logs calico-typha-aaa11111a-aaaaa -n calico-system1.28 이하의 경우:
kubectl logs calico-typha-aaa11111a-aaaaa -n kube-system -
calico-kube-controllers팟(Pod)에 대한 로그를 가져오십시오.1.29 및 이후 버전의 경우:
kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-system1.28 이하의 경우:
kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n kube-system -
kubectl exec를 사용하여 디버깅의 지시사항에 따라 작업자 노드에서
/var/log/syslog,containerd.log,kubelet.log및kern.log을(를) 가져오십시오.