해결된 질문
작성
·
259
0
안녕하세요 강사님!!!
강의 잘 듣고있습니다 :)
현재 오픈스택으로 ip 두개를 할당받고 각각을 마스터노드 워커노드로 사용중입니다
두개는 kubeadm init, join 을 통해 연결이 되어있는 상태이구요
GCP나 AWS 같은 퍼블릭 클라우드를 사용하지않고 로컬 환경에서 클러스터를 구성했습니다
마이크로서비스로 웹서비스를 구축하고자하는데 서비스 배포가 잘 되었고
kubectl get pods 로 모든 서비스가 running 상태입니다.
이제 프론트엔드 부분의 ip 를 띄어서 웹에서 접속을 하려고하는데
kubectl get service/서비스이름 을 하게되면 external ip 가 나타나질않습니다
당연히 외부 ip 가 안나타는게 정상이라고 생각이드는데
1. 노드포트 서비스를 사용하면 마스터노드ip주소:노드포트번호 이런식으로 접속이 되어야하는게 맞나요?
2. 로드밸런서를 사용하려고하는데 metalb 라는 외부 ip를 띄어주는 프로그램이 있어서 설치를 해봤습니다.
metalb는 직접 컨피그맵에 외부 ip 대역을 지정을 해줘야하더라고요. 이때 외부 ip 는 마스터노드 ip 대역을 사용하는게 맞을까요?
3. 현재 노드포트 서비스, 로드밸런서 두개다 해봤는데 어떻게해도 url 로 접속이 되질 않는 상태이고요 혹시 문제가 있나해서 nginx 이미지를 노드포트 서비스로 배포해봤는데 curl localhost:80 혹은 curl localhost:8080 두개다 연결이 되지않는다는 오류가 뜨면서 작동이 되질 않습니다. 퍼블릭이 아닌 로컬 쿠버네티스 환경에서 배포하려면 어떻게 진행을 해야할까요?
답변 1
0
안녕하세요 강사 최일선입니다.
1. 노드포트 서비스를 사용하면 마스터노드ip주소:노드포트번호 이런식으로 접속이 되어야하는게 맞나요?
마스터 노드는 일반적으로 서비스 대상에 포함하지 않습니다. 다음 그림을 보시면 마스터 노드에서 서비스가 가능은 하지만 마스터 노드의 목적상 외부에서 트래픽을 직접 받게하지는 않습니다(물론 그렇지 않은 경우도 있습니다). 노드 포트는 모든 노드에서 공통적으로 열리는 포트입니다. 마스터노드에서도 열리지만 워커노드에서도 동일한 포트로 동일한 서비스를 제공하고 있습니다.
2. 로드밸런서를 사용하려고하는데 metalb 라는 외부 ip를 띄어주는 프로그램이 있어서 설치를 해봤습니다.
metalb는 직접 컨피그맵에 외부 ip 대역을 지정을 해줘야하더라고요. 이때 외부 ip 는 마스터노드 ip 대역을 사용하는게 맞을까요?
외부 IP는 배치되는 솔루션이나 네트워크 장비에 따라 상의할 수 있겠지만 상위 그림에서는 로드밸런서의 IP를 의미합니다. 마스터의 IP는 아닙니다.
3. 현재 노드포트 서비스, 로드밸런서 두개다 해봤는데 어떻게해도 url 로 접속이 되질 않는 상태이고요 혹시 문제가 있나해서 nginx 이미지를 노드포트 서비스로 배포해봤는데 curl localhost:80 혹은 curl localhost:8080 두개다 연결이 되지않는다는 오류가 뜨면서 작동이 되질 않습니다. 퍼블릭이 아닌 로컬 쿠버네티스 환경에서 배포하려면 어떻게 진행을 해야할까요?
로드밸런서를 앞에 배치하면 간단히 해결되는데요 간단한 오픈소스로는 앞에 haproxy라는 프로그램이 있습니다. 우분투 기반에서 동일하게 사용이 가능합니다.
다음은 제가 작성하다가 진행을 못하는 글의 일부이긴 합니다만 도움이 되시길 바랍니다.
https://blog.naver.com/isc0304/221984189195
감사합니다.