摘要:
k8s client-go k8s informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
k8s kubernetes kube-controller-manager源碼分析,deployment controller源碼分析,replicaset controller源碼分析,daemonset controller源碼分析,statefulset controller源碼分析,endpoints controller源碼分析,garbage collector源碼分析 閱讀全文
摘要:
kubernetes CRI分析-k8s CRI分析。kubernetes中有3個功能接口,分別是容器網絡接口CNI、容器運行時接口CRI和容器存儲接口CSI。本文會對CNI是什么、CNI系統架構做介紹,以及k8s對CNI進行相關操作來構建和刪除pod網絡進行分析 閱讀全文
摘要:
kubernetes CRI分析-k8s CRI分析。kubernetes中有3個功能接口,分別是容器網絡接口CNI、容器運行時接口CRI和容器存儲接口CSI。本文會對CRI是什么、為什么要有CRI、CRI系統架構做介紹,對CRI所涉及的k8s對象與組件進行介紹,以及k8s對CRI進行相關操作分析 閱讀全文
摘要:
kubernetes CSI分析-k8s CSI分析。kubernetes中有3個功能接口,分別是容器網絡接口CNI、容器運行時接口CRI和容器存儲接口CSI。本文會對CSI是什么、為什么要有CSI、CSI系統架構做介紹,對CSI所涉及的k8s對象與組件進行介紹,以及k8s對CSI存儲進行相關操作分析 閱讀全文
摘要:
最近在做分布式存儲ceph接入kubernetes,用的是csi這一套,在開發的過程中,自己也用有道云筆記做過一些ceph-csi相關的源碼分析、知識總結之類的記錄,剛好自己又萌生了發博的想法,后續準備加以完善,然后發出來大家互相學習,有什么錯誤的地方希望大家指出 閱讀全文
摘要:
ceph-csi分析,通過ceph-csi讓k8s接入ceph存儲,對所涉及的k8s對象與組件進行了簡單的介紹,以及k8s對存儲進行相關操作的流程分析,存儲相關操作包括了存儲創建、存儲擴容、存儲掛載、解除存儲掛載以及存儲刪除操作。 閱讀全文
摘要:
k8s client-go k8s informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
k8s client-go k8s informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
k8s client-go k8s informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
k8s client-go k8s informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
k8s client-go k8s informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
k8s client-go k8s informers實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對apiserver、對etcd的請求壓力。Informers在啟動的時候會首先在客戶端調用List接口來獲取全量的對象集合,然后通過Watch接口來獲取增量的對象,然后更新本地緩存。 閱讀全文
摘要:
當k8s集群開啟了TLS認證后,每個節點的kubelet組件都要使用由kube-apiserver的CA簽發的有效證書才能與kube-apiserver通信;當節點非常多的時候,為每個節點都單獨簽署證書是一件非常繁瑣而又耗時的事情。此時k8s TLS bootstrap功能應運而生。k8s TLS bootstrap功能就是讓kubelet先使用一個預先商定好的低權限的bootstrap token連接到kube-apiserver,向kube-apiserver申請證書,然后kube-controller-manager給kubelet動態簽署證書,后續kubelet都將通過動態簽署的證書與kube-apiserver通信。 閱讀全文
摘要:
kubeadm工作原理-kubeadm init原理分析-kubeadm join原理分析。kubeadm是社區維護的Kubernetes集群一鍵部署利器,使用兩條命令即可完成k8s集群中master節點以及node節點的部署,其底層原理是利用了k8s TLS bootstrap特性。 閱讀全文
摘要:
kube-scheduler組件是kubernetes中的核心組件之一,主要負責pod資源對象的調度工作,具體來說,kube-scheduler組件負責根據調度算法(包括預選算法和優選算法)將未調度的pod調度到合適的最優的node節點上。正常情況下,當一個 pod 調度失敗后,就會被暫時 “擱置” 處于 pending 狀態,直到 pod 被更新或者集群狀態發生變化,調度器才會對這個 pod 進行重新調度。但是有的時候,我們希望給pod分等級,即分優先級。當一個高優先級的 Pod 調度失敗后,該 Pod 并不會被“擱置”,而是會“擠走”某個 Node 上的一些低優先級的 Pod,這樣一來就可以保證高優先級 Pod 會優先調度成功。 閱讀全文