<aside> 💡 ***Operator란 ?

GitHub Link -*** https://github.com/syyjbhjh3/yjOps

****** https://kubernetes.io/ko/docs/concepts/extend-kubernetes/operator/ 오퍼레이터(Operator)는 사용자 정의 리소스를 사용하여 애플리케이션 및 해당 컴포넌트를 관리하는 쿠버네티스의 소프트웨어 익스텐션(어렵다….)

쿠버네티스는 자동화를 위해 설계되었다. 기본적으로 쿠버네티스의 중추를 통해 많은 빌트인 자동화 기능을 사용할 수 있다. 쿠버네티스를 사용하여 워크로드 배포 및 실행을 자동화할 수 있고, 또한 쿠버네티스가 수행하는 방식을 자동화할 수 있다. 쿠버네티스의 오퍼레이터 패턴 개념을 통해 쿠버네티스 코드 자체를 수정하지 않고도 컨트롤러를 하나 이상의 사용자 정의 리소스(custom resource)에 연결하여 클러스터의 동작을 확장할 수 있다. 오퍼레이터는 사용자 정의 리소스의 컨트롤러 역할을 하는 쿠버네티스 API의 클라이언트다.

</aside>

제작동기

할 일 목록

개발환경 세팅

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.3.1'
    id 'io.spring.dependency-management' version '1.1.5'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(22)
    }
}

repositories {
    mavenCentral()
}

dependencies {
    annotationProcessor 'io.fabric8:crd-generator-apt:6.13.0'

    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'io.javaoperatorsdk:operator-framework-spring-boot-starter:5.5.0'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'io.javaoperatorsdk:operator-framework-spring-boot-starter-test:5.5.0'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
    useJUnitPlatform()
}

Test Operator 따라하기

Helm Chart Deploy CRD 만들기 (시행착오 겪기…)