K8s 分布式存儲后端(K8s Distributed Storage Backend)

K8s 分布式存儲后端

在 K8s 中實現分布式存儲后端對于管理跨集群的持久數據、確保高可用性、可擴展性和可靠性至關重要。在 K8s 環境中,應用程序通常被容器化并跨多個節點部署。雖然 K8s 可以有效處理無狀態應用程序,但有狀態應用程序需要持久存儲來維護數據完整性和可用性。分布式存儲后端通過在集群中提供可擴展、有彈性且可訪問的存儲來提供解決方案,從而允許應用程序可靠地訪問和存儲數據。本章介紹在 K8s 中設置分布式存儲后端的基本概念、優點和實際步驟。

圖片

為什么分布式存儲很重要

在 Kubernetes 環境中,分布式存儲后端在管理有狀態應用程序的數據方面發揮著至關重要的作用。無狀態應用程序可以輕松擴展和管理,因為它們不維護請求之間的任何內部狀態。然而,有狀態的應用程序,例如數據庫、內容管理系統和大數據處理應用程序,需要持久存儲才能正常運行。分布式存儲系統通過提供可靠且可擴展的方式來跨多個節點存儲數據來滿足這一需求,確保應用程序即使在遇到節點故障或擴展事件時也能保持狀態。

分布式存儲的好處

分布式存儲提供了對現代云原生應用程序至關重要的幾個關鍵優勢:

  • 可擴展性:分布式存儲系統可以通過添加更多節點來水平擴展,從而允許存儲容量和性能隨著應用程序的需求而增長。

  • 高可用性:數據在多個節點之間復制,確保即使某些節點出現故障,數據仍然可用。

  • 數據一致性:分布式存儲確保整個集群內數據的一致性,保持完整性和可靠性。

  • 靈活性:支持各種存儲類型和訪問模式,支持不同的工作負載和用例。

何時使用分布式存儲

分布式存儲應該用在數據持久性、高可用性和可擴展性至關重要的 Kubernetes 環境中。它特別有利于:

  • 有狀態應用程序:需要持久數據存儲的應用程序(例如數據庫和內容管理系統)受益于分布式存儲的可靠性和可擴展性。

  • 大數據工作負載:需要可擴展且可靠存儲的大規模數據處理應用程序可以利用分布式存儲來有效處理大量數據。

  • 災難恢復:數據冗余和故障轉移功能對于業務連續性至關重要的場景可以依靠分布式存儲來確保即使在發生故障時數據也保持可用和一致。

為什么分布式存儲很重要

在 Kubernetes 環境中,應用程序通常被容器化并跨多個節點部署。雖然 Kubernetes 可以有效管理無狀態應用程序,但有狀態應用程序需要持久存儲來維護數據完整性和可用性。分布式存儲后端通過在集群中提供可擴展、有彈性且可訪問的存儲來提供解決方案,從而允許應用程序可靠地訪問和存儲數據。

分布式存儲的好處

  • 可擴展性:分布式存儲系統可以通過添加更多節點來水平擴展,從而允許存儲容量和性能隨著應用程序的需求而增長。

  • 高可用性:數據在多個節點之間復制,確保即使某些節點出現故障,數據仍然可用。

  • 數據一致性:分布式存儲確保整個集群內數據的一致性,保持完整性和可靠性。

  • 靈活性:支持各種存儲類型和訪問模式,支持不同的工作負載和用例。

流行的 Kubernetes 分布式存儲解決方案

多種分布式存儲解決方案與 Kubernetes 無縫集成,提供強大的存儲功能。一些最受歡迎的選項包括:

1. Ceph

Ceph 是一個高度可擴展的分布式存儲系統,可在單一平臺中提供對象、塊和文件存儲。它通過 Rook 操作符與 Kubernetes 很好地集成。

圖片

主要特點Ceph 提供了支持對象、塊和文件存儲的統一存儲系統。它具有高度可擴展性和彈性,能夠處理 PB 級的數據。 Ceph 具有自我修復和自我管理功能,使其成為滿足復雜存儲需求的可靠選擇。

用例:設置高可用數據庫在此用例中,我們將使用 Ceph 作為后端存儲來設置一個高可用的 PostgreSQL 數據庫。目標是確保數據庫能夠處理節點故障而不丟失數據。

操作步驟:

安裝 Rook Operator

首先,為 Rook 創建命名空間并部署 Rook Operator。將以下配置保存到名為rook-operator.yaml的文件中:

apiVersion:?v1
kind:?Namespace
metadata:name:?rook-ceph
---
apiVersion:?apps/v1
kind:?Deployment
metadata:name:?rook-ceph-operatornamespace:?rook-ceph
spec:replicas:?1template:metadata:labels:app:?rook-ceph-operatorspec:containers:-?name:?rook-ceph-operatorimage:?rook/ceph:v1.5.9

應用配置:

kubectl?apply?-f?rook-operator.yaml

部署Ceph集群

通過將以下配置保存到名為rook-cluster.yaml的文件來創建 Ceph 集群:

apiVersion:?ceph.rook.io/v1
kind:?CephCluster
metadata:name:?rook-cephnamespace:?rook-ceph
spec:cephVersion:image:?ceph/ceph:v15.2.4dataDirHostPath:?/var/lib/rookmon:count:?3dashboard:enabled:?truenetwork:hostNetwork:?falsestorage:useAllNodes:?trueuseAllDevices:?true

應用配置:

kubectl?apply?-f?rook-cluster.yaml

創建存儲類

定義一個 StorageClass 以使用 Ceph 的?RBD?進行動態配置。將以下配置保存到名為rook-storageclass.yaml的文件中:

apiVersion:?storage.k8s.io/v1
kind:?StorageClass
metadata:name:?rook-ceph-block
provisioner:?rook-ceph.rbd.csi.ceph.com
parameters:clusterID:?rook-cephpool:?replicapoolimageFormat:?"2"imageFeatures:?layering
reclaimPolicy:?Retain

應用配置:

kubectl?apply?-f?rook-cluster.yaml

部署 PostgreSQL

最后,使用新創建的 StorageClass 部署 PostgreSQL 數據庫。將以下配置保存到名為postgres-deployment.yaml的文件中:

apiVersion:?v1
kind:?PersistentVolumeClaim
metadata:name:?postgres-pvc
spec:accessModes:-?ReadWriteOnceresources:requests:storage:?10GistorageClassName:?rook-ceph-block
---
apiVersion:?apps/v1
kind:?Deployment
metadata:name:?postgres
spec:replicas:?1selector:matchLabels:app:?postgrestemplate:metadata:labels:app:?postgresspec:containers:-?name:?postgresimage:?postgres:12env:-?name:?POSTGRES_PASSWORDvalue:?"yourpassword"volumeMounts:-?mountPath:?/var/lib/postgresql/dataname:?postgres-storagevolumes:-?name:?postgres-storagepersistentVolumeClaim:claimName:?postgres-pvc

應用配置:

kubectl?apply?-f?postgres-deployment.yaml

2.GlusterFS

GlusterFS?是一個可擴展的網絡文件系統,與 Kubernetes 集成以提供持久存儲。它以其簡單性和易于部署而聞名。

圖片

主要特點

GlusterFS 具有可擴展性和分布式性,提供高性能和簡單的配置。它允許輕松添加存儲節點并通過數據復制提供高可用性。

使用案例:為 Web 應用程序設置共享存儲

在此用例中,我們將設置 GlusterFS 為需要跨多個副本訪問相同文件的 Web 應用程序提供共享存儲。

操作步驟:

安裝 GlusterFS

首先,設置一個 GlusterFS 集群。在每個 GlusterFS 節點上,安裝 GlusterFS 并創建 GlusterFS 卷。

sudo?apt-get?install?glusterfs-server
sudo?systemctl?start?glusterd
sudo?gluster?peer?probe?<other-node-ip>
sudo?gluster?volume?create?gv0?replica?2?<node1-ip>:/data/brick1/gv0?<node2-ip>:/data/brick2/gv0
sudo?gluster?volume?start?gv0

部署 GlusterFS DaemonSet

在 Kubernetes 中部署 DaemonSet 以在每個節點上掛載 GlusterFS 卷。將以下配置保存到名為glusterfs-daemonset.yaml的文件中:

apiVersion:?v1
kind:?PersistentVolume
metadata:name:?glusterfs-pv
spec:capacity:storage:?10GiaccessModes:-?ReadWriteManyglusterfs:endpoints:?glusterfs-clusterpath:?gv0readOnly:?false
---
apiVersion:?v1
kind:?PersistentVolumeClaim
metadata:name:?glusterfs-pvc
spec:accessModes:-?ReadWriteManyresources:requests:storage:?10Gi

應用配置:

kubectl?apply?-f?glusterfs-pv-pvc.yaml

創建持久卷和持久卷聲明

定義 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 以使用 GlusterFS 卷。將以下配置保存到名為glusterfs-pv-pvc.yaml的文件中:

apiVersion:?apps/v1
kind:?Deployment
metadata:name:?webapp
spec:replicas:?3selector:matchLabels:app:?webapptemplate:metadata:labels:app:?webappspec:containers:-?name:?webappimage:?nginxvolumeMounts:-?mountPath:?/usr/share/nginx/htmlname:?webapp-storagevolumes:-?name:?webapp-storagepersistentVolumeClaim:claimName:?glusterfs-pvc

應用配置:

kubectl?apply?-f?webapp-deployment.yaml

部署 Web 應用程序

部署使用 GlusterFS PVC 進行共享存儲的 Web 應用程序。將以下配置保存到名為webapp-deployment.yaml的文件中:

apiVersion:?apps/v1
kind:?Deployment
metadata:name:?webapp
spec:replicas:?3selector:matchLabels:app:?webapptemplate:metadata:labels:app:?webappspec:containers:-?name:?webappimage:?nginxvolumeMounts:-?mountPath:?/usr/share/nginx/htmlname:?webapp-storagevolumes:-?name:?webapp-storagepersistentVolumeClaim:claimName:?glusterfs-pvc

應用配置:

kubectl?apply?-f?webapp-deployment.yaml

3. OpenEBS

OpenEBS 是 Kubernetes 原生存儲解決方案,提供容器附加存儲。它提供對存儲的精細控制,是 DevOps 工作流程的理想選擇。

圖片

主要特點

OpenEBS 是 Kubernetes 原生的,提供對存儲的精細控制。它支持多種存儲引擎,使其靈活且適用于廣泛的用例。

使用案例:設置具有持久存儲的 CI/CD 管道

在此用例中,我們將設置 OpenEBS 為 Jenkins CI/CD 管道提供持久存儲。這可確保跨管道運行保留構建工件和日志。

操作步驟:

安裝OpenEBS

使用 Helm 安裝 OpenEBS。首先,添加 OpenEBS Helm 存儲庫并安裝 OpenEBS 圖表。

helm?repo?add?openebs?https://openebs.github.io/charts
helm?install?openebs?--namespace?openebs?openebs/openebs

創建存儲類為 OpenEBS 定義存儲類。將以下配置保存到名為openebs-storageclass.yaml的文件中:

apiVersion:?storage.k8s.io/v1
kind:?StorageClass
metadata:name:?openebs-sc
provisioner:?openebs.io/provisioner-iscsi
parameters:openebs.io/storage-pool:?"default"

應用配置:

kubectl?apply?-f?openebs-storageclass.yaml

部署Jenkins

使用 OpenEBS StorageClass 部署 Jenkins 進行持久存儲。將以下配置保存到名為jenkins-deployment.yaml的文件中:

apiVersion:?v1
kind:?PersistentVolumeClaim
metadata:name:?jenkins-pvc
spec:accessModes:-?ReadWriteOnceresources:requests:storage:?20GistorageClassName:?openebs-sc
---
apiVersion:?apps/v1
kind:?Deployment
metadata:name:?jenkins
spec:replicas:?1selector:matchLabels:app:?jenkinstemplate:metadata:labels:app:?jenkinsspec:containers:-?name:?jenkinsimage:?jenkins/jenkins:ltsenv:-?name:?JAVA_OPTSvalue:?"-Djenkins.install.runSetupWizard=false"volumeMounts:-?mountPath:?/var/jenkins_homename:?jenkins-storagevolumes:-?name:?jenkins-storagepersistentVolumeClaim:claimName:?jenkins-pvc

應用配置:

kubectl?apply?-f?jenkins-deployment.yaml

實施分布式存儲的最佳實踐

在 Kubernetes 中實現分布式存儲涉及多種最佳實踐,以確保最佳性能、可擴展性和可靠性。這些實踐包括選擇正確的存儲解決方案、優化存儲配置以及持續監控和維護存儲系統。

選擇正確的存儲解決方案

選擇合適的存儲后端對于滿足應用程序的性能、可擴展性和可靠性要求至關重要。不同的存儲解決方案提供獨特的功能和優勢,使其適合各種用例。

例如,Ceph 非常適合需要能夠處理具有高可擴展性和彈性的對象、塊和文件存儲的統一存儲系統的環境。 GlusterFS 適用于需要簡單、高性能網絡文件系統的應用程序。 OpenEBS 非常適合需要對存儲進行精細控制的 Kubernetes 原生環境。

優化存儲配置

微調存儲設置對于優化性能至關重要。這包括調整復制因子、啟用緩存機制以及配置網絡設置以減少延遲并提高吞吐量。

對于Ceph,您可以調整復制因子以在性能和數據冗余之間取得平衡。增加副本數量可以增強數據可用性,但可能會影響寫入性能。

調整Ceph復制因子的示例:

apiVersion:?ceph.rook.io/v1
kind:?CephCluster
metadata:name:?rook-cephnamespace:?rook-ceph
spec:cephVersion:image:?ceph/ceph:v15.2.4dataDirHostPath:?/var/lib/rookmon:count:?3dashboard:enabled:?truenetwork:hostNetwork:?falsestorage:useAllNodes:?trueuseAllDevices:?truereplication:size:?3 ?#?Adjust?the?replication?factor?here

對于 GlusterFS,調整卷配置有助于優化性能。例如,設置適當的塊大小并啟用性能選項可以提高特定工作負載的吞吐量。

調整 GlusterFS 卷配置的示例:

sudo?gluster?volume?set?gv0?performance.cache-size?256MB
sudo?gluster?volume?set?gv0?performance.write-behind?on
sudo?gluster?volume?set?gv0?performance.quick-read?on

監控和維護

持續監控和維護存儲系統對于確保其健康和性能至關重要。使用 Prometheus 等監控工具來跟蹤關鍵指標并及早發現問題。

對于 Ceph,您可以設置 Prometheus 來監控存儲運行狀況。創建一個 ServiceMonitor 以從 Ceph 管理器中抓取指標。

使用Prometheus監控Ceph的示例:

apiVersion:?monitoring.coreos.com/v1
kind:?ServiceMonitor
metadata:name:?rook-ceph-mgrnamespace:?rook-ceph
spec:selector:matchLabels:app:?rook-ceph-mgrendpoints:-?port:?http-metricsinterval:?15spath:?/metrics

應用配置:

kubectl?apply?-f?servicemonitor.yaml

對于 GlusterFS,您可以使用 Gluster Prometheus Exporter 來監控 GlusterFS 卷的運行狀況。將導出器部署為 DaemonSet 以確保每個節點都受到監控。

部署 Gluster Prometheus Exporter 的示例:

apiVersion:?apps/v1
kind:?DaemonSet
metadata:name:?glusterfs-exporternamespace:?monitoring
spec:selector:matchLabels:app:?glusterfs-exportertemplate:metadata:labels:app:?glusterfs-exporterspec:containers:-?name:?glusterfs-exporterimage:?prom/glusterfs-exporterports:-?containerPort:?9189name:?metrics

應用配置:

kubectl?apply?-f?glusterfs-exporter.yaml

對于 OpenEBS,使用 Prometheus Operator 監控卷和存儲引擎的運行狀況。為 OpenEBS 設置 ServiceMonitor。

使用Prometheus監控OpenEBS的示例:

apiVersion:?monitoring.coreos.com/v1
kind:?ServiceMonitor
metadata:name:?openebs-monitornamespace:?monitoring
spec:selector:matchLabels:app:?openebsendpoints:-?port:?http-metricsinterval:?15spath:?/metrics

應用配置:

kubectl?apply?-f?openebs-monitor.yaml

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894667.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894667.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894667.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FFmpeg:多媒體處理的瑞士軍刀

FFmpeg&#xff1a;多媒體處理的瑞士軍刀 前言 FFmpeg 是一個功能強大且跨平臺的開源多媒體框架&#xff0c;廣泛應用于音視頻處理領域。 它由多個庫和工具組成&#xff0c;能夠處理各種音視頻格式&#xff0c;涵蓋編碼、解碼、轉碼、流處理等多種操作。 無論是專業視頻編輯…

unordered_map/set的哈希封裝

【C筆記】unordered_map/set的哈希封裝 &#x1f525;個人主頁&#xff1a;大白的編程日記 &#x1f525;專欄&#xff1a;C筆記 文章目錄 【C筆記】unordered_map/set的哈希封裝前言一. 源碼及框架分析二.迭代器三.operator[]四.使用哈希表封裝unordered_map/set后言 前言 哈…

編程AI深度實戰:大模型哪個好? Mistral vs Qwen vs Deepseek vs Llama

?? 系列文章&#xff1a; 編程AI深度實戰&#xff1a;私有模型deep seek r1&#xff0c;必會ollama-CSDN博客 編程AI深度實戰&#xff1a;自己的AI&#xff0c;必會LangChain-CSDN博客 編程AI深度實戰&#xff1a;給vim裝上AI-CSDN博客 編程AI深度實戰&#xff1a;火的編…

neo4j-community-5.26.0 install in window10

在住處電腦重新配置一下neo4j, 1.先至官方下載 Neo4j Desktop Download | Free Graph Database Download Neo4j Deployment Center - Graph Database & Analytics 2.配置java jdk jdk 21 官網下載 Java Downloads | Oracle 中國 path: 4.查看java -version 版本 5.n…

【怎么用系列】短視頻戒除—1—對推薦算法進行干擾

如今推薦算法已經滲透到人們生活的方方面面&#xff0c;尤其是抖音等短視頻核心就是推薦算法。 【短視頻的危害】 1> 會讓人變笨&#xff0c;慢慢讓人喪失注意力與專注力 2> 讓人喪失閱讀長文的能力 3> 讓人沉浸在一個又一個快感與嗨點當中。當我們刷短視頻時&#x…

網絡原理(5)—— 數據鏈路層詳解

目錄 一. 以太網 1.1 認識以太網 1.2 網卡與以太網 1.3 以太網幀格式 二. 認識MAC地址 三. MAC地址 與 IP地址 的區別 4.1 定義 4.2 分配方式 4.3 工作層次 4.4 地址格式 4.5 尋址方式 四. ARP協議 4.1 引入 4.2 ARP的概念 4.3 ARP工作原理 五. MTU 與 MSS …

【從零開始的LeetCode-算法】922. 按奇偶排序數組 II

給定一個非負整數數組 nums&#xff0c; nums 中一半整數是 奇數 &#xff0c;一半整數是 偶數 。 對數組進行排序&#xff0c;以便當 nums[i] 為奇數時&#xff0c;i 也是 奇數 &#xff1b;當 nums[i] 為偶數時&#xff0c; i 也是 偶數 。 你可以返回 任何滿足上述條件的…

設計一個特殊token以從1億詞表中動態采樣8192個詞來表達當前序列

為了設計一個特殊token以從1億詞表中動態采樣8192個詞來表達當前序列&#xff0c;可以采用以下分步方案&#xff1a; 1. 特殊token的設計與作用 定義特殊token&#xff1a;在輸入序列前添加一個特殊標記&#xff0c;如[SUBVOCAB]。該token的嵌入包含觸發子詞表采樣的元信息。…

兩晉南北朝 僑置州郡由來

僑置的核心思想是面向人管理 而不是面向土地 1. 北雍州 西晉于長安置雍州&#xff0c;永嘉之亂&#xff0c;沒于劉、石。苻秦之亂&#xff0c;雍州流民南出樊沔&#xff0c;孝武于襄陽僑立雍州。此時稱長安為北雍州。

H264原始碼流格式分析

1.H264碼流結構組成 H.264裸碼流&#xff08;Raw Bitstream&#xff09;數據主要由一系列的NALU&#xff08;網絡抽象層單元&#xff09;組成。每個NALU包含一個NAL頭和一個RBSP&#xff08;原始字節序列載荷&#xff09;。 1.1 H.264碼流層次 H.264碼流的結構可以分為兩個層…

【C語言設計模式學習筆記1】面向接口編程/簡單工廠模式/多態

面向接口編程可以提供更高級的抽象&#xff0c;實現的時候&#xff0c;外部不需要知道內部的具體實現&#xff0c;最簡單的是使用簡單工廠模式來進行實現&#xff0c;比如一個Sensor具有多種表示形式&#xff0c;這時候可以在給Sensor結構體添加一個enum類型的type&#xff0c;…

AI大模型(二)基于Deepseek搭建本地可視化交互UI

AI大模型&#xff08;二&#xff09;基于Deepseek搭建本地可視化交互UI DeepSeek開源大模型在榜單上以黑馬之姿橫掃多項評測&#xff0c;其社區熱度指數暴漲、一躍成為近期內影響力最高的話題&#xff0c;這個來自中國團隊的模型向世界證明&#xff1a;讓每個普通人都能擁有媲…

C++基礎系列【2】C++基本語法

本文作為入門文檔&#xff0c;簡要介紹C的非常基本的語法&#xff0c;后面章節會詳細介紹C的各個語法。 C 程序結構 C程序的基本結構包括頭文件、命名空間、類和函數等。 下面我們通過Hello&#xff0c;World來展示這些元素。 #include <iostream> // 包含標準輸入輸…

【C語言】球球大作戰游戲

目錄 1. 前期準備 2. 玩家操作 3. 生成地圖 4. 敵人移動 5. 吃掉小球 6. 完整代碼 1. 前期準備 游戲設定:小球的位置、小球的半徑、以及小球的顏色 這里我們可以用一個結構體數組來存放這些要素,以方便初始化小球的信息。 struct Ball {int x;int y;float r;DWORD c…

圖的基本術語——非八股文

我之前只看到了數據結構與算法的冰山一角&#xff0c;感覺這些術語只會讓知識越來越難理解&#xff0c;現在來看&#xff0c;他們完美抽象一些概念和知識&#xff0c;非常重要。 本篇概念肯定總結不全&#xff0c;只有遇到的會寫上&#xff0c;持續更新&#xff0c;之前文章已經…

oracle: 表分區>>范圍分區,列表分區,散列分區/哈希分區,間隔分區,參考分區,組合分區,子分區/復合分區/組合分區

分區表 是將一個邏輯上的大表按照特定的規則劃分為多個物理上的子表&#xff0c;這些子表稱為分區。 分區可以基于不同的維度&#xff0c;如時間、數值范圍、字符串值等&#xff0c;將數據分散存儲在不同的分區 中&#xff0c;以提高數據管理的效率和查詢性能&#xff0c;同時…

【單層神經網絡】基于MXNet的線性回歸實現(底層實現)

寫在前面 剛開始先從普通的尋優算法開始&#xff0c;熟悉一下學習訓練過程下面將使用梯度下降法尋優&#xff0c;但這大概只能是局部最優&#xff0c;它并不是一個十分優秀的尋優算法 整體流程 生成訓練數據集&#xff08;實際工程中&#xff0c;需要從實際對象身上采集數據…

本地快速部署DeepSeek-R1模型——2025新年賀歲

一晃年初六了&#xff0c;春節長假余額馬上歸零了。今天下午在我的電腦上成功部署了DeepSeek-R1模型&#xff0c;抽個時間和大家簡單分享一下過程&#xff1a; 概述 DeepSeek模型 是一家由中國知名量化私募巨頭幻方量化創立的人工智能公司&#xff0c;致力于開發高效、高性能…

C++11詳解(一) -- 列表初始化,右值引用和移動語義

文章目錄 1.列表初始化1.1 C98傳統的{}1.2 C11中的{}1.3 C11中的std::initializer_list 2.右值引用和移動語義2.1左值和右值2.2左值引用和右值引用2.3 引用延長生命周期2.4左值和右值的參數匹配問題2.5右值引用和移動語義的使用場景2.5.1左值引用主要使用場景2.5.2移動構造和移…

在K8S中,pending狀態一般由什么原因導致的?

在Kubernetes中&#xff0c;資源或Pod處于Pending狀態可能有多種原因引起。以下是一些常見的原因和詳細解釋&#xff1a; 資源不足 概述&#xff1a;當集群中的資源不足以滿足Pod或服務的需求時&#xff0c;它們可能會被至于Pending狀態。這通常涉及到CPU、內存、存儲或其他資…