0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Kubernetes中的Pod簡易理解

汽車電子技術 ? 來源:碼農(nóng)與軟件時代 ? 作者: 碼農(nóng)與軟件時代 ? 2023-02-15 10:44 ? 次閱讀

Pod是Kubernetes中非常重要的概念,也是Kubernetes管理的基本單位。正如其名,Pod像一個豌豆莢,可以容納多個container,擁有相同的IP地址。

Kubernetes使用Pod,不直接使用container。而Container的技術本質是Linux namespace和 cgroup。namespace提供進程間資源的隔離,讓進程自認為擁有獨立的全部資源;而實質上進程是能夠使用多少資源,則由cgroup進行限制。

現(xiàn)在,Pod要容納多個Container,必然要共享資源。前面我們知道,Container想要擁有獨立的資源,對Linux資源進行了拆分,而今因為Pod的提出,又需要將某些資源共享起來,也就是在原來的隔離環(huán)境中再整合在一起。

那么,在Pod中如何進行資源的共享呢?

Pod引入了pause容器。

root@k8s:/# docker ps
CONTAINER ID   IMAGE                                               COMMAND                  CREATED        STATUS        PORTS     NAMES
aa5d3554b60d   404fc3ab6749                                        "/opt/bin/flanneld -a|"   27 hours ago   Up 27 hours             k8s_kube-flannel_kube-flannel-ds-th8cd_kube-system_322a7b3b-01b3-4902-9ac8-f14ed2eecec6_0
f1f6cbfce9c4   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 27 hours ago   Up 27 hours             k8s_POD_kube-flannel-ds-th8cd_kube-system_322a7b3b-01b3-4902-9ac8-f14ed2eecec6_0
de1d18ca0405   b46c42588d51                                        "/usr/local/bin/kubea|"   28 hours ago   Up 28 hours             k8s_kube-proxy_kube-proxy-9rjpc_kube-system_bd7d444b-20e3-4e4a-ab9e-8af4dce6b47a_0
a60b297d572d   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 28 hours ago   Up 28 hours             k8s_POD_kube-proxy-9rjpc_kube-system_bd7d444b-20e3-4e4a-ab9e-8af4dce6b47a_0
c14bff92e79b   b6d7abedde39                                        "kube-apiserver --ada|"   28 hours ago   Up 28 hours             k8s_kube-apiserver_kube-apiserver-master_kube-system_d6f2f822def6f57249e6789960cadda9_0
77fb48469b2b   f51846a4fd28                                        "kube-controller-mana|"   28 hours ago   Up 28 hours             k8s_kube-controller-manager_kube-controller-manager-master_kube-system_85ff8159d8c894c53981716f8927f187_0
db450e4928f8   25f8c7f3da61                                        "etcd --advertise-cla|"   28 hours ago   Up 28 hours             k8s_etcd_etcd-master_kube-system_1d7ec9e1c409f497753e8635eb01ed02_0
00383cb94409   71d575efe628                                        "kube-scheduler --aua|"   28 hours ago   Up 28 hours             k8s_kube-scheduler_kube-scheduler-master_kube-system_77a51208064a0e9b17209ee62638dfcd_0
e8f4474d43bf   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 28 hours ago   Up 28 hours             k8s_POD_kube-controller-manager-master_kube-system_85ff8159d8c894c53981716f8927f187_0
ba10a2d6709f   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 28 hours ago   Up 28 hours             k8s_POD_etcd-master_kube-system_1d7ec9e1c409f497753e8635eb01ed02_0
c1250096678e   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 28 hours ago   Up 28 hours             k8s_POD_kube-apiserver-master_kube-system_d6f2f822def6f57249e6789960cadda9_0
06a9cd375a35   registry.aliyuncs.com/google_containers/pause:3.6   "/pause"                 28 hours ago   Up 28 hours             k8s_POD_kube-scheduler-master_kube-system_77a51208064a0e9b17209ee62638dfcd_0


root@k8s:/# ps -el | grep pause
4 S 65535 16718 16694  0  80   0 -   242 pause  ?        00:00:00 pause
4 S 65535 16824 16761  0  80   0 -   242 pause  ?        00:00:00 pause
4 S 65535 16864 16773  0  80   0 -   242 pause  ?        00:00:00 pause
4 S 65535 16874 16762  0  80   0 -   242 pause  ?        00:00:00 pause
4 S 65535 17580 17551  0  80   0 -   242 pause  ?        00:00:00 pause
4 S 65535 20614 20588  0  80   0 -   242 pause  ?        00:00:00 pause

Kubernetes官方給出的Pause容器的解釋是:

it's part of the infrastructure. This container is started first in all Pods to setup the network for the Pod.

也就是pause容器作為基礎設施,在Pod中會第一個啟動,以提供Pod的網(wǎng)絡共享空間。

后續(xù)的容器則以“加入”的方式,共享該Pod資源。

講述Pod比較清晰的文章:

What even is a container: namespaces and cgroups
https://jvns.ca/blog/2016/10/10/what-even-is-a-container/
What are Kubernetes Pods Anyway?
https://www.ianlewis.org/en/what-are-kubernetes-pods-anyway
The Almighty Pause Container
https://www.ianlewis.org/en/almighty-pause-container
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ip地址
    +關注

    關注

    0

    文章

    290

    瀏覽量

    16966
  • POD
    POD
    +關注

    關注

    0

    文章

    16

    瀏覽量

    6007
  • kubernetes
    +關注

    關注

    0

    文章

    223

    瀏覽量

    8677
收藏 人收藏

    評論

    相關推薦

    Kubernetes的Device Plugin設計解讀

    設計解讀最近在調研Kubernetes的GPU調度和運行機制,發(fā)現(xiàn)傳統(tǒng)的alpha.kubernetes.io/nvidia-gpu即將在1.11版本中下線,和GPU相關的調度和部署的代碼將徹底從主干代碼
    發(fā)表于 03-12 16:23

    Kubernetes Ingress 高可靠部署最佳實踐

    摘要: 在Kubernetes集群,Ingress作為集群流量接入層,Ingress的高可靠性顯得尤為重要,今天我們主要探討如何部署一套高性能高可靠的Ingress接入層。簡介
    發(fā)表于 04-17 14:35

    阿里云容器Kubernetes監(jiān)控(二) - 使用Grafana展現(xiàn)Pod監(jiān)控數(shù)據(jù)

    kubernetes承擔的責任遠不止監(jiān)控數(shù)據(jù)的采集,還包括控制臺的監(jiān)控接口、HPA的POD彈性伸縮等都依賴于Heapster的功能。簡介在kubernetes的監(jiān)控方案
    發(fā)表于 05-10 15:28

    從零開始入門 K8s| 詳解 Pod 及容器設計模式

    親密關系,它們都是在 Kubernetes 中會通過 Pod 的概念去解決的。現(xiàn)在我們理解Pod 這樣的概念設計,理解了為什么需要
    發(fā)表于 09-20 15:12

    Pod資源配置

    Kubernetes進階實戰(zhàn)》第四章《管理Pod資源對象》
    發(fā)表于 10-22 14:39

    Kubernetes網(wǎng)絡隔離NetworkPolicy實驗

    Kubernetes的一個重要特性就是要把不同node節(jié)點的pod(container)連接起來,無視物理節(jié)點的限制。但是在某些應用環(huán)境,比如公有云,不同租戶的pod不應該互通,這個
    發(fā)表于 11-28 10:00 ?2649次閱讀

    深入研究Kubernetes調度

    “本文從 Pod 和節(jié)點的配置開始,介紹了 Kubernetes Scheduler 框架、擴展點、API 以及可能發(fā)生的與資源相關的瓶頸,并展示了性能調整設置,涵蓋了 Kubernetes
    的頭像 發(fā)表于 08-23 10:39 ?1347次閱讀

    Kubernetes組件pod核心原理

    1. 核心組件原理 —— pod 核心原理 1.1 pod 是什么 pod 也可以理解是一個容器,裝的是 docker 創(chuàng)建的容器,也就是用來封裝容器的一個容器;
    的頭像 發(fā)表于 09-02 09:27 ?1773次閱讀

    Kubernetes Pod多網(wǎng)卡方案MULTUS

    Kubernetes 當前沒有提供為POD添加額外的接口選項的規(guī)定,或支持多個 CNI 插件同時工作的規(guī)定,但是它確實提供了一種由 API 服務器擴展受支持的API的機制。使用 "自定義
    的頭像 發(fā)表于 06-22 10:08 ?1251次閱讀

    Kubernetes集群內服務通信機制介紹

    現(xiàn)在在 Kubernetes 集群,我們擁有構成集群管理組件和一組工作機器(稱為節(jié)點)的控制平面。這些節(jié)點托管 Pod,這些 Pod 將后端微服務作為容器化服務運行。
    發(fā)表于 10-04 10:13 ?527次閱讀

    Kubernetes的網(wǎng)絡模型

    kubernetes ,underlay network 中比較典型的例子是通過將宿主機作為路由器設備,Pod 的網(wǎng)絡則通過學習路由條目從而實現(xiàn)跨節(jié)點通訊。
    的頭像 發(fā)表于 12-14 10:07 ?795次閱讀

    Kubernetes Pod如何獨立工作

    在學習 Kubernetes 網(wǎng)絡模型的過程,了解各種網(wǎng)絡組件的作用以及如何交互非常重要。本文就介紹了各種網(wǎng)絡組件在 Kubernetes 集群是如何交互的,以及如何幫助每個
    的頭像 發(fā)表于 05-16 14:29 ?576次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>如何獨立工作

    Kubernetes Pod如何獲取IP地址呢?

    Kubernetes 網(wǎng)絡模型的核心要求之一是每個 Pod 都擁有自己的 IP 地址并可以使用該 IP 地址進行通信。很多人剛開始使用 Kubernetes 時,還不清楚如何為每個 Pod
    的頭像 發(fā)表于 07-21 10:00 ?736次閱讀
    <b class='flag-5'>Kubernetes</b> <b class='flag-5'>Pod</b>如何獲取IP地址呢?

    Pod是如何在底層實現(xiàn)的?如何使用Docker創(chuàng)建Pod?

    剛開始接觸 Kubernetes 時,你學到的第一件事就是每個 Pod 都有一個唯一的 IP 和主機名,并且在同一個 Pod ,容器可以通過 localhost 相互通信。所以,顯而
    的頭像 發(fā)表于 08-14 10:33 ?1181次閱讀
    <b class='flag-5'>Pod</b>是如何在底層實現(xiàn)的?如何使用Docker創(chuàng)建<b class='flag-5'>Pod</b>?

    配置KubernetesPod使用代理的兩種常見方式

    的需要。本文將介紹配置KubernetesPod使用代理的兩種常見方式:通過ConfigMap和直接在應用程序環(huán)境變量設置。
    的頭像 發(fā)表于 01-05 11:22 ?1001次閱讀
    配置<b class='flag-5'>Kubernetes</b><b class='flag-5'>中</b><b class='flag-5'>Pod</b>使用代理的兩種常見方式