공부합시다!/AWS

06_EKS에 외부 Cluster(K8S) 등록 및 관리: EKS Connector

간서치 2023. 7. 9. 12:01
728x90

EKS를 활용하면 외부(GCP, Azure, Tanzu, Onpremis 등) K8S Cluster를 등록해서 관리할 수 있습니다.

물론 한계는 있습니다만 그래도 단일 환경에서 모니터링이 가능하다면 꽤 괜찮은 방법일 듯 합니다.

역할 설정들이 까다롭기는 하지만 최대한 쉽게 풀어보려 합니다.

프로젝트에 활용하시면 좋을 듯!

 

우선 결론부터 보여드리면 이렇게 EKS의 클러스터가 아닌 Other Cluster로 나타난다는 점입니다.

매력적이죠! 그럼 시작하겠습니다.

 

 

1. 역할 생성

2. 정책 연결

3. Cluster 등록

4. 확인

순서로 진행하겠습니다.

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eks-connector.html

 

Amazon EKS Connector - Amazon EKS

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

해당 문서를 참고하세요! 그래도 힘들껄! ㅎ

 

1. 역할 생성

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/connector_IAM_role.html

 1.1. AmazonEKSConnectorAgentRole 생성

  1.1.1. IAM -> 역할 -> 역할만들기 클릭

 

    1.1.2. 신뢰할 수 있는 엔터티 선택 -> 사용자 지정 신뢰정책 -> 코드 입력

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/connector_IAM_role.html

eks-connector-agent-trust-policy.json

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ssm.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

 

  1.1.3. 권한 추가

 

  1.1.4. 이름 지정 및 검토 생성

   1.1.4.1. 반드시 이름은

AmazonEKSConnectorAgentRole  로 생성

주의: 에제에서는 AmazonEKSConnectorAgentRole1로 생성 했음

 

  1.1.4. 생성된 역할 확인 -> 클릭

 

2. 정책 설정

 2.1. 인라인 정책 설정

  2.1.1. 역할 -> AmazonEKSConnectorAgentRole -> 권한 추가 -> 인라인 정책 설정

 

 

 2.2. 권한 지정

  2.2.1 권한 지정 -> JSON -> 정책 편집기

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/connector_IAM_role.html

eks-connector-agent-policy.json  파일 등록

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SsmControlChannel",
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel"
            ],
            "Resource": "arn:aws:eks:*:*:cluster/*"
        },
        {
            "Sid": "ssmDataplaneOperations",
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenDataChannel",
                "ssmmessages:OpenControlChannel"
            ],
            "Resource": "*"
        }
    ]
}

 

 

  2.2.2. 검토 및 생성

   2.2.2.1. 정책 이름

AmazonEKSConnectorAgentPolicy -> 정책 설정 클릭

 

  2.2.3. 정책 확인

 

3. 클러스터 등록

 3.1. EKS -> 클러스터 추가 -> 등록

 

 3.2. 클러스터 등록

  3.2.1. 이름: HOME_CLU

  3.2.2. 공급자: Other

  3.2.3. 연결 구성: AmazonEKSConnectorAgentRole -> 클러스터 등록 클릭

 

 3.3. yaml 파일 다운로드 및 Onpremis 환경 Master에 복사

  3.3.1. 다운로드한 yaml 파일 확인

 

  3.3.2. scp를 이용하여  Onpremis  환경의 Master Node로 복사

   scp HOME_CLU.yaml root@10.0.0.1[마스터노드IP]:/root[경로지정]

 

  3.3.3. 업로드된 HOME_CLU.yaml 파일 확인

  3.3.4. HOME_CLU.yaml  파일 적용

  kubectl apply -f HOME_CLU.yaml

 

  3.3.5. eks-connector-clusterrole.yaml  파일 다운로드

  3.3.6. eks-connector-console-dashboard-full-access-group.yaml  파일 다운로드 

curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/eks-connector/manifests/eks-connector-console-roles/eks-connector-clusterrole.yaml
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/eks-connector/manifests/eks-connector-console-roles/eks-connector-console-dashboard-full-access-group.yaml

 

  3.3.7. yaml 파일 수정

   3.3.3.7. %IAM_ARN% 내용을 실제 사용자의 arn으로 수정

   arn:aws:iam::ID:계정명

 

  3.3.8. yaml 파일 적용

 

kubectl apply -f eks-connector-clusterrole.yaml
kubectl apply -f eks-connector-console-dashboard-full-access-group.yaml

 

4. 확인

 4.1. 생성된 HOME_CLU 클러스터 확인

 

 4.2. 등록한 HOME_CLU의 리소스 확인

 

 4.3. 기존 EKS의 sdkim_clu 확인

 

eks-connector-console-dashboard-full-access-group.yaml
0.00MB
eks-connector-clusterrole.yaml
0.00MB

728x90