21장. 연산자 구현하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
Kubernetes의 핵심 원칙은 시스템 운영자가 핵심 API를 넘어 확장할 수 있다는 것입니다. 이 저자를 포함한 많은 사람들은 이러한 확장성이 Kubernetes가 시장에서 우위를 점하게 된 원동력이라고 생각합니다. 개발자들이 Kubernetes에서 실행되는 애플리케이션을 만들기 시작하면서 운영자들은 Kubernetes API를 호출하는 방법을 알고 애플리케이션을 안정적으로 유지하는 데 필요한 일상적인 작업의 대부분을 자동화하는 도우미 애플리케이션을 개발했습니다. 이러한 애플리케이션 중 다수는 클러스터에서 실행되는 bash 스크립트 또는 헬퍼 컨테이너였습니다.
2016년에 CoreOS(현 Red Hat)가 주도하는 Kubernetes 주요 기여자 그룹( )은 Kubernetes 애플리케이션을 더 쉽게 개발하고 구현할 수 있도록 오퍼레이터 패턴을 포지셔닝했다. 오퍼레이터 패턴은 애플리케이션을 패키징, 배포 및 유지 관리하는 방법을 설명하며, Kubernetes API 및 kubectl 과 같은 클라이언트 툴링과 통합되어 있습니다. 애플리케이션 개발자는 Operator를 사용하여 기본적으로 Kubernetes에서 실행되고 기존 Kubernetes 프로세스와 통합되며 기관 지식을 포함할 수 있는 애플리케이션을 생성할 수 있습니다. 이러한 지식은 애플리케이션 배포에만 국한되지 않고 원활한 업그레이드, 서로 다른 서비스 간의 조정, 사용자 정의 확장 프로세스, 복잡한 시스템에 통합 가시성을 포함할 수 있게 해주었으며, 이는 프레임워크가 Kubernetes 에코시스템에 수용되는 원동력이 되었습니다.
이 장의 목표는 연산자 작성 방법을 가르치는 것이 아닙니다. 이 주제에 대한 수많은 리소스가 있으며 한 장에서 다룰 수 있는 내용보다 훨씬 더 심도 있는 내용을 다루고 있습니다. 여기서는 개념을 소개하고 오퍼레이터를 환경에 구현해야 하는 시기와 이유를 설명하면서 계획에 필요한 몇 가지 주요 고려 사항을 공유하는 것이 목표입니다.
운영자 주요 구성 요소
오퍼레이터 프레임워크 자체는 잘 정의된 소프트웨어 개발 키트(SDK), 수명 주기 관리 및 퍼블리싱 도구가 포함된 오픈 소스 툴킷입니다. 오퍼레이터 패턴의 개념을 중심으로 구축되어 커뮤니티가 더 쉽게 개발할 수 있도록 하는 몇 가지 프로젝트가 있습니다. Kubernetes 커뮤니티의 API 기계 SIG 멤버들은 오퍼레이터의 두 가지 주요 구성 요소로 작업하기 위한 기본 SDK를 제공하기 위해 kubebuilder의 개발을 후원했다: 사용자 정의 리소스 정의(CRD)와 컨트롤러. 커뮤니티의 일부로서 구글의 후원을 받는 kubebuilder는 모든 오퍼레이터와 KUDO, KubeOps, Kopf와 같은 다른 프로젝트를 위한 기본 SDK로 자리 잡고 있다. 이 장의 예제에서는 특정 코드가 설명되는 kubebuilder 구문을 기반으로 하지만, 개념은 ...