亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解析K8s簡單的概念

發布時間:2021-12-15 18:46:13 來源:億速云 閱讀:311 作者:柒染 欄目:云計算

今天就跟大家聊聊有關如何解析K8s簡單的概念,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

K8s概念:
基本概念:
  • Cluster:集群。計算,存儲網絡資源的整合。

  • Master:負責分配,調度資源。

    • kube-apiserver:是K8s Cluster的前端接口,用來管理Cluster的資源。

    • kube-scheduler:負責決定將Pod放在那個Pod上運行。

    • kube-controller-manager:負責管理Cluster的各種資源,保證資源處于期望狀態。

    • etcd:負責保存K8s Cluster的配置信息和各種資源的狀態信息,當數據發送變化時,etcd會快速通知K8s相關組件。

    • Pod網絡:負責Pod間的通信,常見的有Flannel,Calico等。

  • Node:用來運行應用,監聽容器的狀態,由Matser管理,支持物理機和虛擬機。

    • kubelet:是Node的Agent,當Scheduler確定在某個Node上運行Pod后,會將Pod的具體配置信息(image,volume等)發送給該節點的kubelet,kubelet根據這些信息創建和運行容器,并向Master報告運行狀態。

    • Kubeproxy:Service在邏輯上代表了后端的多個Pod,外界通過Service訪問Pod,Service接收到請求,如果有多個Pod副本,kube-proxy會實現負載均衡

    • Pod網絡:負責Pod間的通信,常見的有Flannel,Calico等。

查看所有的組件:

[root@k8smaster ~]# kubectl get pods --all-namespaces -o wide
NAMESPACE     NAME                                READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
kube-system   coredns-bf7759867-8h5x8             1/1     Running   1          21h   10.244.0.5       k8smaster   <none>           <none>
kube-system   coredns-bf7759867-slmsz             1/1     Running   1          21h   10.244.0.4       k8smaster   <none>           <none>
kube-system   etcd-k8smaster                      1/1     Running   1          21h   192.168.43.45    k8smaster   <none>           <none>
kube-system   kube-apiserver-k8smaster            1/1     Running   1          21h   192.168.43.45    k8smaster   <none>           <none>
kube-system   kube-controller-manager-k8smaster   1/1     Running   1          21h   192.168.43.45    k8smaster   <none>           <none>
kube-system   kube-flannel-ds-amd64-6zhtw         1/1     Running   1          20h   192.168.43.136   k8snode1    <none>           <none>
kube-system   kube-flannel-ds-amd64-wnh9k         1/1     Running   1          20h   192.168.43.45    k8smaster   <none>           <none>
kube-system   kube-flannel-ds-amd64-wqvz9         1/1     Running   1          20h   192.168.43.176   k8snode2    <none>           <none>
kube-system   kube-proxy-2j8w9                    1/1     Running   1          20h   192.168.43.176   k8snode2    <none>           <none>
kube-system   kube-proxy-kqxlq                    1/1     Running   1          20h   192.168.43.136   k8snode1    <none>           <none>
kube-system   kube-proxy-nb82z                    1/1     Running   1          21h   192.168.43.45    k8smaster   <none>           <none>
kube-system   kube-scheduler-k8smaster            1/1     Running   1          21h   192.168.43.45    k8smaster   <none>           <none>
K8s資源抽象類型:
Pod:

??Pod是若干相關容器的組合,可以理解為一個組,組里面由一個或多個容器,容器之間是相關聯的。

??Pod中的容器運行在同一個Host上,這些容器使用相同的網絡命令空間,IP地址和端口,互相之間通過localhost來發現和通信。

??另外,這些容器還可以共享一塊存儲卷空間。

總結:

  • Pod是k8s中最小的工作單元,每個Pod包含一個或多個容器。

  • 同一Pod包含的容器運行在同一個Host上,稱作為統一管理單元。

  • 同一Pod通過Mapped Container共享著相同的volumes,network,namespace,ip,port。

    • pid ns:處于同一Pod中的應用可以看到彼此的進程。

    • network ns:處于同一Pod中的應用可以訪問一樣的ip和port空間。

    • ipc ns:處于同一Pod的應用可以用systemV ipc或者posix消息隊列進行通信。

    • UTC ns:處于同一Pod應用公用一個主機名。

Replication Controller(RC):

  • RC是用來管理Pod的,每個RC由一個或多個Pod組成;在RC被創建之后,系統將會保持RC中可用的Pod的個數與創建RC時定義的Pod個數一致,如果Pod個數小于定義的個數,RC會啟動新的Pod,反之會殺死多余的Pod。

  • RC通過定義的Pod模板被創建,創建后對象叫做Pods(也可以理解為RC),可以在線修改Pod的屬性,以實現動態縮減,擴展Pods的規模。

  • RC通過label關聯對應的Pods,通過修改Pods的label可以刪除對應的Pods在需要對Pods中的容器進行更新時,RC采用一個一個替換的原則來更新整個Pods中的Pod。

  • reschudeling:維護Pod副本,“多退少補”;即使是某些minion宕機。

  • scaling:通過修改RC的副本數來水平擴展或縮減運行的Pods。

  • Rolling updates:一個一個地替換Pods來更新服務。

  • multiple release tracks:如果需要在系統中運行multiple release服務,Replication Controller使用labels來區分multiple release tracks。

Label:
  • Label是用于區分Pod,Service,RC的Key/Value鍵值對。

  • Pod,Service,RC可以有多個Label,但是每個Label的Key只能對應一個Value。

  • 整個系統都是通過Label進行關聯,得到真正需要操作的目標。

Service:

??Service是定義在集群中一組運行Pod集合的抽象資源,它提供了所有相同的功能,當一個Service資源被創建后,將會分配一個唯一的IP,也叫做集群IP,這個IP地址將存在于Service的整個生命資源中,Service一旦被創建,整個IP無法進行修改。

??Pod可以通過Service進行通信,并且所有的通信將會通過Service自動負載均衡到所有的Pod中的容器。

  • Service是真實應用服務的抽象。

  • Service通常用來將浮動的資源與后端真實提供服務的容器進行關聯。

  • Service對外表現為一個單一的訪問接口,外部不需要了解后端的規模與機制。

Controller:

??K8s通常不會直接創建Pod,而是通過Controller來管理Pod,Controller中定義了Pod的屬性,為了滿足不同的業務場景,K8s提供了多種Controller,包括Deployment,Replicaset,Daemonset,Statefulset,Job等。

  • Deployement:是最常用的Controller,用來管理Pod的多個副本。并且確保Pod按照期望狀態運行。

  • Replicaset:實現了Pod的多副本管理,使用Deployment時會自動創建Replicaset,也就是說Deployment通過Replicaset實現管理Pod的多個副本,通常不需要主節使用Replicaset。

  • Daemonset:用于每個node最多只能運行一個Pod副本的場景。

  • Statefuleset:能夠保證Pod的每個副本在整個生命周期中名稱是不變的,而其他Controller不提供這個功能,當某個Pod發生故障需要刪除并重啟時,Pod的名稱會發生變化,同時Statefulset會保證Pod副本按照指定的順序啟動,更新或刪除。

  • Job:用于結束就刪除的應用,而其他Controller中Pod通常時長期持續運行的。

Namespace:

??將一個物理的Cluster邏輯上劃分成多個虛擬的Cluster,每個Cluster就是一個Namespace。不同的Namepace。每個Cluster的資源都是隔離開的。

查看所有Namespace

[root@k8smaster ~]# kubectl get namespace
NAME              STATUS   AGE
default           Active   19h
kube-node-lease   Active   19h
kube-public       Active   19h
kube-system       Active   19h
運行應用流程:
[root@k8smaster ~]# kubectl run http-app --image=httpd --replicas=2
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/http-app created
[root@k8smaster ~]# kubectl get deployments
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
http-app   0/2     2            0           49s
[root@k8smaster ~]# kubectl get pod -o wide
NAME                       READY   STATUS             RESTARTS   AGE   IP           NODE       NOMINATED NODE   READINESS GATES
http-app-c5f548d75-44hxm   0/1     ImagePullBackOff   0          21m   10.244.2.3   k8snode2   <none>           <none>
http-app-c5f548d75-kzlrt   0/1     ImagePullBackOff   0          21m   10.244.1.2   k8snode1   <none>           <none>
流程:

<div align=center>

<img width = '1200' height ='550' src ="https://note.youdao.com/yws/api/personal/file/B26327D9AC354C1484CD20A4B3154CA8?method=download&shareKey=c302076b6e1784217c47a086dc4f8eaa "/>

</div>

  • kubectl發送部署請求給API Server。

  • API Server通知Controller Manager創建一個deployment資源。

  • Scheduler執行調度任務,將要創建的任務按照一定的策略調度到相關節點上。

  • Node節點上的Kubelet負責接調度任務,通過Kubelet在各自的節點上接收并運行pod。

    • node1:node1-http-app-c5f548d75-44hxm

    • node2:node2-http-app-c5f548d75-kzlrt

看完上述內容,你們對如何解析K8s簡單的概念有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

k8s
AI

疏勒县| 灯塔市| 武定县| 栾城县| 和林格尔县| 靖边县| 济宁市| 赤城县| 乳山市| 陵川县| 吴忠市| 榆社县| 山东省| 桃源县| 日喀则市| 宁阳县| 溧阳市| 东城区| 济南市| 金溪县| 汉寿县| 儋州市| 都匀市| 鸡西市| 瑞丽市| 大方县| 遂平县| 永泰县| 台东县| 潍坊市| 友谊县| 堆龙德庆县| 毕节市| 启东市| 黔东| 新昌县| 高雄县| 嘉义市| 阿荣旗| 濮阳县| 崇礼县|