【3.3】Pod詳解——容器探針部署第一個pod

文章目錄

    • 容器探針
    • `小知識-控制平面`
    • Pod實戰
      • 聲明式模型&命令模式
    • 部署第一個pod
      • 編寫pod清單文件
      • kubectl命令將清單文件post到api-server
      • 驗證pod
      • 刪除pod

容器探針

上面已經講到容器狀態,那么這些容器的狀態是怎么檢測到的呢?實際上在pod中有三種探針,存活探針(livenessProbe)、就緒探針(readinessProbe)和啟動探針(startupProbe)。

  • livenessProbe,叫做存活探針,是為了檢測容器是否正在運行,是否活著(如果探測失敗就會殺死容器根據重啟策略選擇是否重啟);
  • readinessProbe,叫做就緒探針,是為了檢測容器是否準備就緒,是否能接受客戶端請求;它會指示容器是否準備好為請求提供服務。如果就緒態探測失敗, EndpointSlice 控制器將從與該 Pod 匹配的所有 Service 的EndpointSlice 中刪除該 Pod 的 IP 地址(為了防止我們正常的服務訪問這個錯誤的Pod導致業務崩潰)。
  • startupProbe,叫做啟動探針,用于判斷容器進程是否已經啟動,一旦判斷成功就會失效不再判斷,一般用于那些啟動很久的程序。指示容器中的應用是否已經啟動。如果提供了啟動探針,則所有其他探針都會被 禁用,直到此探針成功為止(可以見得,啟動探針的優先級還是很高的)。如果啟動探測失敗,kubelet 將殺死容器, 而容器依其重啟策略進行重啟。

實際上容器探針收集到這些數據后就匯報給我們的控制平面了(kubernetes的大腦),我們看到的容器狀態就是從這里來的(如Running/NotReady)

在這里插入圖片描述

小知識-控制平面

控制平面(control plane)既前面介紹過的kube-apiserverkube-controller-managerkube-scheduleretcd這幾個組件組成。他們互相協作就實現了對整個k8s集群進行有效有序的管理。

Pod實戰

聲明式模型&命令模式

命令模式:顧名思義就是直接在服務器和平常敲命令一樣,直接命令執行創建Pod(不推薦)

聲明式:編寫一個yaml文件,其中包含了我們期望Pod的狀態,比如包含幾個容器,容器鏡像是什么,pod名字叫什么等等

雖然給出了兩種方式,但是絕對不推薦命令模式,我們目前在k8s集群,遇到的pod可能是巨大數量的,并且pod也會經常改變,可想而知,敲命令到手軟,并且多了你自己也記不住誰是誰了吧,維護起來讓人頭疼,所以命令模式絕對不是好的選擇。

部署第一個pod

在部署之前我們來理一下思路,這里以聲明式模型來討論

  1. 首先我們編寫一個yaml文件,包含了我們期望的pod狀態的內容
  2. 然后我們將這個文件post到api-server
  3. api-server經過一系列驗證后返回一個響應后,由其他組件監聽到后進行創建pod與調度pod到合適的node節點

那么大致流程就像下圖:

在這里插入圖片描述

那么我們實戰開始:

編寫pod清單文件

vi pod.ymlapiVersion: v1
kind: Pod
metadata:name: holle-podlabels:zone: prodversion: v1
spec:containers:- name: hello-ctrimage: nginx:1.22.1ports:- containerPort: 8080

kubectl命令將清單文件post到api-server

kubectl apply -f pod.yml# 查看pod狀態
kubectl get pod -o wide

在這里插入圖片描述

這里已經可以看見我們的pod已經READY了,并且狀態為Running,NODE項說明這個pod實際運行在node01節點上,集群內部訪問ip為10.244.2.98

驗證pod

由于我們在清單文件定義pod中運行nginx鏡像,所以訪問上面pod給出的ip應該是可以出現nginx的歡迎頁(注意關閉node01的防火墻與selinux)

在這里插入圖片描述

至此,我們的第一個pod已經創建成功并運行起來了,不過它目前似乎只能在集群內部訪問,外部訪問不了,那是因為我們并未配置暴露服務給外部,這一部分后續再說。

刪除pod

由于我們是直接定義的pod文件,所以刪除pod可以有兩種方式

第一種:kubectl delete holle-pod (注意這里的holle-pod是上面我們查詢pod狀態的NAME字段)

第二種:kubectl delete -f pod.yml (注意這里的pod.yml是我們編寫的pod清單文件)

在這里插入圖片描述

可以看見我們刪除后再次查看pod狀態已經提示未找到了

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

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

相關文章

Insar 相位展開真實的數據集的生成與下載(隨機矩陣放大,zernike 仿真包裹相位)

1.真實的數據集下載: Delta-X: UAVSAR L1B Interferometric Products, MRD, Louisiana, 2021 | NASA Earthdata 注意下載的時候需要注冊登錄一下哦 2. 適用于 深度學習訓練的數據集 通過網盤分享的文件:InSAR-DLPU.rar 鏈接: https://pan.baidu.com/s/1CRWAuNYwCHP_iqCeIhf…

C++ 多線程深度解析:掌握并行編程的藝術與實踐

在現代軟件開發中,多線程(multithreading)已不再是可選項,而是提升應用程序性能、響應速度和資源利用率的核心技術。隨著多核處理器的普及,如何讓代碼有效地利用這些硬件資源,成為每個 C 開發者必須掌握的技…

(線性代數)矩陣的奇異值Singular Value

矩陣的奇異值是矩陣分析中一個非常重要的概念,尤其是在數值線性代數、數據降維(如PCA)、圖像處理等領域有著廣泛應用。奇異值分解(SVD, Singular Value Decomposition)是一種強大的工具,可以將任意形狀的矩…

數據結構復習4

第四章 串 一些面試題 12. 介紹一下KMP算法。★★★ KMP算法是一種高效的字符串匹配算法,用于在一個文本串中查找一個模式串的出現位置。KMP算法通過利用模式串自身的信息,在匹配過程中避免不必要的回溯,從而提高匹配效率。 KMP算法的核心思…

【八股消消樂】消息隊列優化—消息有序

😊你好,我是小航,一個正在變禿、變強的文藝傾年。 🔔本專欄《八股消消樂》旨在記錄個人所背的八股文,包括Java/Go開發、Vue開發、系統架構、大模型開發、具身智能、機器學習、深度學習、力扣算法等相關知識點&#xff…

2D寫實交互數字人如何重塑服務體驗?

在數字化浪潮席卷全球的當下,人機交互模式正經歷著前所未有的變革。從早期的文本命令行界面,到圖形用戶界面(GUI)的普及,再到如今語音交互、手勢識別等多模態交互技術的興起,我們與機器之間的溝通方式愈發自…

CI/CD GitHub Actions配置流程

騰訊云服務器寶塔FinalShellgithup 1.在云服務器上創建SSH秘鑰對,下載秘鑰到本地 2.在服務器中綁定秘鑰對(綁定后,服務器不能將不允許密碼登錄)綁定前先關機服務器,綁定后再開啟服務器 3.FinalShell改為公鑰登錄&am…

液態交互效果網頁開發--源自鴻蒙5以及iOS26的靈感

首先先來看看最終展示效果 當鼠標靠近“開始探索”的按鈕的時候,按鈕放大并有微弱光效 鼠標靠近之前會給視窗添加一層接近背景的朦朧感,當鼠標放在視窗上朦朧感消失 技術不復雜,這個網頁主要是使用了以下關鍵技術: HTML5 語義化標…

PYTHON從入門到實踐9-類和實例

# 【1】面向對象編程 class Student(object):# 可以幫屬性值綁定到對象上,self相當于JAVA的thisdef __init__(self, name, age):self.name nameself.age agedef speak(self):print(self.name, 說:老師好)if __name__ __main__:new_student1 Student(…

matplotlib 繪制極坐標圖

1、功能介紹: 使用了 matplotlib 庫來創建一個極坐標圖 2、代碼部分: import matplotlib.pyplot as plt import numpy as np# 設置中文字體 plt.rcParams[font.sans-serif] [SimHei] # 選擇黑體字體,支持中文 plt.rcParams[axes.unicode…

Dask心得與筆記【2】

文章目錄 計算參考文獻 計算 數組切片如下 import numpy as np import dask.array as dadata np.arange(1000).reshape(10, 100) a da.from_array(data, chunks(5, 20)) print(a[:,0:3])切片結果是前3列 dask.array<getitem, shape(10, 3), dtypeint64, chunksize(5, 3…

數據采集合規安全是品牌控價基石

在品牌控價與數據分析工作中&#xff0c;數據采集是不可或缺的前置環節。當前主流的數據采集方式為爬蟲采集&#xff0c;這種依托機器自動化操作的模式&#xff0c;取代了傳統人工逐一瀏覽、復制數據的繁瑣流程&#xff0c;大幅提升了效率。采集后的原始數據&#xff0c;會由系…

llm推理賦能action policy的探索

兄弟&#xff0c;你這個問題非常到位&#xff0c;咱分兩個問題詳細講透&#xff1a; &#x1f680; (1) HybridVLA怎么引入更好的推理能力賦能Diffusion Action&#xff1f; HybridVLA 目前設計的亮點&#xff1a; Diffusion Token 與 LLM 自回歸結合 但推理能力沒有被顯式結…

spring04-管理bean(創建、注入):基于注解

一、什么是注解&#xff1f; &#xff08;1&#xff09;注解的定義 注解&#xff08;Annotation&#xff09;是 Java 代碼中的一種特殊標記&#xff0c;用于在程序運行或編譯時提供元信息。 格式&#xff1a; 注解名(屬性名屬性值, 屬性名屬性值...)&#xff08;2&#xff…

docker安裝elasticsearch和kibana

elasticsearch版本和kibana版本需保持一致。這里我使用的都是8.18.2 安裝elasticsearch docker-compose.yml networks:es-net: external: true services:elasticsearch:container_name: es01deploy:resources:limits:cpus: 0memory: 0environment:- discovery.typesingle-no…

Python爬蟲實戰:研究sanitize庫相關技術

1. 引言 1.1 研究背景與意義 在當今數字化時代,互聯網已成為人們獲取信息、交流互動的重要平臺。隨著 Web 2.0 技術的發展,用戶生成內容 (UGC)、社交媒體嵌入、第三方插件等功能極大豐富了網頁的內容和交互性,但也帶來了嚴峻的安全挑戰。根據 Web 應用安全聯盟 (WAS) 的統…

c++ 學習(二、結構體)

目錄 一、結構體與const 二、結構體與class的區別 參考鏈接&#xff1a;69 結構體-結構體中const使用場景_嗶哩嗶哩_bilibili 一、結構體與const 調用函數的時候&#xff0c;希望這個結構體是可讀而不可寫的時候&#xff0c;傳指針&#xff0c;使用const修飾&#xff0c;方式…

機器學習開篇:算法分類與開發流程

種一棵樹最好的時間是十年前&#xff0c;其次是現在。 一、機器學習算法分類 機器學習&#xff08;ML&#xff0c;Meachine Learning&#xff09;是人工智能的核心領域&#xff0c;讓計算機從數據中學習規律并做出預測&#xff0c;本文簡單介紹機器學習的算法分類和開發流程。…

使用pyflink編寫demo并將任務提交到yarn集群

目錄 背景 一、pyflink安裝 二、編寫demo程序 三、提交yarn前準備 四、提交任務 五、踩坑記錄 1、提交任務時客戶端出現語法錯誤 2、提交任務時客戶端出現lzma包找不到 3、提交任務時客戶端出現“org.apache.flink.streaming.api.utils.PythonTypeUtils.getCollectionIn…

Vue 3 最基礎核心知識詳解

Vue3作為現代前端主流框架&#xff0c;是前后端開發者都應當掌握的核心技能。本篇文章將帶你了解vue3的基礎核心知識&#xff0c;適合學習與復習 一、Vue 3 應用創建 1.1 創建Vue應用的基本步驟 // main.js import { createApp } from vue // 1. 導入createApp函數 import …