2024-08-03, 15:30–16:00 (Asia/Taipei), TR212
Kubernetes 提供了各式各樣編排元件的方法,同時也提供了各種介面來控制其編排元件的邏輯。本議程將介紹 Kubernetes operator 的概念,簡介其使用方式與運作原理,比較各種實作方案,並在瞭解其技術意義的同時進而評估採用此技術的業務風險。
本議程旨在介紹 Kubernetes operator,解釋其用途與實作方案,包括但不限於 Redhat Operator SDK。
- 何謂 Kubernetes Operator,它究竟是什麼概念?它用來解決什麼技術問題? (5min)
- 粗略介紹實作 Operator 的可能方法,包括 Redhat Operator SDK 中的 Ansible / Go framework,甚至是 Java with Fabric 8,更能衍伸至其他語言實作 (10min)
- 比較不同實作方法的優缺點,實作之後到上線前的驗證手段,同時從技術層面概覽 Kubernetes informer 的運作方法 (10min)
- 最後討論在什麼樣的團隊業務需求之下才需要真正動手寫 operator,並該用什麼方針或心態選擇議程中介紹過的實作方案 (5min)
本議程所涉及的開源技術與社群主要包括 Kubernete 生態,包括利用 Helm 協助管理套裝元件的使用者,與實際用 Go 或其他語言介接 Kubernetes API 的進階使用者,所瞄準的受眾包括:
- 一般 micro service 開發者與維運者,例如 backend developer 或 devops:具有一定開發經驗,需要或已經正在使用服務叢集編排服務。對於此類受眾,可以瞭解 Kubernetes 的 resource 動態狀態互動手段與大略架構。
- 在商業上參與 micro service cluster 架構設計者,例如 tech lead 或 architect:除開發經驗外,對於產品實現手段有決策責任。這些受眾在採用技術時必須同時考量正反面效果,除了理解此技術能協助產品得到哪些額外好處的同時,也能理解採用時需要考量的團隊能力背景需求,以及所帶來的開發維護成本。
- 由於本議程除了介紹 Redhat 用 Ansible/Go/Helm 所實作的 Operator SDK,也包含講者實際以 Java Fabric 8 實作 operator 的開發經驗,因此也可以滿足跨語言技術比較者的好奇心。
本議程主要參考資料包括:
- Redhat Operator SDK: https://sdk.operatorframework.io
- 包括 operator 架構的解說,以及可以 Helm/Ansible/Go 實作成 operator 用的 framework
- Fabric 8 - Java based Kubernetes PaaS platform for Cloud Native Micro-services running on top of Kubernetes: https://fabric8.io
- 雖然 platform project 已經被 Redhat 宣佈 discontinued,但用於實作 operator 用的 subproject 仍為社群持續活躍更新著:https://github.com/fabric8io/kubernetes-client
Senior system and backend developer, interested on lower level system behavior.
@coldturnip@g0v.social
https://rfns.io/about