今天這篇是一個 Operator 的介紹文,該文分成三大部分,分別是 What, Why 以及 How
如果你本身對於 Operator 的概念還不是很熟悉的,會非常推薦閱讀這篇文章,幫助你從頭瞭解到底什麼是 Operator,其背後的實作原理以及我們可以透過 Opeator 做什麼事情,對於維運團隊能夠帶來什麼好處
# What
1. Operator 這個詞是由 CoreOS 工程師於 2016 提出的,目的是希望簡化應用程式的管理,特別是 Stateful 類型的
2. Operator 背後是一個 Controller,該 Controller 會根據當前應用程式的狀態而自動地進行一系列的處理,譬如創建,刪除,管理等各式各樣資源,當然這些操作都是基於 Kubernetes API 完成
3. 根據目前官方 (kubernetes.io) 的說明,要理解 Operator 就會需要理解兩個概念,分別是 CRD (Custom Resource Definition) 以及 Control-Loop
4. CRD 提供一個方式讓開發者能夠定義屬於自己的 resource,包含了 apiversion, kind 等欄位。舉例來說,你可以自己定義一個跟 Pod 幾乎完全一樣的資源,然後擴充或是減少一些欄位
# Why
1. Kubernetes 內建的機制與資源對於是非常適合於無狀態應用程式(Stateless)的,這些資源足夠滿足無狀態應用程式的需求,譬如自動擴展數量,提供流量的負載平衡
2. 但是當 Kubernetes 的應用場景愈來愈多, Stateful 應用程式的需求就出現了,這時候原生的機制就稍嫌不足,使用起來不夠順暢。
3. 透過 Operator 的概念 (CRD + Control-Loop),使用 CRD 來定義你的資源狀態,並且透過 Controller 來幫你維護你的運作邏輯,譬如什麼時候該產生/刪除 Pod,什麼時候該創立/刪除其他資源,這些邏輯的實現都隱藏到 Controller 之中,但是同時也透過 CRD 提供一些介面參數讓開發者與維運者有能力對其進行一些調整
# How
1. 如何撰寫一個 Operator,有一些現成的工具可以幫忙,譬如 Kudo, Operator SDK, Kubebuilder 等
2. 有興趣觀看這些工具的介紹與使用,可以看全文
# Operator 的必要性
1. 2020 北美 Kubecon 上有非常多關於 Operator 的討論,作者特別提出由 HashiCorp 所分享的議程 Stop Writing Operators ,並且針對幾點來討論
2. 如果你的自動化是一個每個月執行10分鐘這種工作,那花上數週來維護與撰寫這種自動化其實非常不值得
3. 實際上開發一個 Operator 會遇到滿多問題,即使你使用 Kubebuilder 等這類型工具也還是會有很多小問題
4. 如果能的話,作者覺得有時候寫一些醜陋的 shell script 會比客製化各式各樣的 operator 還來得好。
https://medium.com/swlh/kubernetes-operator-for-beginners-what-why-how-21b23f0cb9b1
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「shell script for loop」的推薦目錄:
- 關於shell script for loop 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於shell script for loop 在 コバにゃんチャンネル Youtube 的精選貼文
- 關於shell script for loop 在 大象中醫 Youtube 的精選貼文
- 關於shell script for loop 在 大象中醫 Youtube 的最讚貼文
- 關於shell script for loop 在 Shell script "for" loop syntax - Stack Overflow 的評價
- 關於shell script for loop 在 The Shell: Loops & Scripts | Introduction to the command line ... 的評價
- 關於shell script for loop 在 How to make a for loop in command line? - Unix StackExchange 的評價
shell script for loop 在 コバにゃんチャンネル Youtube 的精選貼文
shell script for loop 在 大象中醫 Youtube 的精選貼文
shell script for loop 在 大象中醫 Youtube 的最讚貼文
shell script for loop 在 The Shell: Loops & Scripts | Introduction to the command line ... 的推薦與評價
Shell scripts are text files that contain commands we want to run. As with any file, you can give a shell script any name and usually have the extension .sh . ... <看更多>
shell script for loop 在 How to make a for loop in command line? - Unix StackExchange 的推薦與評價
The syntax of a for loop from the bash manual page is for name [ [ in [ word ... ] ] ; ] do list ; done. The semicolons may be replaced with carriage ... ... <看更多>
shell script for loop 在 Shell script "for" loop syntax - Stack Overflow 的推薦與評價
... <看更多>
相關內容