curl 200 반환 실패의 건
5
작성한 질문수 4
[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]
0. 질문 시 시험 지문을 그대로 복사 하거나 이미지 캡쳐를 올리지 말아 주세요.
1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.
2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.
3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.
4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.
5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)
6. 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!
안녕하세요 강사님!
Ingress 문제 실습 중 제 환경에서 검증 명령이 실패해 궁금하여 작성합니다.
curl을 했을때 계속 000이 나와서 이것저것 봤는데 아무리 해봐도 안돼서요..ㅎ
제가 잘 몰라 놓치는 부분이 분명히 있을 것 같은데 혼자서 찾기는 어려워 질문드립니다..!
문제 조건에 맞춰 아래와 같이 Ingress를 생성했습니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: echo
namespace: echo-sound
spec:
ingressClassName: nginx
rules:
- host: example.org
http:
paths:
- path: /echo
pathType: Prefix
backend:
service:
name: echoserver-service
port:
number: 8080
현재 Ingress 상태를 확인하면 backend가 정상적으로 잡혀 있는것으로 보입니다.
Host: example.org
Path: /echo
Backend: echoserver-service:8080
Endpoint: 20.108.82.221:8080
Event: nginx-ingress-controller Scheduled for sync
Service도 정상적으로 8080 포트를 사용 중입니다.
Service name: echoserver-service
Namespace: echo-sound
Type: ClusterIP
ClusterIP: 10.110.134.244
Port: 8080/TCP
Ingress Controller Service 상태는 아래와 같습니다.
Namespace: ingress-nginx
Service: ingress-nginx-controller
Type: LoadBalancer
ClusterIP: 10.98.50.248
External IP: pending
Port: 80:30523/TCP, 443:30483/TCP
/etc/hosts에는 아래처럼 설정되어 있습니다.
192.168.56.40 example.org
그리고 example.org는 IPv4 기준으로 192.168.56.40으로 정상 해석됩니다.
다만 문제의 검증 명령을 실행하면 실패합니다.
curl -4 -v http://example.org/echo
결과는 아래와 같습니다.
Trying 192.168.56.40:80...
connect to 192.168.56.40 port 80 failed: Connection refused
반면 NodePort와 Host 헤더를 직접 지정하면 정상적으로 200이 반환됩니다.
curl -H "Host: example.org" http://192.168.56.40:30523/echo
결과:
200
제가 보기에는 Ingress, Service, Endpoint 연결은 정상이고, 현재 문제는 검증 명령이 example.org:80으로 접근하는데
혹시 강의내용대로 따라가며 했는데도 강사님과 제 결과가 다른 이유가 있을까요..?
또한 이 경우 문제의 검증 명령 그대로 200이 나오게 하려면 어떤 설정을 확인해야 할까요?
감사합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 2romade님.
Ingress 설정 경험이 까다로운 점 많이 이해합니다. Ingress 설정에서 몇 가지 주요 포인트와 해결 방법을 정리해 드리겠습니다.
문제 원인 및 해결 방안
External IP Pending
- 현재 Ingress Controller Service의 상태에서
External IP: pending으로 표시되고 있습니다. 이는 LoadBalancer 서비스의 External IP가 할당되지 않아서 외부 네트워크에서의 접근이 불가능한 상태임을 의미합니다.
- 보통 클라우드 환경에서 LoadBalancer 타입으로 설정될 경우 External IP가 자동 할당되지만, 로컬 또는 미지원 환경에서는 LoadBalancer 타입을 사용하는 데 제한이 있습니다.
- 대안: Minikube 환경에서는 LoadBalancer를 NodePort로 변경하거나,
minikube tunnel명령어를 사용하여 External IP를 에뮬레이트할 수 있습니다.
- 현재 Ingress Controller Service의 상태에서
Hosts 파일과 네트워크 설정:
example.org를 설정한/etc/hosts에 192.168.56.40을 바인딩하셨죠. 내부 네트워크에서 해당 IP로 접근이 가능해야 하며, Ingress Controller가 이 요청을 수신할 수 있어야 합니다.
- 셀프테스트:
curl -H "Host: example.org" http://localhost:30523/echo같은 명령으로 직접 NodePort에 요청을 시도해 보세요. 이는 Ingress를 거치지 않고 NodePort로 접근하는 방법이며, 문제가 없다면 Ingress 흐름에서 설정 문제를 재점검할 수 있습니다.
Ingress 및 IngressController 설정 확인:
- 인그레스가 정상적으로 설정되어 있으나 외부에서의 요청을 Ingress Controller가 수신하지 않는 문제로 보입니다.
nginx-ingress-controllerPod의 로그를 확인하여 오류 메시지나 경고가 있는지 체크하세요. 이는 인그레스 컨트롤러가 요청 라우팅을 어떻게 처리하고 있는지 인사이트를 제공할 수 있습니다.
- 인그레스가 정상적으로 설정되어 있으나 외부에서의 요청을 Ingress Controller가 수신하지 않는 문제로 보입니다.
아래는 유사한 상황에서 도움이 될 수 있는 다른 포스트의 링크입니다. 비슷한 접근성을 요구하는 환경에서의 문제 해결 사례를 확인하실 수 있습니다.
- Ingress 관련 질문이 있습니다. - 마스터 노드에서만 접근이 안되는 상황과 관련된 다양한 원인 분석과 해결 방법이 논의되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Service(name: traefik)의 EXTERNAL_IP 가 Pending 입니다.
1
23
2
학습방법 문의
1
26
2
gateway 생성 후 접속 확인 질문
0
56
2
Ingress 생성하기 ingressclass 질문
1
53
2
cpu&memory 재설정하기에 질문이 있습니다.
1
70
2
시험 시작하기 전에 한 가지 질문 있습니다.
1
67
2
CNI 문제 질문
1
69
2
문제 환경 구축 오류
1
68
2
가상머신 가져오는법?
1
67
2
강의 수강 궁금한 점 있습니다.
1
69
2
환경 구축관련 추가 질문입니다.
1
69
2
환경구축관련 내용 확인해주세요.
1
62
2
가능 여부
1
95
2
문제풀의 강의의 문제풀이 카페 자료실 경로
1
63
2
시험 문제 질문
1
100
2
CKA 자격증 시험 내 커맨드 입력 관련 문의
1
100
3
쿠버네티스 버전 문의
0
60
1
시험시 노드 접근 관련해서 질문있습니다.
1
88
1
앞 카테고리 문제들의 리소스를 정리하게 되면 뒤의 ts 카테고리 문제에 영향이 있을까요?
1
83
2
강의 이외에 추가적인 학습을 해야하나요?
1
137
2
Ingress에서 Gateway로 전환하기 - 실습환경 구성
1
107
2
네임스페이스가 없습니다,
1
95
3
CPU & Memory 재설정하기 질문있습니다
1
111
1
nginx-static 네임스페이스가 없습니다.
0
96
1





