Skip to content

Kube-rs

  • Published on
    Rust 1.97.0이 2026년 7월 9일에 stable로 릴리스됐습니다. 이 글은 릴리스 노트에서 실제로 바뀐 세 가지 — v0 심볼 맹글링의 stable 승격, Cargo의 경고 거부(deny warnings), 그동안 숨어 있던 링커 출력의 기본 노출 — 을 정리하고, 며칠 전 바로 그 cargo 1.97로 쿠버네티스 GPU 오퍼레이터를 빌드했던 실측 경험과 겹쳐 봅니다. 정직한 결론 하나: 오퍼레이터를 짤 때 정말 중요했던 건 툴체인 버전이 아니라 kube-rs 0.96이라는 생태계였습니다. 그리고 누가 지금 올려야 하는지도 담담하게 적었습니다.
  • Published on
    8노드 실운영 홈랩 클러스터(k8s v1.32.5)를 상대로, kube-rs를 써서 GPU 오퍼레이터를 Rust로 직접 만들어 돌렸습니다. GpuInventory 커스텀 리소스를 정의하고, 두 개의 컨트롤러(노드 스캔→CR 상태 기록, 노드 감시→ConfigMap 갱신)를 한 바이너리로 띄워 클러스터 밖에서 실행했습니다. 그리고 오퍼레이터가 실제로 뱉은 결과 — GPU 노드 4개 중 Ready 0개, 즉 GPU 함대 전체가 죽어 있다는 진단 — 와, 그 과정에서 실제로 만난 두 가지 함정(server-side apply의 invalid object type 에러, 상태 기록이 자기 자신을 다시 부르는 무한 리컨사일 루프)을 실측 로그와 함께 정리합니다.
  • Published on
    쿠버네티스 Operator는 운영 지식을 코드로 옮긴 컨트롤러입니다. 이 글은 Operator 패턴(CRD + 컨트롤러 + reconcile 루프)의 원리부터 kube-rs로 실제 오퍼레이터를 만드는 법까지 다룹니다. CustomResource 파생 매크로로 CRD 정의, Api와 Controller, watcher, reconcile 함수와 requeue, 파이널라이저(finalizer)로 정리 로직 처리, 그리고 왜 Go/kubebuilder 대신 Rust를 쓰는지(작은 리소스 풋프린트, 메모리 안전성)까지 살펴봅니다.