K8s基礎概念

2021-09-29 08:06:33 字數 1350 閱讀 5798

最近在做新的系統架構,使用了比較新的容器技術k8s來做一整套分布式系統架構。今天來記錄一下k8s的一些基礎概念。純憑記憶,如有錯誤請指正。

網上能看到的就不說了,說一些我理解的。

k8s是一套google開源的利用容器技術的分布式及系統解決方案。通過對應用程式的容器化管理,實現服務的自動管理,如部署,多例項,負載均衡,自動重啟等。如果說spring cloud是一套在**層解決分布式問題的解決方案,那麼k8s就是一套以一種完全**無侵入的方式實現的分布式架構。在k8s集群內,一般情況下是存在乙個master節點和多個working節點。master節點主要跑的是k8s相關程序,而我們的應用主要是跑在應用節點上。如果使用的如阿里雲這類的雲平台,會有一些託管班的k8s服務,這時候我們所有的節點均為working節點。當然如果我們單機學習時,本機既是master節點又是working節點。

下面說幾個基礎概念

pod是k8s中管理的最小單位,乙個pod可以理解為乙個容器,每個pod裡有乙個根容器pause容器,他為這個pod提供統一的儲存;還有一組提供服務的應用程式容器。pod可以放多個相關的應用程式來提供服務。這一組服務在乙個pod下統一管理。實在不好理解,我們可以簡單的理解為乙個pod放乙個微服務應用副本。但是切記概念不僅於此。

service是k8s中的乙個重要概念。字面意思每個service其實就是乙個服務。分布式架構中可以理解為我們系統中的乙個微服務。在k8s環境內,每個服務對應多個pod。就是對應的多個應用副本。所以k8s自帶應用程式的負載均衡。service其實是乙個虛擬的存在,他提供集群內乙個clusterip和port,形成endpoint,在集群內service通過endpoint來提供服務。

deployment是k8s 1.2之後提供的乙個功能(可能是,沒記住),它的前身是rc(replication controller)。這裡不細講rc了。說說deployment,他是k8s現在最為廣泛使用的。當我們需要建立乙個service時,我們可以通過定義乙個deployment來實現對service及鎖對應的pod的控制,其中還可以定義副本數量,pod的template,port、targetport 等。可以說我們可以直接通過deployment來對我們餓服務進行一站式管理。

這是一組概念,我們放一塊說,label是標籤,selector是標籤選擇器。

上面說到deployment可以管理service、service又有多個pod副本。那麼他們是如何找到彼此呢?關鍵在於label標籤。k8s內通過打標籤的方式,給每個概念繫結乙個標籤,然後通過在service、deployment、甚至是之前的rc中使用selector標籤選擇器來管理繫結。

基礎的概念大概就這麼多,其實說好理解也好理解,說不好理解確實我也還有一些理解的不到位。且學且珍惜吧。後面有空再拿書來補充一下基礎概念;現在能想到的就這麼多了。

K8S基礎概念

node作為集群中的工作節點,執行真正的應用程式,在node上kubernetes管理的最小執行單元是pod。node上執行著kubernetes的kubelet kube proxy服務程序,這些服務程序負責pod的建立 啟動 監控 重啟 銷毀 以及實現軟體模式的負載均衡。node包含的資訊 no...

K8S基礎概念

node作為集群中的工作節點,執行真正的應用程式,在node上kubernetes管理的最小執行單元是pod。node上執行著kubernetes的kubelet kube proxy服務程序,這些服務程序負責pod的建立 啟動 監控 重啟 銷毀 以及實現軟體模式的負載均衡。node包含的資訊 no...

K8S基礎概念

node作為集群中的工作節點,執行真正的應用程式,在node上kubernetes管理的最小執行單元是pod。node上執行著kubernetes的kubelet kube proxy服務程序,這些服務程序負責pod的建立 啟動 監控 重啟 銷毀 以及實現軟體模式的負載均衡。node包含的資訊 no...