一旦我在k8s集群中注冊了crd,我就可以使用.yaml來創建它,而不需要運行操作員。然后,這些創建的資源會發生什么情況?
我已經看到了operator的
。Reconciler,但它更像是一個異步的狀態轉移。當我們創建一個pod時,我們可以直接從創建結果中獲得pod ip。但是,我似乎沒有找到一個地方來寫我的OnCreate鉤。(我只看到了一些validatewebhook,但從來沒有看到一個鉤子,當創建請求發出時被呼叫,定義如何創建資源,并將創建的資源資訊回傳給呼叫者)如果我的故事是,對于一種資源,在一個時間視窗中,所有即將到來的創建將只復用一個 pod。你能給我一些建議嗎?
uj5u.com熱心網友回復:
對于kubernetes的crd/controller生命周期來說,這是一個很大的故事,我試圖做一個簡單的表述。
這意味著資源(你的CR)將被存盤到etcd,與你的controller沒有關系。
- 好吧,讓我們來談談你的控制器。你的控制器將設定一個
list/watch(實際上是一個長期的http鏈接)到api-server并為不同的事件注冊hook(你問什么,對嗎?onCreate,onUpdate和onDelete。事實上,你將在你的控制器的reconcile中處理所有的事件(記住kubernetes reconcile的職責:將當前狀態轉移到所需狀態)。見圖。
。
- 對于你的
controller中的list/watch鏈接,你需要為不同種類的資源設定不同的鏈接。例如:如果你關心pod的事件,你需要設定podlist/watch或者關心部署,并設定一個deploymentlist/watch...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/319485.html
標籤:

