IBM Cloud Docs
Calico 컴포넌트 디버깅

Calico 컴포넌트 디버깅

가상 프라이빗 클라우드 클래식 인프라

버전에서 1.29 그리고 나중에, Calico 운영자가 수를 결정합니다.calico-typha 클러스터 작업자 수를 기반으로 포드를 생성하며 오염된 노드를 고려하지 않습니다. 클러스터에 오염되지 않은 노드가 3개 미만이거나 오염되지 않은 노드 수가 적은 매우 큰 클러스터가 있는 경우 하나 이상의 노드가 있을 수 있습니다.calico-typha 꼬투리가 끼어 있어요 Pending 포드가 실행할 오염되지 않은 노드를 찾을 수 없기 때문입니다. 일반적으로 실행 중인 상태의 calico-typha 파드가 하나 이상 있는 한 문제가 발생하지 않습니다. 그러나 고가용성을 위해 최소 2개의 calico-typha 파드를 항상 실행하는 것이 좋습니다. 가장 좋은 방법은 모든 노드를 실행하기에 오염되지 않은 노드가 충분한지 확인하는 것입니다.calico-typha 다음에 의해 생성된 포드 Calico 운영자.

배치되지 않는 팟(Pod) 또는 간헐적인 네트워킹 문제와 같은 Calico 컴포넌트에 대한 문제가 발생합니다.

문제에 대한 자세한 정보를 수집하려면 Calico 컴포넌트의 로깅 레벨을 늘리십시오.

calico-typha 컴포넌트의 로그 레벨 늘리기

calico-typha 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.

  1. 다음 명령을 실행하여 calico-typha 배치를 편집하십시오.

    1.29 이상 버전:

    kubectl edit deploy calico-typha -n calico-system
    

    1.28 이하의 경우:

    kubectl edit deploy calico-typha -n kube-system
    
  2. TYPHA_LOGSEVERITYSCREEN 환경 변수를 info에서 debug로 변경하십시오.

          containers:
        - env:
          - name: TYPHA_LOGSEVERITYSCREEN
            value: debug
    
  3. 파일을 저장한 후 닫아 변경사항을 적용하고 calico-typha 배치를 다시 시작하십시오.

calico-cni 컴포넌트의 로그 레벨 늘리기

calico-cni 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.

  1. 다음 명령을 실행하여 calico-config configmap을 편집하십시오.

    kubectl edit cm -n kube-system calico-config
    
  2. cni_network_config > plugins > log_level 환경 변수를 debug로 변경하십시오.

      cni_network_config: |-
      {
        "name": "k8s-pod-network",
        "cniVersion": "0.3.1",
        "plugins": [
          {
            "type": "calico",
            "log_level": "debug",
    
  3. 파일을 저장한 후 닫으십시오. calico-node 팟(Pod)이 다시 시작될 때까지 변경사항이 적용되지 않습니다.

  4. 변경사항을 적용하려면 calico-node 팟(Pod)을 다시 시작하십시오.

    kubectl rollout restart daemonset/calico-node -n kube-system
    

    출력 예

    daemonset.apps/calico-node restarted
    

calico-node 컴포넌트의 로그 레벨 늘리기

calico-node 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.

  1. 다음 명령을 실행하십시오.

    1.29 이상 버전:

    kubectl edit ds calico-node -n calico-system
    

    1.28 이하의 경우:

    kubectl edit ds calico-node -n kube-system
    
  2. FELIX_USAGEREPORTINGENABLED 이름 및 값 쌍 아래에(또는 FELIX_* 환경 변수 이름 값 쌍 다음에) 다음 항목을 추가하십시오.

    - name: FELIX_LOGSEVERITYSCREEN
      value: Debug
    
  3. 변경사항을 저장하십시오. 변경사항을 저장하면 calico-node daemonset의 모든 팟(Pod)이 변경사항을 적용하는 롤링 업데이트를 완료합니다. calico-cnikube-system/calico-config configmap의 로깅 레벨에 변경사항을 적용합니다.

calico-kube-controllers 컴포넌트의 로그 레벨 늘리기

calico-kube-controllers 컴포넌트의 로그 레벨을 늘리려면 다음 단계를 완료하십시오.

  1. 다음 명령을 실행하여 daemonset을 편집하십시오.

    1.29 이상 버전:

    kubectl edit ds calico-node -n calico-system
    

    1.28 이하의 경우:

    kubectl edit ds calico-node -n kube-system
    
  2. DATASTORE_TYPE 이름 및 값 쌍 아래에 다음 항목을 추가하십시오.

    - name: LOG_LEVEL
      value: debug
    
  3. 변경사항을 저장하십시오. calico-kube-controllers 팟(Pod)이 다시 시작되고 변경사항을 적용합니다.

Calico 로그 수집

  1. 클러스터의 파드와 노드를 나열하고 문제가 있는 파드 이름, 파드 IP 주소, 워커 노드를 노드로 만드세요.

  2. 문제점이 발생한 작업자 노드의 calico-node 팟(Pod)에 대한 로그를 가져오십시오.

    1.29 이상 버전:

    kubectl logs calico-typha-aaa11111a-aaaaa -n calico-system
    

    1.28 이하의 경우:

    kubectl logs calico-typha-aaa11111a-aaaaa -n kube-system
    
  3. calico-kube-controllers 팟(Pod)에 대한 로그를 가져오십시오.

    1.29 이상 버전:

    kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-system
    

    1.28 이하의 경우:

    kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n kube-system
    
  4. kubectl exec를 사용하여 디버깅의 지시사항에 따라 작업자 노드에서 /var/log/syslog, containerd.log, kubelet.logkern.log을(를) 가져오십시오.