이슈
K8S 클러스터의 노드 하나가 BGP 커넥션 형성 실패 ( BIRD is not ready: BGP not established )
설명
CNI로 Calico를 사용중이다. Calico는 클러스터의 각 노드에 가상라우터를 생성하고 BGP 방식으로 각 노드의 파드 서브넷을 광고하고 서로의 라우팅 테이블을 학습한다. 그러므로 BGP 커넥션이 형성이 중요한데 형성되지 못하는 이슈가 발생하였다.
Calico Node 파드 로그
Warning Unhealthy 16m (x2 over 17m) kubelet Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/calico/bird.ctl: connect: connection refused
Warning Unhealthy 16m kubelet Readiness probe failed: 2025-04-25 02:07:58.377 [INFO][392] node/health.go 202: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with 192.168.1.204,192.168.1.205
Warning Unhealthy 16m kubelet Readiness probe failed: 2025-04-25 02:08:28.397 [INFO][418] node/health.go 202: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with 192.168.1.204,192.168.1.205
워커 노드(189) 하나가 204, 205 노드와 BGP 커넥션을 형성하지 못했다.
해결과정
calicoctl 를 설치하고 calico node 상태를 조회하였다.
보았더니 PEER ADDRESS로 192.168.1.189가 아닌 10.0.3.5로 설정되어 있었다.
Peer Address 설정 방식은 first-found 방식의 autodetect였다. 한마디로 Calico Node를 형성하는 과정에서 192.168.1.206이 아닌 어떤 유효한 네트워크 인터페이스가 존재했다는 의미이다. 그래서 189번에 접속하여 10.0.3.5를 가진 네트워크인터페이스가 무엇인지 찾아보았다.
이전에 해당 노드에 cilium을 설치한 적이 있는데, cilium 관련 설정을 모두 삭제했지만 해당 네트워크 인터페이스가 남아 인식되어 버린 것 같다. 그래서 cilium 관련 인터페이스를 모두 삭제하였다. ( sudo ip link delete [인터페이스명] )
삭제 후 Calico CNI를 재설치하여 테스트 해본 결과 정상적으로 BGP 연결이 되었음을 확인하였다. ( Calico Node 파드만 재실행해도 되는지는 확인하지는 못했다. )
'TroubleShooting > Kubernetes' 카테고리의 다른 글
Nebuly MPS Nvidia Device Plugin의 GPU 메모리 파티셔닝 (0) | 2025.05.07 |
---|---|
Host DNS 설정 변경 시, CoreDNS 파드 재시작 필요 (0) | 2025.05.07 |
노드 재부팅 후 K8S 클러스터가 동작하지 않은 현상 ( swap off ) (0) | 2025.05.07 |