36. 說明K8s中Pod級別的Graceful Shutdown。
答:Graceful Shutdown(優雅關閉)是指當 Pod 需要終止時,系統給予運行中的容器一定的時間來等待業務的應用的正常關閉(如保存數據、關閉連接、釋放資源等),再進行強制終止的機制。這一機制避免了應用程序因突然終止而導致的數據丟失、連接中斷或服務異常。
37. 解釋什么是Kubernetes的Volume。
答:Kubernetes 的 Volume(存儲卷)是 Pod 中容器可訪問的存儲空間,用于在容器之間共享數據,或持久化存儲數據,避免容器重啟后數據丟失。它的生命周期與Pod綁定,可支持多種存儲類型(如本地磁盤、網絡存儲等)。
38. 解釋emptyDir卷類型的特征。
答:當Pod被調度到節點上時emptyDir 卷就會被自動創建,當Pod被刪除時數據也會被刪除。它最初是空的,可被 Pod 內所有容器共享,盡管 Pod 中的容器掛載 emptyDir 卷的路徑可能會有不同,但這些容器都可以讀寫 emptyDir 卷中相同的文件。容器崩潰期間 emptyDir 卷中的數據是安全的。
39. 解釋hostPath卷類型的特征。
答:hostPath 卷能將 Pod 中的目錄掛載到主機節點上的文件系統中,使 Pod 可以訪問節點上的本地文件系統。其數據不會隨Pod刪除而消失(除非宿主機上的文件被手動刪除),但僅能在特定節點上使用,它會限制 Pod 的遷移性,不適合跨節點調度的Pod。
40. 解釋PV卷類型的特征.
答:PV卷是集群級別的持久化存儲資源,由管理員預先創建,獨立于Pod生命周期,可跨Pod、跨命名空間使用。它具有固定的存儲容量和訪問模式(如只讀、讀寫),支持多種后端存儲(如 NFS、云存儲等),供Pod通過PVC動態申請使用,
41. 什么是PVC,如何使用它。
答:PVC 在概念上與 Pod 類似,使用Pod會耗用節點資源,使用PVC申領會耗用 PV 資源。用戶對 PV 的請求要使用 PVC(PersistentVolumeClaim,持久卷申領)來表達。
用戶通過PVC指定所需的存儲容量、訪問模式等需求,Kubernetes 會自動匹配符合條件的 PV 并進行綁定。之后,在Pod的配置中引用該PVC,即可像使用普通Volume一樣掛載和使用對應的存儲資源,實現了存儲使用與管理的分離。
42. PV有哪幾種訪問模式,詳細說明。
答:-ReadWriteOnce:僅允許單個節點以讀寫方式掛載。也允許運行在同一節點上的多個Pod訪問卷。,適用于需要獨占寫入的場景(如數據庫)。
-ReadOnlyMany:允許多個節點以只讀方式掛載。多個節點上的Pod可同時掛載該PV,但都只能讀取數據,無法寫入,適用于配置文件、靜態資源等。
-ReadWriteMany:允許多個節點以讀寫方式掛載。多個節點上的 Pod 可同時掛載并進行讀寫操作,適用于分布式文件系統。
-ReadWriteOncePod:僅允許單個Pod以讀寫方式掛載(比 RWO 更嚴格,限制到 Pod 級別而非節點級別)。同一時間只能被一個Pod獨占讀寫,適用于需要嚴格隔離的存儲場景。
43. 解釋PV的回收策略。
答:-Retain:PVC 刪除后,PV 保持綁定狀態(標記為 Released),數據需管理員手動清理數據,適用于需要保留數據的場景(如重要數據歸檔)。
-Recycle:執行rm -rf /thevolume/*操作,但因安全性和局限性,不推薦用。
-Delete:PVC 刪除后,PV會被自動刪除,同時底層存儲資源(如云存儲卷、NFS目錄)也會被刪除,數據隨之清除。適用于臨時存儲或無需保留數據的場景,簡化存儲管理。
44. 如何將特定Pod調度到指定的節點?
答:-nodeSelector:先給節點打一個標簽,然后將pod僅調度到具有此標簽的節點上。
-nodeName:指定節點名稱,將Pod僅調度到具有特定名稱的節點上。
-節點親和性 (Node Affinity):比nodeSelector更靈活,可以定義軟性和硬性親和規則。例如,nodeAffinity可以通過requiredDuringSchedulingIgnoredDuringExecution和preferredDuringSchedulingIgnoredDuringExecution來設置硬性和軟性規則。
45. 什么是節點的親和性?
答:節點親和性( Node Affinity)是 Pod 的一種屬性,它使 Pod 被吸引到一類特定的節點(可能出于一種偏好,也可能是硬性要求)。
-節點親和性概念上類似于nodeSelector,可以根據節點上的標簽來約束Pod可以調度到哪些節點上。
46. 什么是污點,它的主要用途是什么?
答:污點(Taint)使得節點能夠排斥一類特定的Pod。
-污點和容忍度相互配合,可以用來避免Pod被分配到不合適的節點上。每個節點上都可以應用一個或多個污點,這意味著對于那些不能容忍這些污點的 Pod,是不會被該節點接受的。
47. 解釋ConfigMap的作用。
答:ConfigMap是Kubernetes的一種機制,可以將配置數據注入到應用的Pod內部。通過將配置存入ConfigMap,應用無需在鏡像中硬編碼配置,只需在Pod中引用ConfigMap即可獲取配置數據。當配置需要更新時,只需修改ConfigMap,無需重新構建鏡像,實現了配置與代碼的分離,簡化了應用部署和維護流程。ConfigMap允許將配置清單與鏡像內容分離,以保持容器化的應用程序的可移植性。例如,可以下載并運行相同的容器鏡像來啟動容器,分別用于本地開發、系統測試或運行實時終端用戶工作負載。
48. Secret和ConfigMap相比較有哪些優點。
答:-數據加密存儲:Secret會對存儲的敏感數據(如密碼、令牌、密鑰等)進行加密,使用Secret意味著不需要在應用程序代碼中包含機密數據,而ConfigMap以明文形式存儲數據,安全性更低。
由于Secret可以獨立于使用它們的Pod創建,因此在創建、查看和編輯 Pod 的工作流程中,Secret(及其數據)被泄露的風險較小。
Kubernete以及集群中運行的應用程序還 可以對Secret采取額外的預防措施,例如避免將敏感數據寫入非易失性存儲。
Secrets類似于配置映射,但具體用于保存機密數據,例如:為容器設置環境變量;向Pod提供SSH密鑰或密碼等憑證;允許kubelet從私有注冊表中提取容器鏡像等。
49. 解釋ResourceQuota的作用。
答:通過ResourceQuota對象來定義,資源配額可以對每個命名空間的資源消耗總量提供限制。它可以限制命名空間中某種類型對象的總的數目上限,也可以限制命名空間中的Pod可以使用的計算資源的總上限。