<!doctype html>
[k8s] kubespray로 쿠버네티스 설치 후 calico-node 에서 CrashLoopBackOff 에러가 날 경우
-
kubernetes 설치 후 helm list 명령어 실행 시 네트워크 통신 문제가 발생
-
kubectl get pods -A
명령어로 kube 시스템 파드를 점검한 결과 네트워크와 관련된 calico-node 파드가 CrashLoopBackOff 상태였다.xxxxxxxxxx
[root@k8s-master sample]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-5868c849f5-jbcqt 1/1 Running 0 3h31m
kube-system calico-node-7q6fk 0/1 CrashLoopBackOff 52 3h31m
kube-system calico-node-d8wm8 0/1 Running 48 3h18m
kube-system coredns-74c9d4d795-sdkw4 0/1 Running 0 3h17m
-
파드 노드 로깅 분석 결과 Kernel 의 ip_filter 에서 충돌이 발생했다.
-
쿠버네티스는 calico 를 사용하기 위해 net.ipv4.conf.all.rp_filter 값을 0이나 1로 설정해야 한다.
xxxxxxxxxx
[FATAL][264] int_dataplane.go 980: Kernel's RPF check is set to 'loose'. This would allow endpoints to spoof their IP address. Calico requires net.ipv4.conf.all.rp_filter to be set to 0 or 1. If you require loose
> RPF and you are not concerned about spoofing, this check can be disabled by setting the IgnoreLooseRPF configuration parameter to 'true'.
-
/etc/sysctl.conf
파일에 net.ipv4.conf.all.rp_filter = 1을 추가한 후sysctl -p
로 커널 파라미터 수정을 반영한다. -
kubectl get pods -A
명령어로 파드 상태를 재조회하면 정상화됨을 확인할 수 있다.xxxxxxxxxx
[root@k8s-master ~]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-5868c849f5-jbcqt 1/1 Running 0 3h43m
kube-system calico-node-7q6fk 1/1 Running 53 3h44m
kube-system calico-node-d8wm8 1/1 Running 50 3h30m
kube-system coredns-74c9d4d795-sdkw4 1/1 Running 0 3h29m
kube-system coredns-74c9d4d795-tf6ls 1/1 Running 0 3h29m
'k8s' 카테고리의 다른 글
[k8s] node.js 애플리케이션 쿠버네티스(kubernetes) 클러스터에 디플로이먼트(deployment)로 배포하기 (1) | 2019.10.11 |
---|---|
[k8s] kubespray 를 사용한 bare-metal 서버에 쿠버네티스 설치하기 (0) | 2019.09.06 |
[K8S] Azure AKS 클러스터에서 helm 차트 사용하기 (0) | 2019.08.26 |
[K8S] Azure CLI 로 AKS 클러스터 구성 및 로컬 환경에서 kubectl 로 AKS 클러스터 연결하기 (0) | 2019.08.23 |
[k8s] 공개용 Docker Image를 다운로드하여 사설 Registry 로 옮기기 (0) | 2019.07.19 |