今天這篇是一個 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參數」的推薦目錄:
- 關於shell script參數 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於shell script參數 在 軟體開發學習資訊分享 Facebook 的最佳貼文
- 關於shell script參數 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於shell script參數 在 大象中醫 Youtube 的最讚貼文
- 關於shell script參數 在 大象中醫 Youtube 的最讚貼文
- 關於shell script參數 在 5. Shell腳本語法 的評價
- 關於shell script參數 在 [問題] shell script 中的sed傳遞變數請益- 看板Linux - PTT數位 ... 的評價
shell script參數 在 軟體開發學習資訊分享 Facebook 的最佳貼文
🌳 文章標題:13 個使用出色的使用者體驗技巧寫好 shell script
shell script 腳本大部分都是開發者用於工作自動化,有些是寫給自己使用,但是如果你寫的 shell script 是要給同樣是開發者的同事使用呢?
文章作者以 UX 的觀點,提出 13 個技巧讓你的 shell script 更有可用性
1. 提供--help 選項
2. 檢查所有命令的可用性 - 呼叫可能不存在的命令時,請先檢查它們是否可用
3. 於當前工作目錄可獨立運作 - 從不同的目錄執行腳本可能會發生錯誤,這樣的腳本沒有人會喜歡
4. 如何讀取輸入:環境變數 vs. 腳本參數 - 對於不影響腳本行為的值,可以使用環境變數,而對於可能觸發腳本不同流程的值,可以使用腳本參數。
5. 輸出你對系統執行的所有操作
6. 如果有必要,提供--silent選項
7. 重新開啓顯示
8. 用動畫的方式顯示進度
9. 使用顏色輸出你的程式結果 - 綠色表示成功,紅色表示失敗,黃色表示警告
10. 出現錯誤立即退出腳本
11. 自己執行清理工作
12. 在退出時使用不同的錯誤碼
13. 在結束時輸出一個新行
文章作者在每個實踐都有詳細解釋與使用 shell script 示範 ,如果你寫的 script 也要給同事使用 ,遵循這些實踐,他們會感激你的
✍ 我們之前也有介紹過幾堂 schell script 的學習課程,有興趣可參考 http://bit.ly/2HV2ObM
https://codeburst.io/13-tips-tricks-for-writing-shell-scrip…
shell script參數 在 コバにゃんチャンネル Youtube 的最佳解答
shell script參數 在 大象中醫 Youtube 的最讚貼文
shell script參數 在 大象中醫 Youtube 的最讚貼文
shell script參數 在 [問題] shell script 中的sed傳遞變數請益- 看板Linux - PTT數位 ... 的推薦與評價
大家好我想利用修改crondtab的方式來達成esxi排程關機在shell script中寫sed -i '$a 40 9 $1 $2 * /sbin/poweroff ' file name 然後使用sh xxx.sh 22 3 原本是期望能將 ... ... <看更多>
shell script參數 在 5. Shell腳本語法 的推薦與評價
表示參數列表 "$1" "$2" ... ,例如可以用在 for 循環中的 in 後面。 $?, 上一條命令的Exit Status. $$, 當前Shell的進程號. 位置參數 ... ... <看更多>