Cloud/AZURE

Azure Arc에 AWS EKS 클러스터 등록하기

지기(ZIGI) 2021. 3. 30. 16:58

Today Keys : Arc, hybrid, multi, cloud, 하이브리드, 멀티 , kubernetes, cluster, 클러스터, 쿠버네스, 애저, azure


이번 포스팅은 AWS EKS 클러스터를 Azure Arc에 등록하는 예제입니다. 


Azure에서는 Azure의  하이브리드, 멀티클라우드 전략(?)인 Azure Arc를 이용해서,

온프레미스, 클라우드, 엣지 등의 모든 인프라 환경의  광범위한 자원을 Azure에서 관리할 수 있도록 합니다. 

이러한 관리 자원은 Windows, Linux 서버, SQL 서버 뿐 아니라, Kubernetes 클러스터도 포함됩니다.

Azure Arc를 통해서 Azure의 Kubernetes 클러스터 뿐 아니라, AWS의 EKS나 , GCP의 GKE를 포함한 모든 Kubernetes 클러스터를 연결하여 애플리케이션을 배포하고(GitOps), Azure의 다른 리소스 처럼 규정이나 정책을 적용할 수 있습니다. 

이번 포스팅에서는 AWS의 EKS 클러스터를 Azure Arc로 연결하는 내용에 대해서 다뤄봅니다. 

모든 설정은 AWS CLI와 Azure CLI가 설치된 로컬 환경(Win10)에서 진행되며, 

진행에 필요한 AWS CLI와 Azure CLI 같은 프로그램은 사전에 설치되어 있다는 것을 전제로 합니다. 

Azure Arc에 연결할 AWS EKS는 기존에 생성되어 있는 상태입니다.

AWS의 현재 생성되어 있는 EKS 클러스터는 'EKS-ZIGI' 이며, 다음과 같이 현재 구성된 것을 확인 할 수 있습니다. 

 

AWS EKS에 대한 kubeconfig 파일을 생성합니다.

이 kubeconfig 파일에는 Kubernetes 클러스터에 액세스하는 데 필요한 클러스터, 사용자, 서버 및 인증서 정보와 같은 Kubernetes 클러스터 정보가 포함되어 있습니다. 파일은 $HOME/.kube 디렉토리 내에 'config'라는 이름으로 생성됩니다. 

표기된 메시지를 보면, AWS EKS가 새로운 context로 추가된 것을 볼 수 있습니다.

 

 

현재 Kubernetes contexts 리스트를 확인해보면, AWS EKS 정보를 확인 할 수 있습니다.  

클러스터에서 돌고 있는 서비스를 출력해보면, 정상적으로 출력되는 것을 확인할 수 있습니다.

 

Azure Arc에 Kubernetes 클러스터를 연결하기 위해서 Helm 3의 최신 버전 설치가 사전 요구 사항이기 때문에 Kubernetes-helm을 설치합니다 .

 

Azure Arc가 활성화 된 Kubernetes CLI 확장(extensions)을 설치합니다. 

 

Azure Arc에서 Kubernetes 관리를 위해 다음의 2개의 공급자(Provider)를 등록합니다.
  - Microsoft.Kubernetes 
  - Microsoft.KubernetesConfiguration

공급자를 등록하는 데는 수 분이 소요됩니다. 
Provider show로 등록 상태를 확인 할 수 있습니다.
아래에 보면, registrationState가 Registering 으로 현재 등록 중인 것을 볼 수 있습니다.

잠시 후, Provider show로 등록 상태를 다시 확인하면
registrationState가 Registered로 등록이 완료된 것을 볼 수 있습니다. 

 

AWS EKS를 Azure Arc에 등록하기 전에 현재 EKS-ZIGI 클러스터의 워크로드 상태를 확인합니다.

EKS를 생성만 해둔  상태이기 때문에 기본 워크로드만 돌고 있습니다. 

 

이제 Azure Arc에 AWS EKS를 등록합니다. 
리소스 그룹은 사전에 만들어 두었습니다.
등록을 하고 나면, AWS EKS 클러스터에 Azure Arc가 관리를 위해서 필요한 Pod가 배포됩니다.

초기 이미지부터 가져오기 때문에 초기 연결 시 Pod가 모두 뜨는 데는 수 분이 소요됩니다.

 

잠시 후, azure-arc 네임스페이스의 모든 pod가 정상적으로 동작 중인 것을 볼 수 있습니다.

 

AWS EKS 클러스터에서도 보면, 다음과 같이 pod가 정상적으로 동작 중인 것으로 볼 수 있습니다.

 

Azure Arc에서도 정상적으로 EKS 클러스가 올라온 것을 확인 할 수 있습니다.
Distribution과 Infrastructure 항목이 각각 eks, aws 임을 확인 할 있습니다.

 

참고로 본 포스팅은 AWS EKS를 Azure Arc에 연동하는 과정을 살펴보기 위해서, 가장 간소화 된 방법으로 연결한 것이기 때문에, 실제 연결을 위해서는 사전 요구 사항을 미리 확인하는 것이 좋습니다. 

빠른 시작: Azure Arc에 기존 Kubernetes 클러스터 연결