k8s之高級調度

1. CronJob

在 k8s 中周期性運行計劃任務,與 linux 中的 crontab 相同
注意點:CronJob 執行的時間是 controller-manager 的時間,所以一定要確保 controller-manager 時間是準確的,另外 cronjobapiVersion: batch/v1
kind: CronJob
metadata:name: hello
spec:concurrencyPolicy: Allow # 并發調度策略:Allow 允許并發調度,Forbid:不允許并發執行,Replace:如果之前的任務還沒執行完,就直接執行新的,放棄上一個任務failedJobsHistoryLimit: 1 # 保留多少個失敗的任務successfulJobHistoryLimit: 3 # 保留多少個成功的任務suspend: false # 是否掛起任務,若為 true 則該任務不會執行
#  startingDeadlineSeconds: 30 # 間隔多長時間檢測失敗的任務并重新執行,時間不能小于 10schedule: "* * * * *" # 調度策略jobTemplate:spec:template:spec:containers:- name: helloimage: busybox:1.28imagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- date; echo Hello from the Kubernetes clusterrestartPolicy: OnFailure

2.?初始化容器 InitContainer

在真正的容器啟動之前,先啟動 InitContainer,在初始化容器中完成真實容器所需的初始化操作,完成后再啟動真實的容器。相對于 postStart 來說,首先 InitController 能夠保證一定在 EntryPoint 之前執行,而 postStart 不能,其次 postStart 更適合去執行一些命令操作,而 InitController 實際就是一個容器,可以在其他基礎容器環境下執行更復雜的初始化功能。在 pod 創建的模板中配置 initContainers 參數:
spec:initContainers:- image: nginximagePullPolicy: IfNotPresentcommand: ["sh", "-c", "echo 'inited;' >> ~/.init"]name: init-test

3.污點和容忍

3.1 污點

污點:是標注在節點上的,當我們在一個節點上打上污點以后,k8s 會認為盡量不要將 pod 調度到該節點上,除非該 pod 上面表示可以容忍該污點,且一個節點可以打多個污點,此時則需要 pod 容忍所有污點才會被調度該節點。# 為節點打上污點
kubectl taint node k8s-master key=value:NoSchedule# 移除污點
kubectl taint node k8s-master key=value:NoSchedule-# 查看污點
kubectl describe no k8s-master污點的影響:
NoSchedule:不能容忍的 pod 不能被調度到該節點,但是已經存在的節點不會被驅逐
NoExecute:不能容忍的節點會被立即清除,能容忍且沒有配置 tolerationSeconds 屬性,則可以一直運行,設置了 tolerationSeconds: 3600 屬性,則該 pod 還能繼續在該節點運行 3600 秒
NoSchedule:如果不能容忍該污點,那么 Pod 就無法調度到該節點上NoExecute:?如果 Pod 不能忍受這類污點,Pod 會馬上被驅逐。
如果 Pod 能夠忍受這類污點,但是在容忍度定義中沒有指定 tolerationSeconds, 則 Pod 還會一直在這個節點上運行。
如果 Pod 能夠忍受這類污點,而且指定了 tolerationSeconds, 則 Pod 還能在這個節點上繼續運行這個指定的時間長度。

3.2 容忍

容忍:是標注在 pod 上的,當 pod 被調度時,如果沒有配置容忍,則該 pod 不會被調度到有污點的節點上,只有該 pod 上標注了滿足某個節點的所有污點,則會被調度到這些節點# pod 的 spec 下面配置容忍
tolerations:
- key: "污點的 key"value: "污點的 value"offect: "NoSchedule" # 污點產生的影響operator: "Equal" # 表是 value 與污點的 value 要相等,也可以設置為 Exists 表示存在 key 即可,此時可以不用配置 valueEqual:比較操作類型為 Equal,則意味著必須與污點值做匹配,key/value都必須相同,才表示能夠容忍該污點Exists:
容忍與污點的比較只比較 key,不比較 value,不關心 value 是什么東西,只要 key 存在,就表示可以容忍。

?4.親和力

4.1 節點親和力 NodeAffinity

節點親和力:進行 pod 調度時,優先調度到符合條件的親和力節點上

RequiredDuringSchedulingIgnoredDuringExecution:硬親和力,即支持必須部署在指定的節點上,也支持必須不部署在指定的節點上PreferredDuringSchedulingIgnoredDuringExecution:
軟親和力:盡量部署在滿足條件的節點上,或盡量不要部署在被匹配的節點上
4.1.1 應用
匹配類型: In、NotIn、Exists、DoesNotExist、Gt、Ltyaml配置文件:apiVersion: v1
kind: Pod
metadata:name: with-node-affinity
spec:affinity: # 親和力配置nodeAffinity: # 節點親和力requiredDuringSchedulingIgnoredDuringExecution: # 節點必須匹配下方配置nodeSelectorTerms: # 選擇器- matchExpressions: # 匹配表達式- key: topology.kubernetes.io/zone # 匹配 label 的 keyoperator: In # 匹配方式,只要匹配成功下方的一個 value 即可values:- antarctica-east1 # 匹配的 value- antarctica-west1 # 匹配的 valuepreferredDuringSchedulingIgnoredDuringExecution: # 節點盡量匹配下方配置- weight: 1 # 權重[1,100],按照匹配規則對所有節點累加權重,最終之和會加入優先級評分,優先級越高被調度的可能性越高preference:matchExpressions: # 匹配表達式- key: another-node-label-key # label 的 keyoperator: In # 匹配方式,滿足一個即可values:- another-node-label-value # 匹配的 value
#      - weight: 20......containers:- name: with-node-affinityimage: pause:2.0

4.2? PodAffinity?

Pod 親和力:將與指定 pod 親和力相匹配的 pod 部署在同一節點。

RequiredDuringSchedulingIgnoredDuringExecution:必須將應用部署在一塊PreferredDuringSchedulingIgnoredDuringExecution:盡量將應用部署在一塊yaml配置apiVersion: v1
kind: Pod
metadata:name: with-pod-affinity
spec:affinity: # 親和力配置podAffinity: # pod 親和力配置requiredDuringSchedulingIgnoredDuringExecution: # 當前 pod 必須匹配到對應條件 pod 所在的 node 上- labelSelector: # 標簽選擇器matchExpressions: # 匹配表達式- key: security # 匹配的 keyoperator: In # 匹配方式values: # 匹配其中的一個 value- S1topologyKey: topology.kubernetes.io/zonepodAntiAffinity: # pod 反親和力配置preferredDuringSchedulingIgnoredDuringExecution: # 盡量不要將當前節點部署到匹配下列參數的 pod 所在的 node 上- weight: 100 # 權重podAffinityTerm: # pod 親和力配置條件labelSelector: # 標簽選擇器matchExpressions: # 匹配表達式- key: security # 匹配的 keyoperator: In # 匹配的方式values:- S2 # 匹配的 valuetopologyKey: topology.kubernetes.io/zonecontainers:- name: with-pod-affinityimage: pause:2.0

?4.3?PodAntiAffinity

Pod 反親和力:根據策略盡量部署或不部署到一塊

RequiredDuringSchedulingIgnoredDuringExecution:
不要將應用與之匹配的部署到一塊podAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: securityoperator: Invalues:- S1topologyKey: topology.kubernetes.io/zonePreferredDuringSchedulingIgnoredDuringExecution: 盡量不要將應用部署到一塊

?4.4?身份認證與權限

未完待續...

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

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

相關文章

ChatGPT 應用開發(一)ChatGPT OpenAI API 免代理調用方式(通過 Cloudflare 的 AI Gateway)

前言 開發 ChatGPT 應用,我覺得最前置的點就是能使用 ChatGPT API 接口。首先我自己要能成功訪問,這沒問題,會魔法就可以本地調用。 那用戶如何調用到我的應用 API 呢,我的理解是通過用戶能訪問到的中轉服務器向 OpenAI 發起訪問…

成都工業學院Web技術基礎(WEB)實驗四:CSS3布局應用

寫在前面 1、基于2022級計算機大類實驗指導書 2、代碼僅提供參考,前端變化比較大,按照要求,只能做到像,不能做到一模一樣 3、圖片和文字僅為示例,需要自行替換 4、如果代碼不滿足你的要求,請尋求其他的…

Echarts 環形圖配置 環形半徑(radius) 修改文本位置(label) 南丁格爾圖(roseType)

數據 const data [{ name: 華為, value: 404 },{ name: 小米, value: 800 }, { name: 紅米, value: 540 }, { name: 蘋果, value: 157 }]設置南丁格爾圖 roseType: area設置標簽位置 label: {show: true,position: center // center 中間展示 outside 外側展示 inside 內側…

C語言動態內存經典筆試題分析

C語言動態內存經典筆試題分析 文章目錄 C語言動態內存經典筆試題分析1. 題目一2. 題目二3. 題目三4. 題目四 1. 題目一 void GetMemory(char *p){p (char *)malloc(100);} void Test(void){char *str NULL;GetMemory(str);strcpy(str, "hello world");printf(str)…

Qt設置類似于qq登錄頁面

頭文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QWindow> #include <QIcon> #include <QLabel> #include <QMovie> #include <QLineEdit> #include <QPushButton>QT_BEGIN_NAMESPACE namespace Ui { class…

中國移動公網IP申請過程

一、動機 由于從事互聯網行業10年&#xff0c;一直從事移動端&#xff08;前端&#xff09;開發工作&#xff0c;未曾深入了解過后端技術&#xff0c;以至于工作10年也不算進入互聯網的門。 所以準備在自己家用設備上搭建各種場景的服務器&#xff08;云服務對個人來說成本偏…

數據分析基礎之《numpy(2)—ndarray屬性》

一、ndarray的屬性 1、屬性方法 屬性名字屬性解釋ndarray.shape數組維度的元組&#xff08;形狀&#xff09;ndarray.ndim數組維數ndarray.size數組中的元素數量ndarray.itemsize一個數組元素的長度&#xff08;字節&#xff09;ndarray.dtype數組元素的類型使用方法 數組名.…

大數據技術8:StarRocks極速全場景MPP數據庫

前言&#xff1a;StarRocks原名DorisDB&#xff0c;是新一代極速全場景MPP數據庫。StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 連接的多種源。一是通過這個 CDC 或者說通過這個 ETL 的方式去灌到這個 StarRocks 里面&#xff1b;二是還可以去直接的和這些老的 kafka 或…

阿里云服務器跨域問題解決方案

首先看一下原始代碼&#xff1a; Bean public CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration new CorsConfiguration();corsConfiguration.addAllowedOrigin("http://…

spark rdd和dataframe的區別,結合底層邏輯

在 Apache Spark 中&#xff0c;RDD&#xff08;Resilient Distributed Dataset&#xff09;和 DataFrame 是處理數據的兩種不同的抽象。 RDD (Resilient Distributed Dataset) 底層實現&#xff1a; RDD 是 Spark 最初的數據抽象&#xff0c;表示一個分布式的、不可變的數據集…

03-詳解Nacos注冊中心的配置步驟和功能

Nacos注冊中心 服務注冊到Nacos Nacos是SpringCloudAlibaba的組件也遵循SpringCloud中定義的服務注冊和服務發現規范,因此使用Nacos與使用Eureka對于微服務來說并沒有太大區別 主要差異就是依賴不同,服務地址不同 第一步: 在父工程cloud-demo模塊的pom.xml文件中引入Spring…

nlkt中BigramAssocMeasures.pmi()方法的傳參和使用

這個問題找遍全網沒看到詳細的介紹&#xff0c;最后用讀代碼數學公式的方法才理解怎么用。 BigramAssocMeasures.pmi 作用&#xff1a;計算x和y的互信息&#xff08;互信息是什么我就不科普啦&#xff09; 這里有個誤區剛開始我以為是計算兩個詞之間的依賴程度&#xff0c;但…

flstudio21.3.2304高級版水果編曲音樂軟件

flstudio高級版是一款適用于廣泛領域的音頻編輯軟件。它支持多通道混音器和VST插件&#xff0c;包括數百種樂器和效果插件。它還為您提供了一個樂譜編輯器&#xff0c;需要對不同樂器的節奏進行必要的編輯。Flstudio具有許多內置電子合成聲音&#xff0c;可提供更廣泛的電子聲音…

自動駕駛的汽車構造

1、傳動系統 連接發動機和驅動車輪之間的動力傳動裝置&#xff0c;分為傳統動力傳動、純電動力傳動、混合動力傳動 傳動系統中幾個重要的部件 1&#xff09;離合器 直接與發動機相連的部件&#xff0c;通過摩擦、液體介質、磁力傳遞扭矩 作用&#xff1a; 保證平穩起步&a…

【Spring教程25】Spring框架實戰:從零開始學習SpringMVC 之 SpringMVC入門案例總結與SpringMVC工作流程分析

目錄 1.入門案例總結2. 入門案例工作流程分析2.1 啟動服務器初始化過程2.2 單次請求過程 歡迎大家回到《Java教程之Spring30天快速入門》&#xff0c;本教程所有示例均基于Maven實現&#xff0c;如果您對Maven還很陌生&#xff0c;請移步本人的博文《如何在windows11下安裝Mave…

Spring 面向切面編程(AOP)

一、aop介紹 &#xff08;一&#xff09;前言 一般的后端開發流程是縱向開發&#xff0c;就是controller&#xff08;控制層&#xff09;->service&#xff08;業務層&#xff09;->mapper&#xff08;數據持久層&#xff09;&#xff0c;Spring采用動態代理技術可以在…

Wireshark添加自定義協議解析

最終效果如下&#xff1a; 參考文檔&#xff1a;https://mika-s.github.io/topics/ 此參考文檔中7個例子教我們如何編寫lua腳本去識別我們自定義的協議 安裝Wireshark https://www.wireshark.org/上下載安裝包安裝即可。我的安裝路徑是D:\Install\Wireshark&#xff0c;在W…

Leetcode—389.找不同【簡單】

2023每日刷題&#xff08;五十五&#xff09; Leetcode—389.找不同 實現代碼 char findTheDifference(char* s, char* t) {int len strlen(s);int len2 len 1;int a[26] {0};int b[26] {0};if(len 0) {return t[0];}for(int i 0; i < len; i) {int idx s[i] - a;…

HTML的img常見應用屬性

1、src&#xff1a;指定圖像的URL&#xff0c;即圖像的路徑。 2、alt&#xff1a;指定圖像的替代文本&#xff0c;當圖像無法顯示時&#xff0c;會顯示替代文本。 3、width&#xff1a;指定圖像的寬度&#xff0c;可以使用像素值或百分比。 4、height&#xff1a;指定圖像的…

【設計模式--創建型--建造者模式】

建造者模式 建造者模式概述結構結果優缺點使用場景 將上述案例改為鏈式調用結果 建造者模式 概述 將一個復雜對象的構建與表示分離&#xff0c;使得同樣的構建過程可以創建不同的表示。 分離了部件的構建&#xff08;由Builder來負責&#xff09;和裝配&#xff08;由Direct…