[번역] vSphere 7 with Kubernetes – Declarative GitOps Continuous Delivery for Tanzu Kubernetes clusters

출처 : https://blogs.vmware.com/vsphere/2020/04/vsphere-7-with-kubernetes-declarative-gitops-continuous-delivery-for-tanzu-kubernetes-clusters.html

Cloud-Native-Apps-Icon-2020.png

개발팀은 점점 더 빠른 속도로 움직이고 있다. 비즈니스 라인의 요구사항이 동적으로 변화함에 따라 전례 없는 수준의 자동화를 수용하고 있다. 인프라 팀은 또한 새로운 자동화 프레임워크를 설계하고 있다. 전통적인 접근방식은 필수적인 틀이었다. 이를 위해서는 운영팀이 현재 시행 중인 것부터 최종 목표까지의 상태 전환을 달성하기 위해 실행해야 할 일련의 지침을 정의해야 한다. 예: VM 생성, 네트워크 인터페이스 추가, VM 전원 켜기 등 계획과 실행은 실행 팀의 책임이다. 자동화를 통해서도 DevOps는 규모에 맞게 유지하기가 어려울 수 있다.

선언적 DevOps

선언적 DevOps는 다른 접근방식을 취한다. 운영 팀은 선언적인 방법으로 시스템에 대한 원하는 상태를 정의한다. 필요한 가상 시스템 수, 리소스 요구 사항, 네트워크 및 스토리지 구성 또는 배포할 애플리케이션을 정의할 수 있다. 그들은 원하는 상태로 전환하기 위한 단계를 정의하지 않고 조정 시스템에 의존하여 환경의 활성 상태를 자신이 정의한 원하는 상태로 조정한다. 압도적으로, 조직들은 쿠베르네테스를 이 바람직한 국가 오케스트레이션 시스템으로 채택하고 있다.

쿠버네티스는 컨테이너 오케스트레이션 그 이상

쿠버네티스는 일반적으로 컨테이너 기반의 현대적 애플리케이션의 조정자로 여겨진다. 하지만 확실히 더 많다. 쿠버네티스는 쿠버네티스 API를 통해 관리할 수 있는 사용자 지정 리소스를 정의할 수 있는 확장 가능한 플랫폼이다. vSphere 7은 vSphere에 내장된 쿠버네티스 콘트롤 플레인을 포함하고 있으며 개발자가 자체 쿠버네티스 클러스터의 라이프사이클 관리를 자동화할 수 있도록 사용자 지정 리소스를 광범위하게 사용한다. 주문형 이 임베디드 쿠버네티스 API 및 맞춤형 리소스 스택은 vSphere용 Tanzu Kubernetes 그리드 서비스라고 불리며 선언적 DevOps 모델을 제공한다.

GitOps란?

선언적 DevOps의 개념을 더 발전시키는 것은 GitOps의 개념이다. GitOps는 Git를 통한 쿠버네티스 클러스터 관리 및 애플리케이션 제공을 선언적 인프라의 단일 진실의 출처로 정의한다. 모든 인프라의 원하는 상태는 Git 기반 소스 코드 관리 시스템에 저장된다. 팀은 Git repo에서 개발, 테스트, 스테이징 및 프로덕션과 같은 인프라 및 애플리케이션 환경의 원하는 상태를 설명한다.

Continuous Integration 파이프라인은 Git Repo에 대한 인프라 및 애플리케이션 변경사항을 푸시한다. Continuous Delivery 도구는 변경사항을 알아차리고 시스템의 실제 상태를 Git repo 매니페스트에 정의된 원하는 상태와 비교한 후 두 가지를 조정하려고 시도한다.

vSphere 7 with Kubernetes로 GitOps 지원

Argo CD는 선언적인 GitOps 연속 전달 도구로 쿠버네티스를 위한 것이다. vSphere 7 with Kubernetes Supervisor Cluster와 같은 Kubernetes 클러스터를 실행하는 데 배포, 서비스, 구성맵 및 비밀의 집합으로 구축된다. DevOps 팀은 인프라 및 애플리케이션 구축을 위한 소스 코드 Git Repo와 대상 쿠버네티스 클러스터를 설정한다. 개발자 파이프라인이 새로운 코드를 repo로 푸시할 때, Argo CD는 해당 코드의 적절한 대상 환경으로의 전개를 조정한다.

Let's See it in Action

다음 시연에서는 vSphere 포드 서비스를 사용하여 구축된 Argo CD 연속 제공 플랫폼이 GitOps 운영 모델을 통해 Tanzu Kubernetes 클러스터 라이프사이클 관리를 자동화하는 방법을 보여 준다.