国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kubernetes(k8s)核心資源解析:Pod詳解

這篇具有很好參考價值的文章主要介紹了Kubernetes(k8s)核心資源解析:Pod詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


??The Begin??點點關注,收藏不迷路??

1、什么是Pod?

Pod是Kubernetes中最小的調度單元,它可以包含一個或多個容器。Pod中的所有容器共享網絡和存儲卷,它們一起運行在同一個節(jié)點上。Pod提供了一種抽象層,使得容器可以作為一個邏輯單元來管理。

Pod中的容器共享IP地址、端口空間和存儲,它們可以通過localhost / 127.0.0.1相互通信。

Pod的運行需要根據Kubernetes集群的工作節(jié)點來運行,具體調度哪個節(jié)點,根據調度器(Scheduler)實現。

2、Pod 的組成

1、容器:Pod中可以包含一個或多個容器,這些容器共享網絡和存儲卷。
2、共享網絡命名空間:Pod中的所有容器共享同一個網絡命名空間,它們可以相互通信。
3、存儲卷:Pod中的容器可以共享存儲卷,這些存儲卷可以用于數據持久化或共享。

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

3、Pod 如何管理多個容器

在 Kubernetes 中,Pod 是最小的可部署單元,可以包含一個或多個容器。Pod 內的所有容器共享相同的網絡命名空間、IP 地址和存儲卷,并在同一主機上調度。

例如:

可以將一個主要容器與一個或多個 Sidecar 容器組合在同一個 Pod 中。主要容器負責應用程序的主要邏輯,而 Sidecar 容器可以處理輔助任務,例如日志收集、監(jiān)控等。

要管理多個容器的 Pod,需要仔細設計容器之間的交互和共享資源,并利用 Kubernetes 提供的各種功能來簡化管理和操作。

比如:Kubernetes 提供了各種資源來管理多容器的 Pod,如 Deployment、StatefulSet、DaemonSet 等。這些資源可以自動管理 Pod 的部署、擴展和更新。

4、Pod 的網絡

在容器化應用中,Pod 中的容器需要相互通信,以及與外部系統進行通信。Pod 網絡提供了一種機制來管理這種通信,并確保安全、高效地進行網絡連接。

Pod 網絡的特性:

1、容器間通信:Pod 網絡允許 Pod 內的容器相互通信,這使得容器之間可以共享資源和信息。
2、跨節(jié)點通信:Pod 可以分布在 Kubernetes 集群的不同節(jié)點上,Pod 網絡負責確保跨節(jié)點的通信。
3、服務發(fā)現:Pod 網絡通常與 Kubernetes 中的服務發(fā)現機制結合使用,使得應用程序能夠輕松地發(fā)現和連接到其他服務。
4、網絡策略:Pod 網絡可以實施網絡策略,限制 Pod 之間的通信,提高安全性。

Pod 網絡實現方式:

1、Overlay 網絡:使用 Overlay 網絡技術(如 VXLAN、Flannel、Calico 等)創(chuàng)建一個虛擬網絡層,使得 Pod 可以透明地跨節(jié)點通信。
2、Host 網絡:容器直接使用節(jié)點的網絡命名空間,與節(jié)點共享網絡配置。這種方式效率高,但缺乏網絡隔離性。
3、混合網絡:結合 Overlay 網絡和 Host 網絡的優(yōu)勢,提供更靈活的網絡管理方式。

5、Pod 的存儲方式

容器是短暫的,它們可以隨時啟動、停止或重新調度。因此,任何存儲在容器中的數據都會隨著容器的生命周期而消失。為了持久化存儲應用程序的數據,需要一種機制來確保數據的持久性和可靠性。

Pod 存儲的特性:

1、持久性:Pod 存儲提供持久化的存儲機制,確保數據在容器重新啟動或遷移時不會丟失。
2、可靠性:Pod 存儲通常提供數據的備份、復制和恢復機制,以確保數據的可靠性和安全性。
3、性能:Pod 存儲應該具有良好的性能,能夠滿足應用程序對存儲的高吞吐量和低延遲的需求。
4、擴展性:Pod 存儲應該能夠方便地擴展以應對不斷增長的數據量和請求量。

Pod 存儲的實現方式:

1、空白存儲:它不會持久化保存任何數據,只是一種臨時存儲卷類型,在容器退出后會被刪除,用于臨時操作。
2、持久卷:通過 Kubernetes 的持久卷機制,可以將外部存儲卷掛載到 Pod 中,以實現數據的持久化存儲。
3、配置存儲:用于存儲敏感信息的一種資源,比如密碼、API 密鑰等。通常用于 Pod 的環(huán)境變量或者文件中,跨pod共享數據使用,與容器內部數據無關。

6、Pod 的工作方式

6.1 自主式 Pod

自主式 Pod(也稱為靜態(tài))Pod 是 Kubernetes 中的一種特殊類型的 Pod,它們不受控制器的管理,而是由用戶直接創(chuàng)建和管理。這意味著它們不受 ReplicaSet、Deployment 或其他控制器的管理。

自主式 Pod 通常用于特殊用例(測試、開發(fā)環(huán)境)。

自主式 Pod 如果被刪除、即會從集群中徹底刪除,不會自動創(chuàng)建。

創(chuàng)建自主式 Pod 的一般步驟:

例子(創(chuàng)建自主式 Nginx Pod):

1、編寫 Nginx Pod 的 YAML 配置文件:

vim nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30007
    

注意:nginx-service 將會匹配所有帶有 app: nginx 標簽的 Pods,并通過 NodePort 30007 將流量轉發(fā)到這些 Pods 的 80 端口。

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

2、 將 YAML 文件應用到 Kubernetes 集群:

kubectl apply -f nginx-pod.yaml

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

3. 驗證 Pod 是否成功創(chuàng)建:

kubectl get pods

kubectl get pods -o wide -l app=nginx


#查看Pod 的詳細信息
kubectl describe pod nginx

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

4. 訪問 Nginx Pod:

既然 Service 類型是 NodePort,可以通過任意 Kubernetes 集群節(jié)點的 IP 地址加上端口號 30007 來訪問 Nginx 服務,如 http://:30007。

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群
5. 驗證自主式Pod刪除:

##刪除前面創(chuàng)建的自主式 Nginx Pod

[root@k8s-master test]# kubectl delete pod nginx-pod
pod "nginx-pod" deleted
[root@k8s-master test]#
[root@k8s-master test]# kubectl get pods -o wide -l app=nginx
No resources found in default namespace.
[root@k8s-master test]#

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

**結論**:一旦刪除自主式 Pod,其狀態(tài)將無法恢復。在 Kubernetes 中,自主式 Pod 不會被控制器(如 Deployment 或 StatefulSet)所管理,因此刪除后無法自動重建。



6.2 監(jiān)控和管理 Pod

通常在生產環(huán)境中,Pod 都會由控制器對象(如 Deployment、StatefulSet、DaemonSet 等)進行管理,以確保高可用性、自動伸縮和故障恢復等功能。 這樣做的好處包括能夠更靈活地管理 Pod、自動重啟失敗的 Pod、根據需求擴展或縮減 Pod 數量等。

Kubernetes 會持續(xù)監(jiān)控 Pod 的狀態(tài),并確保其處于期望的狀態(tài)。如果 Pod 發(fā)生故障或終止,Kubernetes 將嘗試重新啟動 Pod,直到它達到期望的狀態(tài)為止。

1、編寫 Nginx Pod 的 YAML 配置文件:

前面的YAML 文件中包含了一個 Pod 和一個 Service 的定義,但沒有使用控制器(如 Deployment 或 StatefulSet、Daemonset等)來管理 Pod。

例如:使用Deployment控制器來管理 Pod,修改 前面YAML 文件以包含 Deployment 部分。

vim nginx-deployment-service.yaml
apiVersion: apps/v1
kind: Deployment # 指定資源的類型,這里是一個 Deployment 資源。
metadata:
  name: nginx-deployment # 設置 Deployment 的名稱為 nginx-deployment
spec: # 規(guī)格部分,包含了 Deployment 的規(guī)格信息
  replicas: 2  # 副本數為 2,表示將會創(chuàng)建 2 個 Pod,可以根據需要進行修改
  selector:
    matchLabels:
      app: nginx # 選擇具有 app: nginx 標簽的 Pod
  template:
    metadata:
      labels:
        app: nginx  # 為 Pod 設置標簽為 app: nginx
    spec:
      containers:
      - name: nginx  # 容器的名稱為 nginx
        image: nginx:latest  # 使用最新版本的 nginx 鏡像
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service # 設置 Service 的名稱為 nginx-service
spec:
  type: NodePort # 設置 Service 的類型為 NodePort,可以通過節(jié)點 IP 和節(jié)點端口來訪問 Service
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80  # Service 監(jiān)聽的端口號為 80
    targetPort: 80  # 將流量轉發(fā)到 Pod 中的端口號為 80 的容器
    nodePort: 30007  # NodePort 類型的 Service 將會暴露在節(jié)點的 30007 端口上,可以通過節(jié)點 IP 和該端口來訪問 Service

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

2、 將 YAML 文件應用到 Kubernetes 集群:

kubectl apply -f nginx-deployment-service.yaml

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

3. 驗證 Pod 是否成功創(chuàng)建:

kubectl get pods

kubectl get pods -o wide -l app=nginx


#查看Pod 的詳細信息
kubectl describe pod nginx

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

5. 驗證控制器管理的Pod刪除:

測試:當刪除一個由控制器(如 Deployment)管理的 Pod 時,控制器將負責維護所需的副本數2。如果刪除了一個 Pod,控制器將會檢測到并嘗試按照定義的副本數重新創(chuàng)建 Pod,以確保所需的 Pod 數量處于正常狀態(tài)。

1、刪除 Pod:首先,我們將刪除由控制器管理的 Pod nginx-deployment-544dc8b7c4-5s9mk。

kubectl delete pods nginx-deployment-544dc8b7c4-5s9mk

2、驗證 Pod 刪除:使用以下命令確認 Pod 是否已被刪除:

kubectl get pods

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

3、等待 Pod 恢復:等待一段時間,讓控制器檢測到 Pod 的刪除并采取行動。根據配置,可能需要幾秒鐘或幾分鐘來重新創(chuàng)建 Pod。

4、確認 Pod 是否已恢復:再次運行以下命令來檢查 Pod 是否已被重新創(chuàng)建:

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

能夠看到新的 Pod 正在運行,并且它們的名稱與之前的 Pod 不同,因為控制器會為它們生成新的唯一標識符。這表明控制器成功地將被刪除的 Pod 替換為新的 Pod。

6.3 Pod 的創(chuàng)建流程

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群

Pod 創(chuàng)建流程

Pod 創(chuàng)建的流程通常包括以下幾個步驟:

1、定義 Pod 的 YAML 文件:首先,您需要創(chuàng)建一個 Pod 的描述文件,通常是一個 YAML 文件,其中包含了 Pod 的各種配置信息,比如容器鏡像、資源需求、環(huán)境變量等。

2、API Server 接收請求:將 Pod 的 YAML 文件提交給 Kubernetes 集群的 API Server。

3、驗證和準備:API Server 首先會對 Pod 的描述進行驗證,包括格式檢查、權限檢查等。一旦驗證通過,Kubernetes 就會為 Pod 分配一個唯一的標識符。

4、調度器選擇節(jié)點:接下來,調度器(Scheduler)會根據 Pod 的調度需求(比如資源需求、親和性和反親和性規(guī)則等)選擇一個合適的節(jié)點(Node)來運行 Pod。

5、節(jié)點拉取鏡像:一旦調度器確定了節(jié)點,該節(jié)點上的容器運行時(比如 Docker 或者 Containerd)將會拉取 Pod 中定義的容器鏡像。

6、創(chuàng)建 Pod:容器運行時根據 Pod 的描述信息在節(jié)點上創(chuàng)建容器,并且應用相關的配置,比如掛載卷、設置網絡等。

7、運行容器:一旦容器創(chuàng)建完成,容器運行時就會啟動容器,并且監(jiān)控容器的運行狀態(tài)。

8、Pod 狀態(tài)更新:一旦 Pod 中的容器全部啟動成功,Kubernetes 就會更新該 Pod 的狀態(tài)為“運行中”。

9、監(jiān)控和自愈:Kubernetes 會持續(xù)監(jiān)控 Pod 的運行狀態(tài),如果發(fā)現 Pod 出現異常(比如容器崩潰、節(jié)點故障等),Kubernetes 會嘗試自動修復或者重新創(chuàng)建 Pod。

一個pod內的所有容器共享網絡嗎?,容器化與編排技術深度解析,# Kubernetes,kubernetes,容器,云原生,k8s,k8s集群文章來源地址http://www.zghlxwxcb.cn/news/detail-847226.html


??The End??點點關注,收藏不迷路??

到了這里,關于Kubernetes(k8s)核心資源解析:Pod詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Kubernetes(k8s):Pod 的 Node Selector詳解

    Kubernetes(k8s):Pod 的 Node Selector詳解

    ??The Begin??點點關注,收藏不迷路?? Node Selector是Kubernetes中一個用于指定Pod部署位置的重要概念。通過Node Selector,用戶可以將Pod調度到具有特定標簽的節(jié)點上。 這種標簽通常用于區(qū)分節(jié)點的硬件配置、地理位置、網絡特性等。通過合理地設置Node Selector,用戶可以優(yōu)化應用

    2024年04月08日
    瀏覽(92)
  • Kubernetes 啟動Pod的方法-Pod的調度算法-Pod間的通信-k8s的控制器-Pod資源控制-發(fā)布Service服務

    Kubernetes 啟動Pod的方法-Pod的調度算法-Pod間的通信-k8s的控制器-Pod資源控制-發(fā)布Service服務

    目錄 Pod 參考文檔:Pod | Kubernetes Pod配置文件:simple-pod.yaml 對master進行如下操作 Pod的狀態(tài)有: 參考文檔:(70條消息) Pod生命周期中的狀態(tài)解釋_pod狀態(tài)_鬧玩兒扣眼珠子的博客-CSDN博客 進入Pod內的nginx容器: 當我們創(chuàng)建一個Pod,其中的步驟是什么?(啟動Pob的流程) 大概步驟:

    2024年02月13日
    瀏覽(95)
  • Kubernetes(k8s)入門:核心組件詳解

    Kubernetes(k8s)入門:核心組件詳解

    附:集群搭建請移步: Kubernetes(k8s)集群搭建,完整無坑,不需要科學上網~ Controllers官網文檔:https://kubernetes.io/docs/concepts/workloads/controllers/ 官網:https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/ 官網原文:A ReplicationController ensures that a specified number of pod repl

    2024年02月13日
    瀏覽(28)
  • k8s(Kubernetes)設置 pod,Deployment 域名自定義映射ip,hosts 解析 HostAliases

    直接 編輯修改 Deployment 最后內容如下,如需保存 按 esc 鍵,最后輸入 :wq 保存退出,容器會自動重新生成新的

    2024年02月12日
    瀏覽(52)
  • K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡單資源配額

    K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡單資源配額

    目錄 Pod概述 pod網絡 pod存儲 pod和容器對比 創(chuàng)建pod的方式 pod運行方式分類 Pod的創(chuàng)建 Pod的創(chuàng)建過程 通過kubectl run來創(chuàng)建pod 通過yaml文件創(chuàng)建,yaml文件簡單寫法 Pod簡單操作 Pod的標簽labels Pod的資源配額resource 測試 Kubernetes Pod | Kubernetes Pod是Kubernetes中的最小調度單元,k8s都是以p

    2024年01月18日
    瀏覽(48)
  • 【Kubernetes】K8s 查看 Pod 的狀態(tài)

    NAME :Pod 的名稱。 READY :代表 Pod 里面有幾個容器,前面是啟動的,后面是總數, 1 / 1 1/1 1/1 。 STATUS :就是當前 Pod 狀態(tài),最常見的就是 Running 正在運行,最期望的狀態(tài),只要不是 Running 的就說明有問題,就算是 Running 的就不一定沒有問題。 狀態(tài) 說明 Pending 掛起 在執(zhí)行創(chuàng)建

    2024年01月15日
    瀏覽(134)
  • 深入掌握k8s核心概念--Pod(一)

    深入掌握k8s核心概念--Pod(一)

    激動人心的時刻到了,終于到核心概念這一步了,前面的知識是有點“干燥了”。不急后面會看見代碼,可以多像金山打字一樣打一打代碼,熟悉一下yaml格式 Pod 在架構中的位置 Pod 位于 Kubernetes 架構的核心中,是構建應用的最小單元。Pod 可以用來運行各種類型的應用,包括

    2024年04月17日
    瀏覽(19)
  • k8s資源對象(1) namespace&&pod

    k8s資源對象(1) namespace&&pod

    Namespace是kubernetes系統中的一種非常重要資源,它的主要作用是用來實現多套環(huán)境的資源隔離或者多租戶的資源隔離。 默認情況下,kubernetes集群中的所有的Pod都是可以相互訪問的。但是在實際中,可能不想讓兩個Pod之間進行互相的訪問,那此時就可以將兩個Pod劃分到不同的

    2024年01月18日
    瀏覽(48)
  • K8S學習指南(10)-k8s中為pod分配CPU和內存資源

    Kubernetes(簡稱K8s)是一種開源的容器編排平臺,廣泛用于構建、部署和管理容器化應用。在Kubernetes中,Pod是最小的可部署單元,而資源分配是確保Pod正常運行的關鍵因素之一。本文將深入探討如何在Kubernetes中為Pod分配CPU和內存資源,并提供詳細的示例。 在容器化環(huán)境中,多

    2024年02月04日
    瀏覽(36)
  • k8s pod “cpu和內存“ 資源限制

    轉載用于收藏學習:原文 為了保證充分利用集群資源,且確保重要容器在運行周期內能夠分配到足夠的資源穩(wěn)定運行,因此平臺需要具備 Pod的資源限制的能力。 對于一個pod來說,資源最基礎的2個的指標就是:CPU和內存。 Kubernetes提供了個采用requests和limits 兩種類型參數對資

    2024年02月13日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包