欧洲精品久久久av无码电影,日日噜噜夜夜爽爽,精品无码国产自产拍在线观看蜜,人妻少妇被粗大爽9797pw,羞国产在线拍揄自揄视频,国产白嫩漂亮美女在线观看,天码欧美日本一道免费,av大片在线无码免费

      歡迎來到同城快修-附近家電維修、家電清洗、家電安裝服務平臺

      24小時家電維修熱線:

      400—1558638

      當前位置:主頁 > 洗衣機 > 維修資訊 >

      海爾洗衣機故障err8(海爾洗衣機故障err7怎么解決)

      發布日期:2022-08-05 11:10:46 瀏覽:
      海爾洗衣機故障err8(海爾洗衣機故障err7怎么解決)

      前沿拓展:


      DaoCloud道客:云原生多云應用利器Karmada控制器

      在上一篇《云原生多云應用利器– Karmada 總覽篇》中已經介紹了多云的相關簡介的內容和架構。接下來,在這一篇中來一起看看 Karmada 中有哪些 Controllers 來協調完成多云的控制邏輯。

      Controller (控制器) 在 Kubernetes 中是邏輯能力的主要體現所在,根據資源對象的狀態來完成調和工作,讓資源對象逐步接近期待的狀態,這個就是 Kubernetes 的申明式特性。

      在 Karmada 中,同樣需要對 Karmada 自己的資源對象,實現對應的申明式特性,這就需要實現對應的 Controller。在Karmada 中目前的版本中有 11 個 Controllers,接下來就從每一個控制器所負責的資源對象,以及原理來分析一下,在 Karmada 中是怎樣完成多云能力的。

      Karmada Controllers一覽表及原理分析

      01 Cluster Controller

      cluster controller 主要就是處理 Cluster 資源對象的邏輯,負責處理 Cluster 對應需要的關聯資源。

      相關資源對象:Cluster

      創建 Cluster 的時候,需要在 Karmada 中創建對應的 execution namespace,這個 namespace 中會保存所有這個集群相關的 Work 對象。刪除Cluster的時候,需要在 Karmada 中刪除對應的execution namespace。Cluster 資源對象保存在 karmadacluster 這個 namespace 中,這個 namespace 中保存了所有集群對應的 Cluster 資源對象。02 Cluster status controller:

      cluster status controller 主要就是處理 cluster status 資源對象的邏輯,用來收集 Cluster 的狀態,保存到 Cluster 的 status 字段中,同步上報到 Karmada 的控制平面中。

      相關資源對象:Cluster

      watch Cluster 對象,然后執行 sync 方法,同步上報集群的狀態給Karmada 控制平面 (也就是 Karmada 集群中,karmadacluster 這個 namespace 中的某一個 cluster 對象)。收集當前 agent 所在集群的狀態信息,這些信息包含 Nodes 統計,Pods 相關的資源統計,Kubernetes 版本,以及 Kubernetes 集群支持的資源對象的類型的 GVR,其中包含 CRD 的支持信息等,然后同步更新到 Karmada 控制平面 Cluster 對象的 status 中。具體的狀態包含哪些信息,請查看《云原生多云應用利器– Karmada 總覽篇》03 namespace sync controller:

      namespace sync controller 主要就是處理 namespace 資源對象的邏輯,負責將 Karmada 控制平面創建的 namespace 在集群中同步創建出來。

      相關資源對象:namespace

      namespace sync controller 就是為了將在 Karmada 中創建的 namespace 在所有的工作集群中也去創建出來。namespace 是 “karmadacluster”,或者是 “karmadasystem”,或者是 “default”, 或者 namespace 是 “karmadaes<xxx>”, 或者是 “kube<xxx>” 這樣 namespace 是不需要處理的。以及被包含在 SkippedPropagatingNamespaces 配置中的 namespace,也不需要處理。04 Resourse Template controller:

      detector 模塊中包含了通用 controller 負責 resource template 的 Kubernetes 資源對象的調和處理邏輯,以及匹配 PropagationPolicy。主要就是處理 PropagationPolicy 資源對象的邏輯,來派生出資源對象對應的 ResourceBinding 對象。

      相關資源對象:PropagationPolicy, Kubernetes 支持的所有的資源對象 (包括 CRD)

      定義處理 PropagationPolicy / ClusterPropagationPolicy 的 informer,event handler,以及對應的 reconciler 方法。定義處理 ResourceBinding / ClusterResourceBinding 的 informer,event handler,以及對應的 reconciler 方法。定義處理所有原生 Kubernetes 資源對象的 informer,event handler,以及對應的 reconciler 方法,然后為其創建對應的 ResourceBinding 對象用于調度。根據 Kubernetes 的對象定義以及 PropagationPolicy 構建 ResourceBinding 對象,同時這個 ResourceBinding 的 OwnerReferences 設置了這個 Kubernetes 的對象,這樣就會在刪除 Kubernetes 對象的時候刪除這個 ResourceBinding,這個也是目前 ResourceBinding 會被刪除的唯一邏輯了。所以雖然 ResourceBinding 是因為 PropagationPolicy 的創建而被派生出來,但是不會因為 PropagationPolicy 的刪除而刪除。在刪除 PropagationPolicy 刪除的時候,只會去除 PropagationPolicy 和 Kubernetes 對象的關系,這個關系體現在,Kubernetes object 會在匹配到 PropagationPolicy 的時候在自己的 label 上增加 PropagationPolicy 相關的 label。ResourceBinding 中不會包含 Kubernetes 資源對象的詳細信息,只會包含類型,namespace,name,版本,副本數,cpu/memory 請求,節點親和性,真正詳細的 Kubernetes 對象的處理是在 controller 的syncbinding() 方法中完成,其中是通過workload, err := helper.FetchWorkload (c.DynamicClient,c.InformerManager,c.RESTMapper, binding.Spec.Resource) 去拿到真正的 Kubernetes 資源對象的定義的。每隔 30s 去發現新的 Kubernetes 的資源對象類型,只要這些資源對象支持 list,watch,delete 方法,當然也包括 crd 類型。05 Binding controller:

      binding controller 主要就是處理 ResourceBinding 資源對象的增刪改邏輯,ResourceBinding 的調和能力是派生出 work 對象,work 對象是和特定集群關聯的。一個 work 只能屬于一個集群,代表一個集群的資源對象的模型封裝。

      相關資源對象:ResourceBinding 和 ClusterResourceBinding

      負責 ResourceBinding 的處理,根據 binding 去創建對應的 Work 對象到集群對應的 execution space 中。在生成 Work 的時候,會處理 OverridePolicy,將需要覆蓋的數據更新到 Work 對應的 manifest 中。目前支持的 override 的方式主要是 4 種,包括:PlaintextOverrider,mageOverrider,CommandOverrider,ArgsOverrider。apiVersion: policy.karmada.io/v1alpha1 kind: OverridePolicy metadata: name: nginxpropagation spec: resourceselectors: 一 apiVersion: apps/v1 kind: Deployment name: nginx targetcluster: clusterNames: 10232093 overriders: plaintext: 一 path: &34;/spec/template/spec/containers/O/image&34; operator: replace value: &34;nginx:test&34;根據調度器計算好的每一個集群負責的副本數,如果調度器計算出來的所有集群的對應的副本數是 0,說明沒有找合適的集群,就用 ReplicaSchedulingPolicy 根據權重去計算每一個集群應該負責的副本數,這個 ReplicaSchedulingPolicy 的計算副本分配的方式是用 static weight。收集每一個 binding 的狀態,一個 binding 會包含多個 Work,因為同一個資源對象,在每一個集群中就需要一個 Work,所有 binding 的狀態是所有工作集群中 Work 的狀態的匯總,匯總之后將這個狀態設置到 binding 的 status 中去。

      備注: 原理圖參見第 4 部分的圖

      06 execution controller:

      execution controller 主要就是處理 Work 資源對象的增刪改邏輯,用于處理 Work,將 Work 負責的 Kubernetes 資源對象在對應的集群上創建出來。

      相關資源對象:Work

      watch Karmada 控制平面的 execution namespace 中的所有 Work 對象,當有新的 Work 對象被創建了之后會在對應的工作集群中創建 Work 負責的資源對象。watch Karmada 控制平面的 execution namespace 中的所有 Work 對象,當有 Work 對象被刪除的時候,會在工作集群中,刪除 Work 對象負責的資源對象。watch Karmada 控制平面的 execution namespace 中的所有 Work 對象,當有 Work 對象被修改了之后,會在工作集群中,修改 Work 對象負責的資源對象。

      備注: 原理圖參見第 4 部分的圖

      07 work status controller:

      work status controller 主要就是處理 Work 資源對象的狀態邏輯,負責收集 Work 的狀態,也就是 Work 對應的資源對象的狀態,只是這個狀態是保存在 Work 的 status 字段里的。

      相關資源對象:Work,以及 Work 負責的資源對象。

      watch Work 對象為指定計算集群包含的所有的 Work 對象所負責的資源對象的類型創建對應的 informer 對象,同時調用 informer 的 WaitForCacheSync,當 WaitForCacheSync 結束了之后,也就是 list 結束了,接下來就是 watch 的任務了。這個就是 list and watch 的核心機制。在 watch 所有 Work 負責的資源對象的時候,設置了一個事件處理器,這個事情處理器會負責處理所有相關資源對象的 Add,Update,Delete 事件。這些事件存放在 queue 中。啟動一個異步的 AsyncWorker, 設置一定的 WorkerNumber 數量的 goroutines 去處理 queue 里的數據,這里的數據是帶有集群信息的 fedkey。從 queue 中獲取 fedkey,判斷這個 fedkey 的對應的集群中的資源對象,如果這個 Work 負責的資源對象在工作集群中被非法刪除了,會重新在工作集群中創建出對應的資源對象。從 queue 中獲取 fedkey,判斷這個 fedkey 的對應的集群中的資源對象,如果這個 Work 負責的資源對象被修改了之后是不是修改被修改回去。如果是的話,會重新 sync 回資源對象,防止直接從工作集群中直接修改資源對象。收集 Work 對象對應的資源對象在 Worload 集群中的運行狀態,然后更新到到控制平面的 Work 的 status 中。watch Karmada 控制平面的 execution namespace 中的所有 Work 對象,當有新的 Work 對象被創建了之后會在對應的工作集群中創建 Work 負責的資源對象。08 serviceexport controller:

      serviceexport controller 主要就是處理 serviceexport 資源對象的狀態邏輯,將需要被其它集群發現的服務暴露出來。

      相關資源對象:ServiceExport

      當控制平面創建 ServiceExport 對象的時候,會對應的創建出 Work 對象,以及在對應的工作集群中創建出 ServiceExport 對象。查找出 ServiceExport 對象對應的 service 對象的 EndpointSlice 對象,將這些 EndpointSlice 對象封裝成 work 對象創建到控制平面中。當在控制平面刪除 ServiceExport 對象的時候,會找到對應的 work 對象,將其刪除。這里刪除的時候也會一起刪除由 ServiceExport 關聯上報上來的 EndpointSlice 對象對應的 Work 對象。因為查找要刪除的 Work 的時候是根據服務名查找的,而 ServiceExport 和 Serivce 對應的 EndpointSlice 的 Work 都是用服務名來創建的,所以查找的時候會一起查找到。當工作集群的 EndpointSlice 發生變化的時候,也會同步去更新控制平面的 EndpointSlice 對象,因為 ServiceExport controller 是 watch 了每一個集群的 ServiceExport 的 add 事件以及 EndpointSlice 的 add 和 update 事件的。只要 EndpointSlice 變化,就會同步到控制平面。這樣會觸發 PropagationPolicy 關聯的對象發生變化,就會觸發更新 EndpointSlice 對應的 Work,也就會同步更新 ServiceImport 集群中由于 ServiceImport 而級聯出來的 EndpointSlice 了。09 endpointslice controller:endpointslice controller 主要根據 serviceexport 資源對象對應到處的 Service,Service 對應的 endpointslice 上報到 Karmada 的控制面。

      相關資源對象:EndpointSlice 相關的 Work

      負責將 work 中的 manifest 是 EndpointSlice 的 work 中的 EndpointSlice 對象,在 Karmada 控制平面中創建對應的 EndpointSlice 的對象。其中 Karmada 控制平面中的 EndpointSlice 的 namespace 就是和 work 中 manifest 中的 EndpointSlice 的 namespace 一樣。但是 Karmada 控制平面中的 EndpointSlice 的 name 不一樣,格式為:“imported<cluster name><endpointslice name>”。

      備注: 原理圖參見第 8 部分的圖

      10 serviceimport controller:

      serviceimport controller 主要負責根據 ServiceExport 暴露出來的 Service,在自己負責的集群中創建對應的 service,注意 service 的名稱不是完全一樣的,同時在自己負責的集群中也創建對應的 EndpointSlice,這個 EndpointSlice 的數據就是來源于 EndpointSlice controller 中上報到 karmada 控制平面的 EndpointSlice 對象,具體是通過在 karmadawebhook 中給 ServiceImport 的 PropagationPolicy 中增加了 EndpointSlice 的下發能力。

      相關資源對象:ServiceImport

      根據在 karmada 控制平面中創建的 ServiceImport ,去創建對應的 Service,這個 Service 是創建在 Karmada 控制平面的。如果控制平面中的 ServiceImport,也會刪除控制平面中的由這個 ServiceImport 派生出來的 Service。由于 ServiceImport 的 controller 中會在控制平面中創建 Service,同時由于 ServiceExport 的 controller 中,會創建一個被 export 的 Service 的 EndpointSlice 的 work 在控制平面中,這個 work 會被 EndpointSlice controller 控制,同時 EndpointSlice controller 在控制平面中創建對應的 EndpointSlice 對象,EndpointSlice 中的每一個 Endpoint 的 IP 都是 Pod 的 IP 地址。在創建 ServiceImport 需要的 PropagationPolicy 的時候會在 karmadawebhook 中修改 PropagationPolicy 的 resource selector,在其中增加 Service 和 EndpointSlice 的部分,helper.GetFollowedResourceSelectorsWhenMatchServiceImport(policy.Spec.ResourceSelectors)。 最后會隨著 detector 和 binding controller 中的邏輯,在對應的集群的 execution 的 space 中創建對應 Service 和 EndpointSlice 的 work,然后由 execution controller 去對應的工作集群去創建真正的資源對象。這樣在 ServiceImport 的集群中,就可以通過派生出來的 Service,進行訪問遠程被 export 出來的服務。前提是兩個集群之間的 Pod 網絡是互通的。由 ServiceImport 派生出來的 service 的 name 為 :“derived<service name>”。

      備注: 原理圖參見第 8 部分的圖

      11 hpa controller:

      hpa controller 主要負責將 Karmada 控制面中創建的 HPA 對象通過創建 Work 的方式下發到對應的集群中。

      相關資源對象:HPA

      首先根據 HPA 的定義,獲取需要被 HPA 控制的資源對象對象,這里主要就是指的像 Deployment 這種需要計算資源的對象。根據 HPA 控制的資源對象,去查找這些資源對象對應的 ResourceBinding 的 cr 對象,因為 ResourceBinding 是最終反應 Deployment 被調度到哪些集群的實時的,最終的狀態。根據找到的集群,在這些集群中創建每個集群對應的 Work 對象,這個 Work 對象負責的資源對象就是 HPA 對象。通過這樣的實現,保證了 HPA 被創建的集群一定是和真正的工作負載是在一個集群中的,保證了 HPA 的正確的調度。12 「DaoCloud 道客」貢獻參與

      目前「DaoCloud 道客」在 Karmada 項目中,主要參與調度模塊和部署模塊的設計開發,也參與相關 bug 的修復,完成了非 root 權限快速安裝karmada 的功能開發,對優先級調度和搶占特性、插件管理特性等方面,也在持續的關注和跟進。

      圖注:已提交的PR

      圖注:跟進的項目

      DaoCloud 公司簡介:「DaoCloud 道客」云原生領域的創新領導者,成立于 2014 年底,擁有自主知識產權的核心技術,致力于打造開放的云原生操作系統為企業數字化轉型賦能。產品能力覆蓋云原生應用的開發、交付、運維全生命周期,并提供公有云、私有云和混合云等多種交付方式。成立迄今,公司已在金融科技、先進制造、智能汽車、零售網點、城市大腦等多個領域深耕,標桿客戶包括交通銀行、浦發銀行、上汽集團、東風汽車、海爾集團、屈臣氏、金拱門(麥當勞)等。目前,公司已完成了 D 輪超億元融資,被譽為科技領域準獨角獸企業。公司在北京、武漢、深圳、成都設立多家分公司及合資公司,總員工人數超過 350 人,是上海市高新技術企業、上海市“科技小巨人”企業和上海市“專精特新”企業,并入選了科創板培育企業名單。

      拓展知識:

      主站蜘蛛池模板: 撒尿free性hd| 午夜无码片在线观看影院y| 久久视频一区二区| 极品少妇的粉嫩小泬看片| 精品久久伊人99热超碰| 亚洲熟悉妇女xxx妇女av| 91快射| 人妻少妇被猛烈进入中文字幕| 国产精品无码日韩欧| 免费精品一区二区| 国产女人被狂躁到高潮小说| 日本免费更新一二三区不卡| 36d大奶| 欧美黑吊大战白妞| 色妞色综合久久夜夜| 在线麻豆| 国产精品88av| 国产口爆吞精在线视频2020版| 极品少妇高潮到爽| 亚洲精品无码专区| 妞干网这里只有精品| 国产成人a亚洲精v品无码| 无码国产午夜福利片在线观看 | аⅴ天堂中文在线网官网| 国产又色又爽又黄又免费| www.黄色国产| 丰满爆乳无码一区二区三区| 手机看片久久国产免费| 18久久| 伊人久久超碰| 强插女教师av在线| 韩国19禁主播深夜福利视频| 九九欧美| 精品国产一区二区三区久久女人 | 亚洲色图视频在线观看| 国产真人无遮挡作爱免费视频| 国产在线精品一品二区| 曰本毛片| 国产在线拍揄自揄拍无码| 久久人妻av一区二区软件| 2021最新在线精品国自产拍视频|