CRD
-
CRD 리소스에서 Optimistic Concurrency Control(OCC) 구현Kubernetes 2025. 4. 2. 04:20
Kubernetes는 분산 환경에서 여러 클라이언트가 동시에 리소스를 수정할 수 있기 때문에, 충돌 관리가 중요합니다. 이를 해결하기 위해 Kubernetes는 Optimistic Concurrency Control(OCC) 방식을 사용합니다.이 글에서는 CRD(Custom Resource Definition) 리소스에서도 OCC를 어떻게 구현하고 사용하는지, 그리고 실제 Go 코드로 어떻게 처리하는지 알아보겠습니다. OCC란?OCC(낙관적 동시성 제어)는 "충돌이 자주 일어나지 않을 것"이라고 가정하고,리소스를 수정할 때마다 현재 버전(resourceVersion)을 확인하여 충돌 여부를 판단하는 방식입니다.최신 버전일 경우 → 정상 업데이트버전 불일치 시 → 409 Conflict 오류 발생 → 재시..
-
CRD를 생성하면 벌어지는 일들Kubernetes 2025. 3. 25. 10:19
kubectl로 CRD(CustomResourceDefinition)를 생성하면 Kubernetes API 서버에 새로운 “Custom API”가 등록됩니다.즉, kubectl create -f mycrd.yaml 같은 명령어로 CRD를 적용하면, Kubernetes는 해당 리소스를 공식 리소스처럼 인식하게 돼요. CRD를 생성하면 무슨 일이 벌어질까? 1. apiextensions.k8s.io/v1의 CRD 오브젝트가 etcd에 저장됨 2. Kubernetes API 서버가 동적으로 해당 CRD를 감지 3. 지정된 group, version, kind에 따라 새로운 RESTful API endpoint가 자동으로 생성됨 • 예: myresources.mygroup.example.com/v1 4. kub..
-
CRD와 CR만 정의하는 경우 활용 사례Kubernetes 2025. 3. 2. 12:05
✅ Controller 없이 CRD와 CR만 정의하는 경우의 유즈케이스Kubernetes에서 CRD(Custom Resource Definition) 와 CR(Custom Resource) 만 정의하고, 컨트롤러를 작성하지 않는 경우에도 몇 가지 유용한 활용 사례가 있습니다. 이러한 경우 주로 데이터 저장, 구성 관리, API 확장 등의 목적으로 사용됩니다. 1️⃣ 선언적 설정 저장소 (Declarative Configuration Storage)CRD를 데이터 저장소로 사용하여 특정 애플리케이션이나 시스템의 설정 값을 Kubernetes 클러스터에 저장할 수 있음.애플리케이션이 Kubernetes API를 통해 CR을 읽어가며 설정을 가져올 수 있음.컨트롤러가 필요 없음 → 애플리케이션이 직접 API ..