inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Certified Kubernetes Administrator (CKA) – Practical Exam Guide

[📌문제풀이] Ingress 생성하기

curl 200 반환 실패의 건

5

2romade

작성한 질문수 4

0

[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]

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가 정상적으로 잡혀 있는것으로 보입니다.

Service도 정상적으로 8080 포트를 사용 중입니다.

Ingress Controller Service 상태는 아래와 같습니다.

/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이 나오게 하려면 어떤 설정을 확인해야 할까요?

 

감사합니다!

kubernetes devops certificates container

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 2romade님.

Ingress 설정 경험이 까다로운 점 많이 이해합니다. Ingress 설정에서 몇 가지 주요 포인트와 해결 방법을 정리해 드리겠습니다.

문제 원인 및 해결 방안

  1. External IP Pending

    • 현재 Ingress Controller Service의 상태에서 External IP: pending으로 표시되고 있습니다. 이는 LoadBalancer 서비스의 External IP가 할당되지 않아서 외부 네트워크에서의 접근이 불가능한 상태임을 의미합니다.
    • 보통 클라우드 환경에서 LoadBalancer 타입으로 설정될 경우 External IP가 자동 할당되지만, 로컬 또는 미지원 환경에서는 LoadBalancer 타입을 사용하는 데 제한이 있습니다.
    • 대안: Minikube 환경에서는 LoadBalancer를 NodePort로 변경하거나, minikube tunnel 명령어를 사용하여 External IP를 에뮬레이트할 수 있습니다.
  2. 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 흐름에서 설정 문제를 재점검할 수 있습니다.
  3. Ingress 및 IngressController 설정 확인:

    • 인그레스가 정상적으로 설정되어 있으나 외부에서의 요청을 Ingress Controller가 수신하지 않는 문제로 보입니다.
    • nginx-ingress-controller Pod의 로그를 확인하여 오류 메시지나 경고가 있는지 체크하세요. 이는 인그레스 컨트롤러가 요청 라우팅을 어떻게 처리하고 있는지 인사이트를 제공할 수 있습니다.

아래는 유사한 상황에서 도움이 될 수 있는 다른 포스트의 링크입니다. 비슷한 접근성을 요구하는 환경에서의 문제 해결 사례를 확인하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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