해결된 질문
작성
·
338
1
GCP로 공부하고 있습니다만, 쿠버네티스 용 서비스가 아닌 일반 VM 인스턴스에서 직접 도커와 쿠버네티스를 설치하면서 실습하고있었는데요, 해당 강의중에 쿠버네티스로 서비스를 올려서 외부 아이피로 Http 웹사이트에 노출시키는 걸 봤는데 똑같이 파드 만들고 서비스까지 올렸지만 제 아이피와 포트번호는연결 거부가 나타나면서 방화벽 확인을 해달라하네요.
도커로 진행했을땐 동일 아이피에서 포트번호 8100으론 출력이 되었는데 쿠버네티스를 통해선 안되는데 별도 설정이 필요한걸까요?
아 해당 GCP 인스턴스 외부 아이피는 현재 고정상태입니다.
답변 7
1
No defined Path는 일단 pod로 잘 호출된 상태입니다.
근데 예약된 Path가 아닌 api를 호출하면 그런 메세지가 리턴되도록 되어있고요.
api를 어떻게 호출하셨을까요?
1
apiserver-advertise-address는 Master Node의 IP로 하셔야합니다.
Service의 ExternalIPs 세팅시 통신이 안되면
Service 강의에 NodePort 세팅으로 구성을 해보시고도 안되는지 확인해보셔도 좋을거 같고요.
정상적으로 Pod가 Running 중인건지?
kubectl get pods --all-namespaces를 했을때 Pod 상태들이 모두 정상인가요?
그리고 netstate -anp | grep <port> 를 했을때 해당 포트가 리스닝 되있는지?
1
도커에서 8100으로 출력한 Port를 외부에서 접근 가능하다고 하심은결국 외부에서 VM의 특정 Port까지 접근 가능하고, 방화벽에는 문제 없다고 봐야겠네요?
근데 네트워크 문제는 각자의 환경에 따라 다르기 때문에 제가 딱 뭐가 문제다라고 말씀드리기가 어렵습니다.
정상적으로 쿠버네티스가 잘 설치됐다면, 별도로 externalIP를 위해서 해줘야할것 없어서요.
유일하게 쿠버네티스 설치시 신경써줘야 할 부분이 있다면 아래 내용인데
kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address=192.168.0.30
위에 apiserver-advertise-address 옵션을 잘 주셨나요?
그리고 어느 구간에 문제가 있는지 하나씩 디버깅을 해봐야는데
먼저 쿠버네티스에서 생성한 externalIP의 Port가 VM에서 실제 Port로 바인딩이 됐는지,,
0
0
0
파드들은 정상적으로 러닝중입니다.
별도 노드용 인스턴스는 만들지 않았고 마스터 노드에서 실행중입니다. 마스터 롤은 제외시켰구요
netstat 확인해보니 해당 포드가 아에 목록에서 나오질 않네요..
도커쪽 포트는 리스닝중인데 확인 되는데 쿠버네티스는 안보이네요.
서비스의 상태입니다.
Name: hello-svc
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=hello
Type: ClusterIP
IP Families: <none>
IP: 10.107.112.85
IPs: 10.107.112.85
External IPs: 내 VM 외부 IP 주소
Port: <unset> 8200/TCP
TargetPort: 8000/TCP
Endpoints: 192.168.107.196:8000
Session Affinity: None
Events: <none>
svc야믈입니다.
apiVersion: v1
kind: Service
metadata:
name: hello-svc
spec:
selector:
app: hello
ports:
- port: 8200
targetPort: 8000
externalIPs:
- 내VM 외부 IP주소
0
--apiserver-advertise-address=192.168.0.30
이 옵션 값을 제 인스턴스 외부아이피와 맞춰야하나요?? 아니면 그냥 선생님처럼 진행하면될까요?
센토OS로 하셨지만 저는 현재 우분투 환경입니다.