Kubebuilder 시작하기

1 개요

Getting Started
시작하기

오퍼레이터 패턴을 따르면, 예상되는 모든 리소스를 제공할 수 있을 뿐만 아니라 이를 동적으로, 프로그래밍 방식으로, 실행 시 관리할 수 있습니다. 이 아이디어를 설명하기 위해 누군가 실수로 설정을 변경했거나 실수로 리소스를 제거했다고 가정해 보겠습니다. 이 경우 오퍼레이터는 사람의 개입 없이 문제를 해결할 수 있습니다.

2 샘플 프로젝트

어떻게 작동하는지 알려드리기 위해 샘플 프로젝트를 만들어 보겠습니다. 이 샘플은 다음을 수행합니다.

  • Memcached CR 맞춤조정 - 클러스터에 배포/관리되는 Memcached의 인스턴스를 나타냅니다.
  • Memcached 이미지를 사용하여 Deployment 생성
  • 적용될 CR에 정의된 크기보다 많은 인스턴스 불허
  • Memcached CR 상태 업데이트

다음 단계를 따르세요.

3 프로젝트 생성

먼저, 프로젝트 디렉토리를 만들고 탐색합니다. 그런 다음, kubebuilder를 사용하여 초기화합니다.

mkdir $GOPATH/memcached-operator
cd $GOPATH/memcached-operator
kubebuilder init --domain=example.com

4 Memcached API (CRD) 생성

다음으로 Memcached 솔루션 배포 및 관리를 담당하는 새로운 API를 생성하겠습니다. 이 경우 [Deploy Image Plugin][deploy-image]를 활용하여 솔루션에 대한 포괄적인 코드 구현을 얻습니다.

kubebuilder create api --group cache --version v1alpha1 --kind Memcached --image=memcached:1.4.36-alpine --image-container-command="memcached,-m=64,-o,modern,-v" --image-container-port="11211" --run-as-user="1001" --plugins="deploy-image/v1-alpha" --make=false

4.1 API 이해하기

4.2 API 정의

4.2.1 상태와 스펙

4.2.2 마커와 검증

4.2.3 커스텀 리소스 샘플

4.3 Reconciliation 처리

4.3.1 반환 옵션

4.3.2 우리 예시 맥락에서

4.3.3 클러스터의 변경 사항 관찰

4.4 RBAC 권한 설정

4.5 매니저 (main.go)

4.6 클러스터에서 실행 중인 프로젝트 확인

5 다음 단계

  • 솔루션 개발에 대해 더 자세히 알아보려면 제공된 튜토리얼을 살펴보세요.
  • 접근 방식 최적화에 대한 통찰력을 얻으려면 모범사례 문서를 참조하세요.

6 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}