반응형
쿠버네티스에 Flannel 네트워크 플러그인을 설치하는 방법
Flannel은 쿠버네티스 클러스터에서 파드 간 통신을 가능하게 하는 네트워크 플러그인입니다.
kubernetes coredns 에러(ContainerCreating)
$ kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
coredns-f9fd979d6-z6dtd 0/1 ContainerCreating 0 45m
coredns-f9fd979d6-z7j97 0/1 ContainerCreating 0 45m
1. Flannel 설치 매니페스트 다운로드 및 적용
쿠버네티스 클러스터에 Flannel을 설치하려면 공식 매니페스트 파일을 사용합니다. 이를 통해 모든 필요한 리소스를 자동으로 생성하고 설정할 수 있습니다.
- master
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- latest
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
namespace/kube-flannel created
serviceaccount/flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created
2. 설치 상태 확인
Flannel 설치가 완료되면 관련 파드가 정상적으로 실행되고 있는지 확인해야 합니다.
kubectl get pods --namespace=kube-flannel
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-5xdnd 1/1 Running 0 52s
kube-flannel-ds-fvwgg 1/1 Running 0 52s
kube-flannel-ds-nrmtk 1/1 Running 0 52s
kube-flannel-ds-wxz6v 1/1 Running 0 52s
kube-system 네임스페이스에서 app=flannel 레이블이 있는 파드 목록을 출력합니다.
kubectl get pods -l app=flannel -n kube-flannel
728x90
3. 네트워크 확인
Flannel이 올바르게 작동하는지 확인하기 위해 클러스터 내의 파드가 서로 통신할 수 있는지 확인해야 합니다. 테스트를 위해 간단한 파드를 생성하고 네트워크 연결을 테스트할 수 있습니다.
테스트 파드 생성
두 개의 테스트 파드를 생성합니다.
kubectl run test-pod-1 --image=busybox --restart=Never -- sleep 3600
$ kubectl run test-pod-1 --image=busybox --restart=Never -- sleep 3600
pod/test-pod-1 created
kubectl run test-pod-2 --image=busybox --restart=Never -- sleep 3600
$ kubectl run test-pod-2 --image=busybox --restart=Never -- sleep 3600
pod/test-pod-2 created
busybox 이미지를 사용하여 두 개의 파드를 생성하고 이들이 3600초 동안 실행되도록 합니다.
파드 간 통신 테스트
test-pod-1에서 test-pod-2로 ping 테스트를 수행합니다.
- test-pod-1에 접속
kubectl exec -it test-pod-1 -- /bin/sh
또는
kubectl run test-pod-1 --image=busybox --restart=Never -- ping -c 4 <target-pod-ip>
- test-pod-2의 IP 주소 확인
kubectl get pod test-pod-2 -o jsonpath='{.status.podIP}'
- 위에서 얻은 IP 주소로 ping 테스트
ping <test-pod-2 IP 주소>
정상적으로 Flannel이 작동하면 test-pod-1에서 test-pod-2로 ping이 성공해야 합니다.
파드 삭제
kubectl delete pod test-pod-1
파드 강제 삭제
- --grace-period=0 : 즉시 종료(grace period 없이)합니다.
- --force : Kubernetes API 서버에 강제로 요청을 보내 리소스를 삭제합니다.
kubectl delete pod test-pod-1 --grace-period=0 --force
파드 재배포
kubectl run test-pod-1 --image=busybox --restart=Never -- sleep 3600
파드 상세 정보 확인
kubectl describe pod test-pod-1
모든 태인트 확인
kubectl describe nodes | grep -i taints
쿠버네티스 클러스터에 Flannel 네트워크 플러그인을 성공적으로 설치하고 네트워크 통신이 올바르게 이루어지는지 확인할 수 있습니다.
참고URL
- github : flannel
728x90
반응형
'리눅스' 카테고리의 다른 글
[kubernetes] Jenkins 설치 방법 (0) | 2020.11.03 |
---|---|
[kubernetes] MetalLB 설치 (0) | 2020.11.03 |
[kubernetes] component statuses 에러 (0) | 2020.11.03 |
쿠버네티스 클러스터를 재구성하는 방법 (0) | 2020.11.02 |
CentOS 8에 Zabbix Agent 5.2를 설치하는 방법 (0) | 2020.10.30 |