인프런 커뮤니티 질문&답변

김영웅님의 프로필 이미지
김영웅

작성한 질문수

CloudNet@와 함께하는 Amazon EKS 기본 강의

ingress 문제

작성

·

1.3K

1

사진.pngingress에 address가 안 생기는데 뭐가 문제인지 알 수 있을까요?

답변 6

0

김영웅님의 프로필 이미지
김영웅
질문자

ingress문제와는 다른거지만, prometheus와 grafana 문제에서 인터넷에서 공부하다보니 push와 pull 방식으로 나눠진던데 어떤 상황에서 쓰이는지 혹시 알 수 있을까요?

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

안녕하세요. CloudNet@ 팀입니다.

관련 사항은 섹션 14에 두번째 영상에서 설명되고 있습니다. 약 5분 시점부터 보시면 이해될 거 같네요.

감사합니다.

0

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

서브넷에 Key는 kubernetes.io/role/elb와 Value는 1 태그를 강제로 지운 후 테스트하니 동일하게 재현했습니다 :)

image

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

태그 추가 후 정상 동작 확인했습니다~

image

0

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

보내주신 정보를 보니 지정한 서브넷의 라벨 정보에 따른 이슈로 보이네요.

참고 링크 : https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.1/deploy/subnet_discovery/

 

image

퍼블릭 서브넷 같은 경우는 태그에서 Key는 kubernetes.io/role/elb와 Value는 1이 있어야합니다.

혹시나 퍼블릭 서브넷에 해당 필드가 없으면 추가해 보세요.

 

 

그리고 테스트 결과에서 엔드포인트의 서브넷 대역이 192.168.10.0/24, 192.168.20.0/24, 192.168.30.0/24 이네요?

저희가 원클릭 배포에서 CloudFormation으로 구성한 서브넷은 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24인데 말이죠.

아무래도 별도의 VPC 설정 변경이나 다른 작업으로 진행하시는 것 같은데 어떠한 기반 환경에서 진행한지 제가 알기 어렵네요ㅠ

 

0

김영웅님의 프로필 이미지
김영웅
질문자

image새로 만들어서 해도 증상이 해결되지 않아서,
image로그를 보니깐 이런 문제라고 뜨고 있습니다.

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

로그 내용이 일부분만 나와있고 일반적인 내용이라..

출력된 영역을 드래그해서 복사-붙여넣기 해주셔야 파악할 수 있겠네요ㅠ

김영웅님의 프로필 이미지
김영웅
질문자

[ec2-user@ip-192-168-0-51 ~]$ kubectl describe ingress -n game-2048 ingress-2048

Name: ingress-2048

Labels: <none>

Namespace: game-2048

Address:

Ingress Class: alb

Default backend: <default>

Rules:

Host Path Backends

---- ---- --------

*

/ service-2048:80 (192.168.20.141:80,192.168.30.160:80)

Annotations: alb.ingress.kubernetes.io/scheme: internet-facing

alb.ingress.kubernetes.io/target-type: ip

kubernetes.io/ingress.class: alb

Events:

Type Reason Age From Message

---- ------ ---- ---- -------

Warning FailedBuildModel 6m28s (x19 over 22m) ingress Failed build model due to couldn't auto-discover subnets: unable to resolve at least one subnet (0 match VPC and tags)

[ec2-user@ip-192-168-0-51 ~]$ kubectl logs deploy/aws-load-balancer-controller -n kube-system -f --tail=100

Found 2 pods, using pod/aws-load-balancer-controller-5d45fc86b-dfrqb

{"level":"info","ts":"2023-10-29T16:23:12Z","msg":"version","GitVersion":"v2.6.2","GitCommit":"5e07dced064969588164c60cd493ce7921e913da","BuildDate":"2023-10-27T19:20:16+0000"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"controller-runtime.metrics","msg":"Metrics server is starting to listen","addr":":8080"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"setup","msg":"adding health check for controller"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/mutate-v1-pod"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/mutate-v1-service"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-elbv2-k8s-aws-v1beta1-ingressclassparams"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/mutate-elbv2-k8s-aws-v1beta1-targetgroupbinding"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-elbv2-k8s-aws-v1beta1-targetgroupbinding"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-networking-v1-ingress"}

{"level":"info","ts":"2023-10-29T16:23:12Z","logger":"setup","msg":"starting podInfo repo"}

{"level":"info","ts":"2023-10-29T16:23:14Z","msg":"Starting server","kind":"health probe","addr":"[::]:61779"}

{"level":"info","ts":"2023-10-29T16:23:14Z","msg":"Starting server","path":"/metrics","kind":"metrics","addr":"[::]:8080"}

{"level":"info","ts":"2023-10-29T16:23:14Z","logger":"controller-runtime.webhook.webhooks","msg":"Starting webhook server"}

{"level":"info","ts":"2023-10-29T16:23:14Z","logger":"controller-runtime.certwatcher","msg":"Updated current TLS certificate"}

{"level":"info","ts":"2023-10-29T16:23:14Z","logger":"controller-runtime.webhook","msg":"Serving webhook server","host":"","port":9443}

{"level":"info","ts":"2023-10-29T16:23:14Z","logger":"controller-runtime.certwatcher","msg":"Starting certificate watcher"}

I1029 16:23:14.445378 1 leaderelection.go:248] attempting to acquire leader lease kube-system/aws-load-balancer-controller-leader...

{"level":"info","ts":"2023-10-30T02:47:28Z","msg":"setting service loadBalancerClass","service":"grafana","loadBalancerClass":"service.k8s.aws/nlb"}

 

이렇게 뜨고

 

[ec2-user@ip-192-168-0-51 ~]$ kubectl describe ingress -n game-2048 ingress-2048

Name: ingress-2048

Labels: <none>

Namespace: game-2048

Address:

Ingress Class: alb

Default backend: <default>

Rules:

Host Path Backends

---- ---- --------

*

/ service-2048:80 (192.168.20.141:80,192.168.30.160:80)

Annotations: alb.ingress.kubernetes.io/scheme: internet-facing

alb.ingress.kubernetes.io/target-type: ip

kubernetes.io/ingress.class: alb

Events:

Type Reason Age From Message

---- ------ ---- ---- -------

Warning FailedBuildModel 7m51s (x19 over 24m) ingress Failed build model due to couldn't auto-discover subnets: unable to resolve at least one subnet (0 match VPC and tags)

ingress 확인하니깐 vpc 태그 문제라고 뜨는데 이쪽 문제라서 ingress가 정상적으로 작동하지 않고 있는걸까요?

0

김영웅님의 프로필 이미지
김영웅
질문자

image이 단계 이후에 바로 ingress(ALB)로 넘어갔습니다.

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

Service(NLB)와 별개 실습으로 상관없네요.

ingress 배포하고 로그 결과 확인 가능할까요?
kubectl logs deploy/aws-load-balancer-controller -n kube-system -f --tail=100

0

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

안녕하세요. CloudNet@ 팀입니다.

ingress 생성 관련 문의를 주셨는데요. 관련해서 EKS Hands-On에 따라 실습을 진행해도 큰 문제 없이 동작합니다. 스샷 결과만 보고는 어떤 부분이 문제일지 파악이 어렵네요ㅠ

aws-load-balancer-controller에서 로그 정보를 확인하면 무엇이 문제인지 파악할 수 있을 것이라 생각이듭니다.

kubectl logs deploy/aws-load-balancer-controller -n kube-system -f --tail=100

 

 

그리고 구글링을 통해 해당 이슈가 발생하는 경우를 살펴보았는데요.
아래 링크를 확인해 보면 동일 현상으로 IngressClass Name에 대한 이슈로 발생하는 것 같네요.

https://stackoverflow.com/questions/51511547/empty-address-kubernetes-ingress

 

1) 먼저 ingress-class 이름을 확인합니다. 아마 --ingress-class=alb 로 출력 될 것입니다.

kubectl describe deploy aws-load-balancer-controller -n kube-system | grep class

 

2) ingress1.yaml 파일에서 Ingress 영역의 metadata의 annotation에서 kubernetes.io/ingress.class: alb로 지정한 후 생성해 보세요.

...
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: game-2048
  name: ingress-2048
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    kubernetes.io/ingress.class: alb

spec:
  ingressClassName: alb

...

 

저도 증상이 재현되면 조금 더 살펴볼 수 있을 것인데 그렇지 않아 아쉽네요.

무언가 잘못 설정한 부분이 없는지 다시 한 번 살펴보시면 좋을 것 같습니다.

 

감사합니다.

 

김영웅님의 프로필 이미지
김영웅
질문자

감사합니다. 혹시 다른 부분 Hands-On 부분을 건너뛰고, Ingress(ALB) 파트만 진행해도 ADRESS가 떠야하는게 정상인지 알 수 있을까요?

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

어느 영역을 건너뛰고 진행한지 모르겠지만 AWS Load Balancer Controller 생성을 해야겠죠?

저같은 경우 아까 진행한 실습은 기본 설정 명령어와 AWS Load Balancer Controller 배포 후 바로 Ingress 테스트 진행했습니다.

김영웅님의 프로필 이미지
김영웅
질문자

저 같은 경우에는 AWS Load Balancer Controller 설치 및 배포하고 나서 진행했습니다!

 

Ongja_CloudNet@님의 프로필 이미지
Ongja_CloudNet@
지식공유자

그러면 다른 부분을 건너뛰는 것은 상관을 것 같아요.

아무래도 복잡하지만 로그를 통해 왜 Address 생성되지 않았는지 파악해야 그에 따라 어떤 문제인지 알 수 있을 것 같네요.

현재 증상이 재현되거나 나중에라도 증상이 재현되면 로그 확인 후 남겨 주세요.
같이 한번 고민해시죠~ :)

김영웅님의 프로필 이미지
김영웅

작성한 질문수

질문하기