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

Macer Park님의 프로필 이미지

작성한 질문수

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

[실습] 프로메테우스 스택 설치

Prometheus ALB 443 Listener Issue

해결된 질문

24.05.22 15:42 작성

·

872

·

수정됨

2

EKS hands-on with CloudNet@의 "4장 실습 프로메테우스와 그라파나 구성하기" 에서

"1.1. 프로메테우스 스택 설치"의 "프로메테우스 스택 설치" 진행 후

"crd, servicemonitors, targetgroupbindings 확인"의

"kubectl get targetgroupbindings -n monitoring" 명령어 조회 시,

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get targetgroupbindings -n monitoring
No resources found in monitoring namespace 

 

AWS Home Page의 EC2 Load balancers에서 Listener 조회 시, 443 Target 확인 되지 않는 현상.


상기 Issue의 Solution은 아래와 같습니다. (CloudNet@ Team의 노고에 감사 드립니다.)

 

Prometheus Stack을 배포함과 동시에 ALB는 Listener를 지정 후 Targetgroup 정보를 수신 합니다.

 

이때, 실습에서 생성한 AWS Certification Manager (略 ACM) 정보를 기반으로 합니다.

(AWS Console Home에서 "Certification Manager" 로 검색하여 찾을 수 있습니다.)

 

만일, 실습 진행 간 배포한 Stack을 삭제 후 재 생성 한 경우, ACM에 대한 기존의 생성 정보를 호출,

재차 변수로 반영하는 작업에서 추가로 생성 후 ACM을 변수로 반영하고자 하면,

기존의 Issued 된 ACM이 추가 생성에 의한 Pending Validation 상태인 ACM을 기준으로 등록합니다.

 

또한, 재차 생성된 ACM은 Status가 변경 즉, Issued가 되기까지 일정 시간이 소요 되며,

그 전에 Prometheus-stack 배포를 시도 할 경우, ACM 값을 호출하지 못하여 아래와 같이 표시 됩니다.

 

ADDRESS (myeks-ingress-alb-123456789.ap-northeast-2.elb.amazonaws.com) 확인 불가

Every 2.0s: kubectl get pod,svc,ingress,pv,pvc -n monitoring

NAME                                                         CLASS   HOSTS                     ADDRESS   
                                               PORTS   AGE
ingress.networking.k8s.io/kube-prometheus-stack-grafana      alb     grafana.example.net      80      6m57s
ingress.networking.k8s.io/kube-prometheus-stack-prometheus   alb     prometheus.example.net   80      6m57s

 

따라서 ACM 메뉴에 진입하여 기존의 생성된 ACM을 전부 삭제하고, ACM을 재차 생성하여 변수로 선언,

Prometheus-stack을 삭제 후 재 배포시 성공적으로 주소가 할당 되는 것을 확인 할 수 있습니다.

재 생성 후 일정 시간 소요 시 Issued를 확인 하고, ACM 선언 및 변수 적용 절차를 재차 수행 합니다.

// Prometheus stack & PV with PVC Uninstallation //

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# helm uninstall -n monitoring kube-prometheus-stack
release "kube-prometheus-stack" uninstalled

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl delete pvc prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0 -n monitoring
persistentvolumeclaim "prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0" deleted

// ACM Renewing //

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# aws acm list-certificates
{
    "CertificateSummaryList": [
        {
            "CertificateArn": "arn:aws:acm:ap-northeast-2:398561966751:certificate/4a83d353-c8f1-4418-a007-3ad49eb5d7fd",
            "DomainName": "*.example.net",
            "SubjectAlternativeNameSummaries": [
                "*.example.net"
            ],
            "HasAdditionalSubjectAlternativeNames": false,
            "Status": "ISSUED",
            "Type": "AMAZON_ISSUED",
            "KeyAlgorithm": "RSA-2048",
            "KeyUsages": [
                "DIGITAL_SIGNATURE",
                "KEY_ENCIPHERMENT"
            ],
            "ExtendedKeyUsages": [
                "TLS_WEB_SERVER_AUTHENTICATION",
                "TLS_WEB_CLIENT_AUTHENTICATION"
            ],
            "InUse": false,
            "RenewalEligibility": "INELIGIBLE",
            "NotBefore": "2024-05-22T09:00:00+09:00",
            "NotAfter": "2025-06-21T08:59:59+09:00",
            "CreatedAt": "2024-05-23T00:10:55.366000+09:00",
            "IssuedAt": "2024-05-23T00:13:12.752000+09:00"
        }
    ]
}

// ADDRESS VALIDATION //

Every 2.0s: kubectl get pod,svc,ingress,pv,pvc -n monitoring

NAME                                                         CLASS   HOSTS                     ADDRESS   
                                               PORTS   AGE
ingress.networking.k8s.io/kube-prometheus-stack-grafana      alb     grafana.example.net      myeks-ingress-al
b-123456789.ap-northeast-2.elb.amazonaws.com   80      20m
ingress.networking.k8s.io/kube-prometheus-stack-prometheus   alb     prometheus.example.net   myeks-ingress-al
b-123456789.ap-northeast-2.elb.amazonaws.com   80      20m

답변 6

0

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

2024. 05. 22. 22:09

보내주신 결과를 보면 aws-load-balancer-contoller와 IRSA는 문제가 없습니다.

 

다른 내용을 자세히 보니 Ingress ALB가 구성됐지만... 443에 대한 Targetgroupbinding이 되질 않는 것이네요.

 

이 부분은 인증서와 연관있어 보입니다.

 

증상 재현을 위해 AWS Cert Manager 인증서의 ARN을 변수에 선언하고

CERT_ARN=`aws acm list-certificates --query 'CertificateSummaryList[].CertificateArn[]' --output text`; echo $CERT_ARN


강제로 대상 인증서를 삭제했습니다. 마치 유효하지 않는 인증서 인것 처럼요.

aws acm list-certificates
{
    "CertificateSummaryList": []
}


imageingress의 호스트에 ADDRESS가 보이질 않네요.

 

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get targetgroupbindings -n monitoring
No resources found in monitoring namespace.

결국 동일한 증상 재현이 가능하네요.

 

 

이것으로 보아 AWS Certificate 인증서 만료가 된게 아닐까 생각이듭니다.

AWS 관리콘솔에 "AWS Certificate Manager"로 진입한 후 인증서 메뉴 살펴보세요.

 

만료가 되었다면 재인증 작업 수행 후 다시 진행해 보시길 바랍니다.

 

참고로 인증서 발급은 EKS Hands-On에 4장 실습 Amazon EKS 원클릭 배포 및 기본 설정에 있으니 살펴보시고요.

image

잘 해결되었으면 좋겠네요~

---

 

추가로 다시 인증서 생성 후 프로메테우스 스택을 다시 배포해보았습니다.

image잘 동작하네요.

Macer Park님의 프로필 이미지
Macer Park
질문자

2024. 05. 23. 00:29

안녕하세요, 금번 Issue Task를 타 수강생 분들의 동일한 Issue 재현 시 Reference로서의 활용을 위해 Solution은 기존 문의 글의 하단에 추가하여 작성 하겠습니다. 문제 해결이 완료 되었으며 밤 늦게까지의 노고에 정말 감사드립니다.

0

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

2024. 05. 22. 19:44

아무래도 aws-load-balancer-controller 구성이나 권한에 문제가 있어보입니다.

 

아래 명령어를 통해 정상적인 구성을 확인해 볼 필요가 있어보이네요. 그래야 원인 파악에 조금 더 다가갈 수 있을 것 같습니다.

# aws-load-balancer-contoller Deployment 확인
kubectl get deploy -n kube-system | grep aws-load


# aws-load-balancer-webhook-service Endpoints 확인
kubectl get endpoints -n kube-system aws-load-balancer-webhook-service


# aws-load-balancer-contoller Pod 확인
kubectl get pods -n kube-system | grep aws-load-


# aws-load-balancer-contoller Log 확인
kubectl logs deploy/aws-load-balancer-controller -n kube-system


# irsa 확인
aws iam list-roles --query "Roles[?starts_with(RoleName, 'eksctl-myeks-addon-iam')].[RoleName]" --output text
--
eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-BDYA44AFZXRR


# irsa 상세 확인 (위 irsa 이름 지정)
aws iam get-role --role-name eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-BDYA44AFZXRR


# OIDC 확인
aws iam list-open-id-connect-providers
Macer Park님의 프로필 이미지
Macer Park
질문자

2024. 05. 22. 19:46

회신 주신 부분 관련하여 바로 재차 Stack 생성 후 조회 값 전달 드리겠습니다. 감사합니다.

Macer Park님의 프로필 이미지
Macer Park
질문자

2024. 05. 22. 21:00

안녕하세요, 조회 값 아래에 첨부하여 전달 드립니다. 확인 요청 드립니다.

# aws-load-balancer-contoller Deployment 확인
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get deploy -n kube-system | grep aws-load
aws-load-balancer-controller   2/2     2            2           5m52s


# aws-load-balancer-webhook-service Endpoints 확인
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get endpoints -n kube-system aws-load-balancer-webhook-service
NAME                                ENDPOINTS                               AGE
aws-load-balancer-webhook-service   192.168.1.115:9443,192.168.3.152:9443   5m56s


# aws-load-balancer-contoller Pod 확인
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get pods -n kube-system | grep aws-load-
aws-load-balancer-controller-64f84c68d-hzrzg   1/1     Running   0          5m59s
aws-load-balancer-controller-64f84c68d-zrmfl   1/1     Running   0          5m59s


# aws-load-balancer-contoller Log 확인
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl logs deploy/aws-load-balancer-controller -n kube-system
Found 2 pods, using pod/aws-load-balancer-controller-64f84c68d-hzrzg
{"level":"info","ts":"2024-05-22T11:49:35Z","msg":"version","GitVersion":"v2.8.0","GitCommit":"6afa4042433bd7b92b7ceb7807e99b51c0c3af23","BuildDate":"2024-05-17T20:09:33+0000"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"controller-runtime.metrics","msg":"Metrics server is starting to listen","addr":":8080"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"setup","msg":"adding health check for controller"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"setup","msg":"adding readiness check for webhook"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/mutate-v1-pod"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/mutate-v1-service"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-elbv2-k8s-aws-v1beta1-ingressclassparams"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/mutate-elbv2-k8s-aws-v1beta1-targetgroupbinding"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-elbv2-k8s-aws-v1beta1-targetgroupbinding"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-networking-v1-ingress"}
{"level":"info","ts":"2024-05-22T11:49:35Z","logger":"setup","msg":"starting podInfo repo"}
{"level":"info","ts":"2024-05-22T11:49:37Z","logger":"controller-runtime.webhook.webhooks","msg":"Starting webhook server"}
{"level":"info","ts":"2024-05-22T11:49:37Z","logger":"controller-runtime.certwatcher","msg":"Updated current TLS certificate"}
{"level":"info","ts":"2024-05-22T11:49:37Z","msg":"Starting server","path":"/metrics","kind":"metrics","addr":"[::]:8080"}
{"level":"info","ts":"2024-05-22T11:49:37Z","msg":"Starting server","kind":"health probe","addr":"[::]:61779"}
{"level":"info","ts":"2024-05-22T11:49:37Z","logger":"controller-runtime.webhook","msg":"Serving webhook server","host":"","port":9443}
{"level":"info","ts":"2024-05-22T11:49:37Z","logger":"controller-runtime.certwatcher","msg":"Starting certificate watcher"}
I0522 11:49:37.498684       1 leaderelection.go:248] attempting to acquire leader lease kube-system/aws-load-balancer-controller-leader...


# irsa 확인
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# aws iam list-roles --query "Roles[?starts_with(RoleName, 'eksctl-myeks-addon-iam')].[RoleName]" --output text
eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-BYmUzbXoPqFJ
eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-ivDNmfs0HUCW
eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-XwsV0HdtKUYg

IRSA 확인은 별도로 하기 추가 합니다.

Macer Park님의 프로필 이미지
Macer Park
질문자

2024. 05. 22. 21:01

# irsa 상세 확인 (위 3개의 irsa 이름 지정)
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# aws iam get-role --role-name eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-BYmUzbXoPqFJ
{
    "Role": {
        "Path": "/",
        "RoleName": "eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-BYmUzbXoPqFJ",
        "RoleId": "AROAVZTBE7KPR7LJXBVFZ",
        "Arn": "arn:aws:iam::398561966751:role/eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-BYmUzbXoPqFJ",
        "CreateDate": "2024-05-22T10:59:18+00:00",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "Federated": "arn:aws:iam::398561966751:oidc-provider/oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86"
                    },
                    "Action": "sts:AssumeRoleWithWebIdentity",
                    "Condition": {
                        "StringEquals": {
                            "oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa",
                            "oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86:aud": "sts.amazonaws.com"
                        }
                    }
                }
            ]
        },
        "Description": "",
        "MaxSessionDuration": 3600,
        "Tags": [
            {
                "Key": "alpha.eksctl.io/cluster-name",
                "Value": "myeks"
            },
            {
                "Key": "alpha.eksctl.io/iamserviceaccount-name",
                "Value": "kube-system/ebs-csi-controller-sa"
            },
            {
                "Key": "alpha.eksctl.io/eksctl-version",
                "Value": "0.177.0"
            },
            {
                "Key": "eksctl.cluster.k8s.io/v1alpha1/cluster-name",
                "Value": "myeks"
            }
        ],
        "RoleLastUsed": {}
    }
}
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# aws iam get-role --role-name eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-ivDNmfs0HUCW
{
    "Role": {
        "Path": "/",
        "RoleName": "eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-ivDNmfs0HUCW",
        "RoleId": "AROAVZTBE7KPUPSYXQUEQ",
        "Arn": "arn:aws:iam::398561966751:role/eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-ivDNmfs0HUCW",
        "CreateDate": "2024-05-22T10:59:18+00:00",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "Federated": "arn:aws:iam::398561966751:oidc-provider/oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86"
                    },
                    "Action": "sts:AssumeRoleWithWebIdentity",
                    "Condition": {
                        "StringEquals": {
                            "oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86:aud": "sts.amazonaws.com",
                            "oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86:sub": "system:serviceaccount:kube-system:efs-csi-controller-sa"
                        }
                    }
                }
            ]
        },
        "Description": "",
        "MaxSessionDuration": 3600,
        "Tags": [
            {
                "Key": "alpha.eksctl.io/cluster-name",
                "Value": "myeks"
            },
            {
                "Key": "alpha.eksctl.io/iamserviceaccount-name",
                "Value": "kube-system/efs-csi-controller-sa"
            },
            {
                "Key": "alpha.eksctl.io/eksctl-version",
                "Value": "0.177.0"
            },
            {
                "Key": "eksctl.cluster.k8s.io/v1alpha1/cluster-name",
                "Value": "myeks"
            }
        ],
        "RoleLastUsed": {}
    }
}
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# aws iam get-role --role-name eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-XwsV0HdtKUYg
{
    "Role": {
        "Path": "/",
        "RoleName": "eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-XwsV0HdtKUYg",
        "RoleId": "AROAVZTBE7KP7BV62YRB5",
        "Arn": "arn:aws:iam::398561966751:role/eksctl-myeks-addon-iamserviceaccount-kube-sys-Role1-XwsV0HdtKUYg",
        "CreateDate": "2024-05-22T10:59:18+00:00",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "Federated": "arn:aws:iam::398561966751:oidc-provider/oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86"
                    },
                    "Action": "sts:AssumeRoleWithWebIdentity",
                    "Condition": {
                        "StringEquals": {
                            "oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86:aud": "sts.amazonaws.com",
                            "oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86:sub": "system:serviceaccount:kube-system:aws-load-balancer-controller"
                        }
                    }
                }
            ]
        },
        "Description": "",
        "MaxSessionDuration": 3600,
        "Tags": [
            {
                "Key": "alpha.eksctl.io/cluster-name",
                "Value": "myeks"
            },
            {
                "Key": "alpha.eksctl.io/iamserviceaccount-name",
                "Value": "kube-system/aws-load-balancer-controller"
            },
            {
                "Key": "alpha.eksctl.io/eksctl-version",
                "Value": "0.177.0"
            },
            {
                "Key": "eksctl.cluster.k8s.io/v1alpha1/cluster-name",
                "Value": "myeks"
            }
        ],
        "RoleLastUsed": {}
    }
}



# OIDC 확인
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# aws iam list-open-id-connect-providers
{
    "OpenIDConnectProviderList": [
        {
            "Arn": "arn:aws:iam::398561966751:oidc-provider/oidc.eks.ap-northeast-2.amazonaws.com/id/1598F402A4DE21390805340417812C86"
        },
        {
            "Arn": "arn:aws:iam::398561966751:oidc-provider/oidc.eks.ap-northeast-2.amazonaws.com/id/B5C9053A8FE840212CA385250836BB3E"
        }
    ]
}

감사합니다.

0

Macer Park님의 프로필 이미지
Macer Park
질문자

2024. 05. 22. 18:29

안녕하세요, 확인 해 주신 내용을 토대로 재차 시도 하였으나, 아래의 내용을 토대로 이전과 동일한 현상을 확인 하였습니다.

 

  1. 첨언 해 주신 내용을 참고하여 총 9개의 Stack 배포를 확인 하고 실습을 진행 하였습니다.

image

  1. 재차 확인 결과 crd 및 servicemonitors에 대한 내용은 확인이 가능하나, 여전히 targetgroupbinding에 대한 정보를 불러 올 수 없습니다.

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get crd | grep monitoring
alertmanagerconfigs.monitoring.coreos.com    2024-05-22T09:19:58Z
alertmanagers.monitoring.coreos.com          2024-05-22T09:19:59Z
podmonitors.monitoring.coreos.com            2024-05-22T09:19:59Z
probes.monitoring.coreos.com                 2024-05-22T09:19:59Z
prometheuses.monitoring.coreos.com           2024-05-22T09:19:59Z
prometheusrules.monitoring.coreos.com        2024-05-22T09:19:59Z
servicemonitors.monitoring.coreos.com        2024-05-22T09:19:59Z
thanosrulers.monitoring.coreos.com           2024-05-22T09:20:00Z
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get servicemonitors -n monitoring
NAME                                             AGE
kube-prometheus-stack-apiserver                  6m5s
kube-prometheus-stack-coredns                    6m5s
kube-prometheus-stack-grafana                    6m5s
kube-prometheus-stack-kube-proxy                 6m5s
kube-prometheus-stack-kube-state-metrics         6m5s
kube-prometheus-stack-kubelet                    6m5s
kube-prometheus-stack-operator                   6m5s
kube-prometheus-stack-prometheus                 6m5s
kube-prometheus-stack-prometheus-node-exporter   6m5s
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get targetgroupbindings -n monitoring
No resources found in monitoring namespace.

 

  1. 마지막으로 이전과 동일하게 실습과 다르게 Targetgroup의 443이 확인 되지 않습니다.

image

 

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

2024. 05. 22. 18:41

음.. 뭔가 다른 이슈인가 보군요.
연관 있을만한 것들이 뭐가 있을지 고민 좀 해 보겠습니다.

일단 저와 동일한 코드에 동일한 형태로 작업을 하는데... 차이가 있는 것으로 보아 환경적인 차이가 있을지 모르겠네요. IAM 권한이라던가?

혹시 유추할만한 사항이 있을까요? 사소한 것도 괜찮습니다.
오픈 하기 애매하다면 ongja@cloudneta.net으로 메일 회신 주셔도 되요 :)

 

참고로 동일한 증상은 아니지만 아래 링크와 같은 이슈도 있었습니다.

https://www.inflearn.com/questions/1202327/karpenter-%EB%8F%99%EC%9E%91%EC%9D%B4-%EC%9D%B4%EC%83%81%ED%95%A9%EB%8B%88%EB%8B%A4-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4

Macer Park님의 프로필 이미지
Macer Park
질문자

2024. 05. 22. 18:47

아까전에 위 글에 작성한 내용 중 Log에서 발생한 일부 에러 Message들을 첨부 드립니다. 분석에 도움이 되셨으면 좋겠습니다.

 

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# helm install kube-ops-view geek-cookbook/kube-ops-view --version 1.2.2 --set env.TZ="Asia/Seoul" --namespace kube-system
Error: INSTALLATION FAILED: 1 error occurred:
        * Internal error occurred: failed calling webhook "mservice.elbv2.k8s.aws": failed to call webhook: Post "https://aws-load-balancer-webhook-service.kube-system.svc:443/mutate-v1-service?timeout=10s": no endpoints available for service "aws-load-balancer-webhook-service"

 

(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl patch svc -n kube-system kube-ops-view -p '{"spec":{"type":"LoadBalancer"}}'
echo -e "Kube Ops View URL = http://kubeopsview.$MyDomain:8080/#scale=1.5"
Error from server (NotFound): services "kube-ops-view" not found
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl annotate service kube-ops-view -n kube-system "external-dns.alpha.kubernetes.io/hostname=kubeopsview.$MyDomain"
Error from server (NotFound): services "kube-ops-view" not found
(admin@myeks:default) [root@myeks-bastion-EC2 ~]# echo -e "Kube Ops View URL = http://kubeopsview.$MyDomain:8080/#scale=1.5"
Kube Ops View URL = http://kubeopsview.chungyun.net:8080/#scale=1.5

0

Macer Park님의 프로필 이미지
Macer Park
질문자

2024. 05. 22. 17:50

안녕하세요, 조속하고 상세한 답변에 감사드립니다.

앞서 전달 해 주신, 내용을 토대로 Cloudformation 생성 시 9개의 Stack 생성 완료를 재차 확인하고 동작을 확인 해 보도록 하겠습니다.

0

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

2024. 05. 22. 17:47

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

문의 사항에 대해 확인해 보니 정상적으로 생성되고 동작하네요.

kubectl get targetgroupbindings -n monitoring
NAME                               SERVICE-NAME                       SERVICE-PORT   TARGET-TYPE   AGE
k8s-monitori-kubeprom-325788d22a   kube-prometheus-stack-prometheus   9090           ip            82s
k8s-monitori-kubeprom-776042db8a   kube-prometheus-stack-grafana      80             ip            80s

 

ingress ALB 생성에 이슈가 있는 것으로 보이는데...

예상되는 이슈로는 AWS Load Balancer Controller의 IRSA 설정이 누락된게 아닌가 싶습니다.

참고로 원클릭 배포를 수행하면 최초 myeks 스택을 시작해서 다양한 스택이 생성되는데요.
이번 실습은 총 9개의 스택이 생성되어야 정상적인 환경이라고 볼 수 있습니다.

image<EKS Hands On 4장 원클릭 배포 참고>

 

image위 스샷과 같이 AWS Load Balancer Contoller의 IRSA를 위한 스택이 보이네요.

모든 스택이 생성되기까지 20분 남짓의 시간이 필요합니다.

혹시 그전에 myeks-host에 접근해서 작업을 수행하면 문제가 발생할 수 있겠네요.

 

아무래도 개인적인 예상으로 다른 특정 사항이 있다면 코멘트 부탁드릴게요.

감사합니다.

0

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

2024. 05. 22. 16:57

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

문의 사항 내용 확인했고 테스트 후 회신 드리겠습니다.
감사합니다.