답변 6
0
ingress문제와는 다른거지만, prometheus와 grafana 문제에서 인터넷에서 공부하다보니 push와 pull 방식으로 나눠진던데 어떤 상황에서 쓰이는지 혹시 알 수 있을까요?
0
0
보내주신 정보를 보니 지정한 서브넷의 라벨 정보에 따른 이슈로 보이네요.
참고 링크 : https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.1/deploy/subnet_discovery/
퍼블릭 서브넷 같은 경우는 태그에서 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
[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
Service(NLB)와 별개 실습으로 상관없네요.
ingress 배포하고 로그 결과 확인 가능할까요? kubectl logs deploy/aws-load-balancer-controller -n kube-system -f --tail=100
0
안녕하세요. 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
...
저도 증상이 재현되면 조금 더 살펴볼 수 있을 것인데 그렇지 않아 아쉽네요.
무언가 잘못 설정한 부분이 없는지 다시 한 번 살펴보시면 좋을 것 같습니다.
감사합니다.
어느 영역을 건너뛰고 진행한지 모르겠지만 AWS Load Balancer Controller 생성을 해야겠죠?
저같은 경우 아까 진행한 실습은 기본 설정 명령어와 AWS Load Balancer Controller 배포 후 바로 Ingress 테스트 진행했습니다.
그러면 다른 부분을 건너뛰는 것은 상관을 것 같아요.
아무래도 복잡하지만 로그를 통해 왜 Address 생성되지 않았는지 파악해야 그에 따라 어떤 문제인지 알 수 있을 것 같네요.
현재 증상이 재현되거나 나중에라도 증상이 재현되면 로그 확인 후 남겨 주세요.
같이 한번 고민해시죠~ :)
안녕하세요. CloudNet@ 팀입니다.
관련 사항은 섹션 14에 두번째 영상에서 설명되고 있습니다. 약 5분 시점부터 보시면 이해될 거 같네요.
감사합니다.