인프런 커뮤니티 질문&답변
16강 16:59 부분 문의드립니다
작성
·
10
·
수정됨
0
16강 16:59 부분에 왜 새로운 세션을 접속하는것이고 그 이후에 ss 명령어를 실행하는 이유 알 수 있을까요?
kubectl node-shell $NN1 명령어로 접속하면 api server로 통신이 되어서 추가된 tcp 가 보이는걸까요?
답변 2
0
안녕하세요. CloudNet@ 팀입니다.
EKS 환경에서 통신 흐름에 따른 세션 처리 질문에 대한 답변드립니다.
먼저 kubectl node-shell <노드명> 명령으로 노드에 접속하면 실제 접근 흐름은 다음과 같습니다.
사용자 → Kubernetes API Server → 대상 노드의 Kubelet
즉, 사용자가 직접 노드로 SSH 접속하는 것이 아니라
API Server가 Kubelet에 요청을 보내고, Kubelet이 노드 안에서 nsenter 기반의 임시 쉘 프로세스를 실행하는 방식입니다.
그래서 node-shell을 실행하면:
API Server → Kubelet 사이에 새로운 연결(세션)이 생김
-> Kubelet이 node-shell을 위해 “임시 쉘 프로세스(nsenter)”를 만들기 때문
이 연결을 유지하려고 kubelet이 TCP 연결을 하나 더 염
-> 이 연결을 통해 node-shell의 입·출력이 오간다.
따라서 ss 명령어에서 새로운 ESTABLISHED 세션이 보임
-> API Server와 Kubelet이 node-shell 세션을 유지하고 있다는 의미
결론적으로 질문했던 것처럼:
“kubectl node-shell로 접속하면 api-server와 통신해서 tcp 세션이 보이는 건가요?”
→ 맞습니다.
node-shell은 로컬 SSH가 아니라 API Server를 통해 프록시되는 exec 접속이기 때문에 API Server와 Kubelet 사이의 새로운 TCP 세션이 생성되고, 그 연결이 ss 명령으로 확인되는 것입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. tpcable127님.
질문해주신 부분에 대해 설명드리겠습니다. kubectl node-shell을 사용하여 새로운 세션을 접속하는 것은, 해당 명령어가 Kubernetes 노드에 직접 접근하여 셸을 실행하기 위함입니다. 이는 관리용으로 노드에 진입하여 필요한 커맨드를 실행하거나, 문제를 진단하기 위해 사용하는 방법입니다.
16강 16:59 부분에 진행한 ss 명령어는 네트워크 소켓 정보를 확인하기 위한 것입니다. 이 명령어를 실행하면 노드의 현재 TCP 프로세스와 관련된 연결 상태 등을 확인할 수 있습니다. 특히, 노드의 네트워크 상태를 실시간으로 진단하거나 특정 서비스의 연결 상태를 확인하는 데 유용합니다.
kubectl node-shell $NN1 명령어로 접속하면 이 노드를 통해 API 서버와의 통신도 가능하게 됩니다. 그래서 해당 노드에서 실행 중인 모든 소켓, 즉 TCP 연결 상태를 쉽게 모니터링할 수 있습니다. 추가된 TCP가 보인다면 이는 현재 노드에 대해 외부에서 연결된 세션이 있음을 의미할 수 있습니다.
관련하여 더 깊게 이해하시기 위해 다음의 유사한 질문을 참고해 보시기 바랍니다:
- Amazon VPC CNI 아키텍처와 통신 흐름: 다른 노드에서 통신 흐름에 대한 상세한 설명이 포함되어 있습니다.
- AWS VPC CNI의 ENI에서 질문이 있습니다.: 네트워크 인터페이스 구성에 대한 설명이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





