作者:程序源234
來源:CSDN
原文:https://blog.csdn.net/yan234280533/article/details/75333246
1.what
Operator是CoreOS推出的旨在簡化復雜有狀態應用管理的框架,它是一個感知應用狀態的控制器,通過擴展Kubernetes API來自動創建、管理和配置應用實例。
2.Operator原理
Operator基於Third Party Resources擴展了新的應用資源,並通過控制器來保證應用處於預期狀態。比如etcd operator通過下面的三個步驟模擬了管理etcd集群的行為:
通過Kubernetes API觀察集群的當前狀態;
分析當前狀態與期望狀態的差別;
調用etcd集群管理API或Kubernetes API消除這些差別。
Operator本質是通過在Kubenertes中部署對應的Third-Party Resource (TPR)插件,然后通過部署Third-Party Resource的方式來部署對應的應用。Third-Party Resource會調用Kubenertes部署API部署相應的Kubenertes資源,並對資源狀態進行管理。
3. 如何創建Operator
Operator是一個感知應用狀態的控制器,所以實現一個Operator最關鍵的就是把管理應用狀態的所有操作封裝到配置資源和控制器中。通常來說Operator需要包括以下功能:
Operator自身以deployment的方式部署
Operator自動創建一個Third Party Resources資源類型,用戶可以用該類型創建應用實例
Operator應該利用Kubernetes內置的Serivce/ReplicaSet等管理應用
Operator應該向后兼容,並且在Operator自身退出或刪除時不影響應用的狀態
Operator應該支持應用版本更新
Operator應該測試Pod失效、配置錯誤、網絡錯誤等異常情況