묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결초보를 위한 쿠버네티스 안내서
nodeport 질문
deployment는 replica set을 만들어서 관리할 수 있게 하는데, 롤링 업데이트와 같은 기능을 추가로 제공한다고 공부했는데요. 그래서 deployment를 생성하면 replica set이 생성되는 걸 확인할 수 있었습니다. nodeport의 경우는 cluster ip를 통해서만 pod에 접근한다고 공부했는데요.nodeport만 생성하면 따로 cluster ip service가 생성되지 않더라구요.눈에 보이지 않게 내부적으로 생성해서 사용하는 걸까요?아니면 nodeport가 cluster ip의 기능을 포함(java로 치면 상속?)한 객체인걸까요?
-
미해결대세는 쿠버네티스 [초급~중급]
NodePort 사용 시 파드가 실행 중인 워커 노드 IP로만 접속됩니다.
안녕하세요! 강의와 약간 다르지만 VirtualBox가 아닌 GCP 환경에서 실습을 하고 있습니다. GCP 인스턴스 세 대에서 kubeadm으로 마스터 노드 1대, 워커 노드 2대를 구성하여 Calico까지 설치를 하였는데요, 여기까지는 큰 문제 없이 진행되었습니다. 이 다음으로는 제가 ArgoCD를 한번 사용해보려고 공식 문서 설치 가이드에 따라 ArgoCD를 설치하고, 서비스를 NodePort로 설정하였습니다. (ArgoCD가 아닌 제가 직접 만든 서버에서도 아래 말씀 드릴 문제와 동일한 네트워크 문제가 있어 ArgoCD의 문제는 아닌 것 같습니다. 그냥 임의의 NodePort 서비스 하나 만들었다고 생각해주시면 감사하겠습니다.) 위 사진에서처럼 모든 파드가 Running 상태이고, argocd-server 서비스가 NodePort로 올라가 있습니다. 여기에서 argocd-server 파드가 worker-2 노드에서 실행중인데, 제 로컬 PC에서 브라우저나 curl로 <worker-2 IP>:31434 로는 잘 연결이 되는데, <worker-1 IP>:31434 또는 <master IP> :31434로는 연결이 되질 않습니다. 구글링을 여러 번 해봤는데 iptables -P FORWARD ACCCEPT 명령어를 사용하면 해결이 된다고 하는데 이 방법으로도 해결이 안됩니다 ㅜㅜ 강의 네트워킹 파트 보면서 어디에 문제가 있는지 찾아보려고 몇 번 시도해본 바로는, 1. 파드가 실행중인 worker-2에서 curl <서비스 클러스터 IP>:80 은 잘 됩니다. 2. 파드가 실행중이지 않은 master, worker-1에서 curl <서비스 클러스터 IP>:80 은 연결이 안됩니다.(Connection timed out) 3. worker-1과 worker-2에서 각각 tcpdump -i eth0 port 31434 실행시키고 <worker-1의 IP>:31434 접속 시도했을 때 worker-1에서는 패킷이 찍히지만 worker-2에서는 패킷이 찍히지 않습니다. 아마 아래 강의자료 그림에서처럼 파드가 없는 노드(우측)에는 패킷이 들어왔는데 파드가 실행중인 노드(좌측)에는 패킷이 들어오지 않은 것을 보면 Route나 Overlay 단계에서 문제가 있는 것 같습니다. 내용 추가 위에 패킷을 찍어볼 때 원래 인터페이스 지정을 안했어서 tcpdump -i cali427d2dd59fe -new tcp -vv로 다시 했더니 worker-2에 패킷이 들어오는 건 확인했습니다. 그런데 체크섬 incorrect라는 로그가 많이 보여서 내용이 정상인지는 잘 모르겠습니다... 혹시 이 다음에 어떤 걸 확인해야 할까요?