백엔드 개발 Golang Kontroler 소개: DAG용 Kubernetes 예약 엔진

Kontroler 소개: DAG용 Kubernetes 예약 엔진

Nov 22, 2024 pm 03:59 PM

컨트롤러란 무엇입니까?

Kontroler는 DAG(방향성 비순환 그래프) 관리를 단순화하도록 설계된 오픈 소스 Kubernetes 스케줄링 엔진입니다. Kontroler를 사용하면 YAML에서 워크플로를 정의하고, 작업을 컨테이너화된 작업으로 실행하고, 선택적 웹 기반 UI를 통해 시각화할 수도 있습니다. 일정에 따라 워크플로를 실행해야 하거나 실시간 이벤트에 응답해야 하는 경우 Kontroler는 유연한 Kubernetes 기반 솔루션을 제공합니다.

그러나 Kontroler는 현재 알파 상태라는 점을 주의해야 합니다. 실험 및 프로토타입 제작에 이상적이지만 아직 프로덕션 용도로 사용할 준비가 되지 않았을 수 있습니다. 사이드 프로젝트로 Kontroler는 지원을 제공하지 않으므로 사용자 책임하에 프로덕션에서 사용하십시오!

GitHub 저장소를 확인하고 싶다면 여기를 확인하세요: https://github.com/GreedyKodoDragon/Kontroler

왜 컨트롤러를 사용하나요?

Kubernetes에서 워크플로를 관리하는 것은 어려울 수 있습니다. Kubernetes는 CronJobs 및 Jobs와 같은 강력한 기본 요소를 제공하지만 종속성, 재시도 및 동적 트리거를 사용하여 복잡한 워크플로를 조정하려면 사용자 지정 스크립트나 외부 도구가 필요한 경우가 많습니다. Kontroler는 DAG(방향성 비순환 그래프)로 워크플로를 정의, 예약 및 관리하는 Kubernetes 기반 솔루션을 제공하여 이 프로세스를 단순화합니다.

Kontroler가 돋보이는 이유는 다음과 같습니다.

1. YAML을 사용한 Gitops DAG 관리

Kontroler를 사용하면 간단한 YAML 파일을 사용하여 작업, 종속성, 재시도 논리, 조건부 실행을 포함한 전체 워크플로를 정의할 수 있습니다. 이 접근 방식을 사용하면 워크플로를 선언적이고 버전 제어하며 팀 간에 쉽게 공유할 수 있습니다.

Helm 차트로 래핑하고 ArgoCD 또는 FluxCD와 같은 자동화된 배포 시스템을 사용하면 GitOps 워크플로 내에서 DAG가 관리됩니다.

2. 이벤트 기반 및 예약된 워크플로 지원

정기적인 일정(예: CronJobs)으로 실행하기 위한 워크플로가 필요하거나 실시간 트리거(예: 대기열의 메시지)에 반응해야 하는 경우 Kontroler가 도와드립니다. 두 가지 스케줄링 패러다임을 완벽하게 통합하여 광범위한 사용 사례에 다용도로 사용할 수 있습니다.

Kontroler는 DagRuns(Kontroler가 모니터링할 수 있는 사용자 정의 리소스 정의(CRD))를 사용하여 작동합니다. DAG 실행을 실행하려면 간단히 DagRun을 생성하면 Kontroler가 실행을 관리합니다. 이 기능을 컨트롤러 외부에 노출함으로써 Kontroler는 외부 시스템과의 원활한 통합을 가능하게 합니다. 아래 DagRun의 예를 참조하세요.

apiVersion: kontroler.greedykomodo/v1alpha1
kind: DagRun
metadata:
  labels:
    app.kubernetes.io/name: dagrun
    app.kubernetes.io/instance: dagrun-sample
  name: dagrun-sample
spec:
  dagName: dag-sample
  parameters:
    - name: first
      fromSecret: secret-name-new
    - name: second
      value: value_new
로그인 후 복사

선택적으로 매개변수를 포함하여 DAG의 이름만 제공하면 됩니다. 매개변수는 지정되지 않은 경우 기본값을 사용합니다.

3. 컨테이너와 원활하게 통합됩니다.

Kubernetes 기반 애플리케이션인 Kontroler는 플랫폼의 장점을 활용합니다. 간단한 스크립트부터 복잡한 애플리케이션까지 Kontroler의 컨테이너 우선 설계를 통해 모든 워크로드를 DAG에 쉽게 통합할 수 있습니다.

노력의 중복을 더욱 줄이기 위해 작업에 대한 지원을 CRD로 추가하고 있습니다.

4. 더 나은 가시성을 위한 선택적 UI 제공

YAML은 코드형 인프라에 탁월하지만 워크플로를 시각화하고 실행을 추적하면 디버깅과 최적화를 크게 단순화할 수 있습니다. Kontroler는 DAG 생성 및 모니터링을 위한 선택적인 웹 기반 UI를 제공하여 팀에게 워크플로를 관리하는 직관적인 방법을 제공합니다.

Introducing Kontroler: A Kubernetes Scheduling Engine for DAGs

위 스크린샷에는 다음 내용이 표시됩니다.

  • 작업 간 연결
  • DagRun에서는 상태가 표시됩니다
  • 네트워크를 클릭하면 Pod 결과

내부적으로 이 기능은 그래프 생성을 위한 오픈 소스 프로젝트인 vis-network를 통해 구동됩니다. 여기에서 GitHub 저장소를 찾을 수 있습니다. 처음에 우리는 자체 그래프 도구를 개발했지만 확장하기 어렵고 복잡한 그래프를 읽기 쉽게 만드는 것이 어려웠습니다. 그 결과 우리는 이 오픈 소스 솔루션을 채택했습니다.

5. 고급 구성을 위한 유연한 포드 템플릿

Kontroler의 포드 템플릿을 사용하면 비밀, PVC, 노드 선호도, 보안 컨텍스트 등과 같은 고급 Kubernetes 기능으로 작업을 사용자 정의할 수 있습니다. 이를 통해 작업 실행 방법을 세밀하게 제어할 수 있어 클러스터의 특정 요구 사항과의 호환성이 보장됩니다.

데이터스토어의 유연성

워크플로 관리의 주요 과제 중 하나는 기본 인프라가 필요에 따라 확장될 수 있는지 확인하는 것입니다. Kontroler는 팀이 DAG를 보다 쉽게 ​​관리하고 자세한 실행 로그를 캡처할 수 있도록 유연한 데이터베이스 지원 및 로깅 기능을 제공합니다. 가벼운 설정에서 작업하든 보다 강력한 생산 환경에서 작업하든 Kontroler는 귀하의 필요에 맞는 옵션을 제공합니다.

SQLite(기본 소규모)

소규모 설정이나 개발 중에는 SQLite가 Kontroler에서 사용되는 기본 데이터베이스입니다. 간단하고 가벼우며 많은 구성이 필요하지 않습니다. 방금 시작했거나 테스트 목적으로 Kontroler를 실행하는 경우 SQLite는 추가 데이터베이스 설정 없이 "즉시" 작동하므로 편리한 선택입니다.

SQLite를 사용하려는 경우 배포를 추가로 변경할 필요가 없습니다. 설치 지침을 따르기만 하면 나머지는 Kontroler가 처리해 드립니다.

PostgreSQL(프로덕션/대규모용)

대규모 프로덕션 수준 배포의 경우 PostgreSQL은 DAG 및 DagRun 저장을 위한 권장 데이터베이스입니다. Kontroler는 PostgreSQL을 사용하여 대용량 워크플로 데이터를 처리하는 데 필요한 더 높은 성능, 확장성 및 안정성을 제공합니다. Kontroler는 PostgreSQL 16 이상과 호환됩니다

로그 수집

많은 Kubernetes 사용자에게 중앙 집중식 로그 스토리지는 관찰 가능성과 문제 해결을 위한 중요한 요구 사항입니다. Kontroler는 로그 저장을 위해 Amazon S3와 원활하게 통합되므로 DAG 실행에서 로그를 쉽게 수집, 저장 및 분석할 수 있습니다. 이러한 통합을 통해 자세한 로그를 캡처하고, 감사를 위해 장기간 보관하고, 문제가 발생할 경우 사후 분석에 사용할 수 있습니다.

비용 절감을 위해 MinIO로 테스트하고 있지만 내부적으로는 AWS S3 API를 사용하며 IAM 속성을 감지하여 S3 버킷에 대한 액세스 권한을 부여할 수 있어야 합니다.

최종 발언

Kontroler를 확인해 보시기 바랍니다! 여기에서 찾을 수 있습니다: https://github.com/GreedyKomodoDragon/Kontroler.

아직 알파 버전이지만 Kontroler는 Kubernetes 운영을 간소화하려는 팀에게 상당한 잠재력을 갖고 있습니다. 진화함에 따라 Kontroler는 Kubernetes에서 워크플로를 조정하는 강력한 도구가 되어 팀이 복잡한 프로세스를 쉽게 자동화하는 데 필요한 안정성과 확장성을 제공하는 것을 목표로 합니다.

Kontroler는 지속적으로 개선되고 있으니 향후 업데이트를 계속 지켜봐주세요! 프로젝트에 기여하고 싶다면 모든 형태의 기여를 환영합니다.

위 내용은 Kontroler 소개: DAG용 Kubernetes 예약 엔진의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Golang의 목적 : 효율적이고 확장 가능한 시스템 구축 Golang의 목적 : 효율적이고 확장 가능한 시스템 구축 Apr 09, 2025 pm 05:17 PM

Go Language는 효율적이고 확장 가능한 시스템을 구축하는 데 잘 작동합니다. 장점은 다음과 같습니다. 1. 고성능 : 기계 코드로 컴파일, 빠른 달리기 속도; 2. 동시 프로그래밍 : 고어 라틴 및 채널을 통한 멀티 태스킹 단순화; 3. 단순성 : 간결한 구문, 학습 및 유지 보수 비용 절감; 4. 크로스 플랫폼 : 크로스 플랫폼 컴파일, 쉬운 배포를 지원합니다.

Golang 및 C : 동시성 대 원시 속도 Golang 및 C : 동시성 대 원시 속도 Apr 21, 2025 am 12:16 AM

Golang은 동시성에서 C보다 낫고 C는 원시 속도에서 Golang보다 낫습니다. 1) Golang은 Goroutine 및 Channel을 통해 효율적인 동시성을 달성하며, 이는 많은 동시 작업을 처리하는 데 적합합니다. 2) C 컴파일러 최적화 및 표준 라이브러리를 통해 하드웨어에 가까운 고성능을 제공하며 극도의 최적화가 필요한 애플리케이션에 적합합니다.

Golang vs. Python : 주요 차이점과 유사성 Golang vs. Python : 주요 차이점과 유사성 Apr 17, 2025 am 12:15 AM

Golang과 Python은 각각 고유 한 장점이 있습니다. Golang은 고성능 및 동시 프로그래밍에 적합하지만 Python은 데이터 과학 및 웹 개발에 적합합니다. Golang은 동시성 모델과 효율적인 성능으로 유명하며 Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명합니다.

Golang의 영향 : 속도, 효율성 및 단순성 Golang의 영향 : 속도, 효율성 및 단순성 Apr 14, 2025 am 12:11 AM

goimpactsdevelopmentpositively throughlyspeed, 효율성 및 단순성.

Golang vs. Python : 성능 및 확장 성 Golang vs. Python : 성능 및 확장 성 Apr 19, 2025 am 12:18 AM

Golang은 성능과 확장 성 측면에서 Python보다 낫습니다. 1) Golang의 컴파일 유형 특성과 효율적인 동시성 모델은 높은 동시성 시나리오에서 잘 수행합니다. 2) 해석 된 언어로서 파이썬은 천천히 실행되지만 Cython과 같은 도구를 통해 성능을 최적화 할 수 있습니다.

공연 경주 : 골랑 대 c 공연 경주 : 골랑 대 c Apr 16, 2025 am 12:07 AM

Golang과 C는 각각 공연 경쟁에서 고유 한 장점을 가지고 있습니다. 1) Golang은 높은 동시성과 빠른 발전에 적합하며 2) C는 더 높은 성능과 세밀한 제어를 제공합니다. 선택은 프로젝트 요구 사항 및 팀 기술 스택을 기반으로해야합니다.

C와 Golang : 성능이 중요 할 때 C와 Golang : 성능이 중요 할 때 Apr 13, 2025 am 12:11 AM

C는 하드웨어 리소스 및 고성능 최적화가 직접 제어되는 시나리오에 더 적합하지만 Golang은 빠른 개발 및 높은 동시성 처리가 필요한 시나리오에 더 적합합니다. 1.C의 장점은 게임 개발과 같은 고성능 요구에 적합한 하드웨어 특성 및 높은 최적화 기능에 가깝습니다. 2. Golang의 장점은 간결한 구문 및 자연 동시성 지원에 있으며, 이는 동시성 서비스 개발에 적합합니다.

Golang 및 C : 성능 상충 Golang 및 C : 성능 상충 Apr 17, 2025 am 12:18 AM

Golang과 C의 성능 차이는 주로 메모리 관리, 컴파일 최적화 및 런타임 효율에 반영됩니다. 1) Golang의 쓰레기 수집 메커니즘은 편리하지만 성능에 영향을 줄 수 있습니다. 2) C의 수동 메모리 관리 및 컴파일러 최적화는 재귀 컴퓨팅에서 더 효율적입니다.

See all articles