작성
·
399
1
답변 5
1
안녕하세요 강사님. ^^
강의 0:50 ~ 0:59 에 pod-1을 생성하는데요 containerPort를 사용하셧구요 IP가 10.16.36.75가 생겼어요, 서비스 없이 만들어졌구요 클러스터 내에서만 접속 할수 있어요 k8s master 에서 curl이 가능해요
1
답변 감사합니다. 일부 제가 질문을 잘못 했는데요
서비스 없이 POD에 Pod N/W 대역 IP 아닌 Server N/W 대역의 IP를 할당 받을수 있는지요 ?
본 실습을 보면 pod생성시에 containerPort를 사용하면 Pod에 서비스 NW대역의 IP 가 생성되는 것으로 보여서 질문 드렸습니다.
0
네, 확인 감사합니다.
이제 무슨 내용인지 이해됐네요.
그건 캘리코 네트워크 플러그인 때문입니다.
강의에서 master나 worker노드에서 Pod나 Service의 IP를 호출할 경우가 있는데
그건 서비스 네트워크 플러그인으로 캘리코라는게 설치되었고,
해당 플러그인이 해당 VM에서 Pod IP로 호출해도 통신이 가능하게끔 기능을 제공해주기 때문에 가능한 점입니다.
모든 네트워크 플러그인이 그런 기능을 제공해주는건 아니고, 클라우드나 다른 환경적인 부분에 따라서 같은 캘리코 플러그인을 설치하더라도 그렇게 통신이 되지 않는 경우도 있습니다.
해당 부분을 보시고, Pod IP만 가지고 외부에서 호출한다라는 오해가 생길 수가 있겠네요.
외부에서 원하는 Pod로 호출하려면, 기본적으로 Service의 도움이 필요하다고 보시면 됩니다.
하지만, 정말 Pod만 생성해서 외부에서 통신 가능한 경우도 있긴 합니다.
그건 Pod 생성시 스펙으로 hostPort라는게 있는데,
예를들어 Pod의 hostPort로 10080으로 세팅을 한다면,
해당 Pod가 workernode2번에 올라가 있을 경우, 해당 workernode2 IP의 10080으로 다이렉트로 연동이 됩니다.
이 경우는 DaemonSet이라는 컨트롤러로 앱을 설치해하는 경우 특별히 사용되는 케이스입니다.
0
0
안녕하세요.
질문이 살짝 헷갈리는데, 일단 답변드리겠습니다.
Pod를 만들면, 각 Pod에 대한 IP가 동적으로 생성됩니다. Pod가 죽으면 IP가 변하고요,
그리고 해당 Pod에 Service를 연결하면, Service도 별도의 IP가 할당되고,
그 Service IP를 통해 Pod에 접근할 수 있습니다.
이렇게 하면 Pod가 죽어서 IP가 바뀌더라도, Service를 통해 고정적으로 접근가능해집니다.
좀더 다양한 Service 사용/호출 방법은
[중급편] Service를 보시면 됩니다.
그리고 Pod 내에 컨테이너가 두개 있다면,
컨테이너1이 컨테이너2에게는 localhost:8081, localhost:8082 등으로 호출 해야합니다.
컨테이너는 Pod의 한 IP를 공유하기 때문에 Port를 통해서만 구분해서 호출 할수 있거든요.
해당 부분의 좀더 자세한 내용은
[중급편] 아키텍쳐 - Networking을 보시면 됩니다.
부족한 답변이 있으면 추가 질문 주시기 바랍니다.
감사합니다.