BLOG

Amazon EKS를 통해 클러스터 업데이트 간소화
작성일: 2019-01-02

Kubernetes는 기능 릴리스, 기능 업데이트 및 버그 수정이 빈번하여 빠르게 진화하고 있습니다. 또한 AWS는 성능을 개선하고 버그 수정을 지원하며 새로운 기능을 활성화하기 위해 Kubernetes용 Amazon Elastic Container Service(Amazon EKS)를 구성하는 방법을 정기적으로 변경합니다. 이전에는 새로운 Kubernetes 버전으로 전환하려면 클러스터를 다시 생성하고 애플리케이션을 마이그레이션해야 했습니다. 이것은 애플리케이션 다운타임을 유발할 수 있는 시간이 많이 걸리는 프로세스입니다.

 

저는 EKS가 이제 Kubernetes와 EKS 플랫폼 버전에 대해 관리형 인플레이스 클러스터 업그레이드를 수행한다는 것을 발표하게 되어 기쁩니다. 이를 통해 클러스터 운영을 간소화하고 최신 Kubernetes 기능과 EKS 구성 및 보안 패치의 업데이트를 다운타임 없이 신속하게 활용하십시오. EKS는 또한 모든 새로운 EKS 클러스터에 대해 Kubernetes 버전 1.11.5를 지원합니다.

 

Kubernetes 및 EKS 업데이트

EKS 클러스터에 적용할 수 있는 업데이트에는 Kubernetes 버전 업데이트와 EKS 플랫폼 버전 업데이트의 두 가지 유형이 있습니다. 현재 EKS는 Kubernetes의 부 버전 1.10과 1.11 사이의 업그레이드를 지원합니다.

 

새로운 Kubernetes 버전이 출시되고 EKS와 함께 사용하도록 검증됨에 따라, 저희는 언제든지 업데이트 프로세스의 일부로 3개의 안정적인 Kubernetes 버전을 지원할 것입니다.

 

EKS 플랫폼 버전

EKS 플랫폼 버전은 Kubernetes 패치와 API 서버 구성에 대한 변경 사항을 포함합니다. 플랫폼 버전은 Kubernetes의 부 버전과 분리되어 있지만 관련이 있습니다.

 

EKS에 새로운 Kubernetes 버전이 출시되면 초기 제어부 구성은 “eks.1” 플랫폼 버전으로 출시됩니다. AWS는 Kubernetes 패치를 활성화하기 위해 필요에 따라 새로운 플랫폼 버전을 출시합니다. AWS는 또한 클러스터 동작에 영향을 줄 수 있는 EKS API 서버 구성이 변경될 경우 새로운 버전을 출시합니다.

 

이 버전 체계를 사용하면 다른 Kubernetes 버전의 구성을 독립적으로 업데이트할 수 있습니다. 예를 들어 AWS는 Kubernetes 버전 1.11과 호환되지 않는 Kubernetes 버전 1.10용 패치를 출시해야 할 수 있습니다.

 

현재 플랫폼 버전 업데이트는 자동입니다. AWS는 향후 UpdateClusterVersion API 운영을 통해 플랫폼 버전 업데이트를 수동으로 제어할 계획입니다.

 

업데이트 API 작업 사용하기

클러스터 업데이트를 활성화하기 위한 세 가지 새로운 EKS API 작업이 있습니다.

 

  • UpdateClusterVersion
  • ListUpdates
  • DescribeUpdates

 

EKS CLI를 통해 UpdateClusterVersion 작업을 사용하여 Kubernetes 부 버전 간에 클러스터 업데이트를 시작할 수 있습니다.

 

aws eks update-cluster-version –name Your-EKS-Cluster –kubernetes-version 1.11

 

클러스터 이름과 원하는 Kubernetes 버전만 전달하면 됩니다. Kubernetes의 특정 패치 버전을 선택할 필요는 없습니다. 저희는 안정적이고 잘 테스트된 패치 버전을 선택합니다. 이 CLI 명령은 다음과 같은 몇 가지 중요한 정보와 함께 “업데이트” API 개체를 반환합니다.

 

{

“update” : {

“updateId” : UUID,

“updateStatus” : PENDING,

“updateType” : VERSION-UPDATE

“createdAt” : Timestamp

}

}

 

이 업데이트 개체는 클러스터에 대해 요청된 수정의 상태를 추적할 수 있도록 합니다. 이것은 여러분의 클러스터에 잘못된 구성으로 인해 오류가 있었는지 그리고 업데이트가 진행 중이거나, 완료되었거나, 실패했는지를 보여줄 수 있습니다.

또한 다음 작업을 사용하여 업데이트 상태를 독립적으로 나열하고 설명할 수 있습니다.

 

aws eks list-updates –name Your-EKS-Cluster

 

이렇게 하면 클러스터에 대한 진행 중인 업데이트가 반환됩니다.

 

{

“updates” : {

“UUID-1”,

“UUID-2”

},

“nextToken” : null

}

 

마지막으로 특정 업데이트를 설명하여 업데이트 상태에 대한 세부 정보를 확인하십시오.

 

aws eks describe-update –name Your-EKS-Cluster –update-id UUID

 

{

“update” : {

“updateId” : UUID,

“updateStatus” : FAILED,

“updateType” : VERSION-UPDATE

“createdAt” : Timestamp

“error”: {

“errorCode” : DependentResourceNotFound

“errorMessage” : The Role used for creating the cluster is deleted.

“resources” : [“aws:iam:arn:role”]

}

}

 

업데이트 시 고려 사항

새로운 Kubernetes 버전은 중요한 변화를 도입합니다. 프로덕션 클러스터에서 업데이트를 수행하기 전에 새 Kubernetes 버전에 대해 응용 프로그램의 동작을 테스트할 것을 적극 권장합니다.

 

일반적으로 프로덕션 클러스터를 업데이트하기 전에 기존 CI 워크플로우에 EKS를 통합하여 새 버전에서 응용 프로그램의 동작 방식을 테스트할 것을 권장합니다.

 

작업자 노드 업데이트

현재 EKS는 EKS 제어면을 업데이트할 때 Kubernetes 작업자 노드를 업데이트하지 않습니다. EKS 작업자 노드 업데이트에 대한 책임이 있습니다. 이 프로세스의 개요는 작업자 노드 업데이트에서 확인할 수 있습니다.

 

EKS 팀은 EKS가 지원하는 각 버전의 Kubernetes에 해당하는 작업자 노드에 대해 EKS에 최적화된 AMI 세트를 출시합니다. 설명서에 나와 있는 이러한 AMI와 Amazon-EKS-AMI GitHub 저장소의 버전별 분기에서 빌드 구성을 찾을 수 있습니다.

 

시작하기

모든 새로운 EKS 클러스터에 대해 Kubernetes 버전 1.11을 지금 바로 사용할 수 있습니다. 모든 기존 EKS 클러스터의 버전 1.11로 이동하려면 클러스터 업데이트를 사용하십시오. 설명서에서 업데이트 프로세스 및 API에 대해 자세히 알아보십시오.

 

원문 URL : https://aws.amazon.com/ko/blogs/compute/making-cluster-updates-easy-with-amazon-eks/

** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.