云計算-K8s 核心組件之CronJob、RBAC、HPA ,LimitRange、DaemonSet、nodeSelector如何作戰?

目錄

1.CronJob管理

2.RBAC管理

3.HPA管理

4.健康檢查

5.LimitRange管理

6.DaemonSet管理

7.nodeSelector管理


簡介

1. CronJob(定時任務控制器)
按固定時間間隔(類似 Linux cron)自動觸發一次性任務(Job)。適用于周期性操作如日志備份、數據同步或定時清理。
2. RBAC(基于角色的訪問控制)
實現細粒度的權限管理,限制用戶/服務賬戶對資源的讀寫范圍。遵循最小權限原則,確保集群安全性。
3.HPA(Horizontal Pod Autoscaler,水平自動擴縮)
根據指標動態調整 Pod 副本數量,應對流量波動。支持 CPU/內存利用率、自定義指標或外部監控系統數據作為觸發條件。當指標超過閾值時增加實例數,低于下限則縮減,維持性能與成本平衡。
4. 健康檢查
確保容器持續正常運行并準備好接收流量
5. LimitRange(資源限額范圍)
為命名空間內的容器設置硬性資源上下限約束,防止單個 Pod 過度占用集群資源。可分別限制最小/最大請求值和限制值。
6. DaemonSet(守護進程集)
確保每個符合條件的節點上都運行一份該應用的副本,用于集群級監控、日志采集等全局性任務。天然適合需要主機級訪問的場景。節點新增時自動部署,刪除節點時自動回收對應 Pod。
7. NodeSelector(節點選擇器)
手動指定 Pod 調度到帶有特定標簽的節點上,實現初步的定位控制。屬于強制綁定策略,優先級高于默認調度算法
8. 親和性(Affinity)
提供更靈活的調度策略,分為兩類:
NodeAffinity(節點親和性): 根據節點標簽進行軟性優先選擇或硬性要求
PodAntiAffinity(互斥反親和性): 使同一應用的不同實例盡量分散在不同節點上提高可用性

匯總表

模塊核心功能典型應用場景配置層級
CronJob定時觸發一次性任務日志備份、報表生成Workload
RBAC權限管控多租戶隔離、安全審計Security
HPA自適應調整副本數A/B測試流量突增、秒殺活動Autoscaling
健康檢查保障服務可靠性API網關存活監測、數據庫連接池維護PodSpec
LimitRange資源配額兜底保護防止NoisyNeighbor干擾其他業務NamedSpaceLevel
DaemonSet全集群覆蓋部署Daemon、Agent類組件Workload
NodeSelector強制節點過濾GPU加速任務綁定特定機型PodSpec
Affinity智能調度優化跨機房災備、故障域隔離PodSpec
1.CronJob管理

在master節點/root目錄下編寫yaml文件date.yaml,具體要求如下:

(1)CronJob名稱:date;

(2)命名空間:default;

(3)基于時間的調度規則:每分鐘啟動一次;

(4)容器名稱:hello;鏡像:busybox。 restartPolicy: OnFailure

??apiVersion: batch/v1beta1kind: CronJobmetadata:name: datenamespace: defaultspec:schedule: '*/1 * * * *'jobTemplate:metadata:spec:template:metadata:spec:containers:- image: busybox:latestname: hellorestartPolicy: OnFailure按定義的時間規則(如每分鐘)自動創建Job,執行后生成一次性任務Pod并退出
2.RBAC管理

在master節點/root目錄下編寫yaml文件clusterrolebinding.yaml,具體要求如下:

(1)ClusterRoleBinding名稱:read-secrets-global;

(2)綁定集群角色secret-reader,允許“manager”組中的任何用戶讀取任意命名空間中secrets。

?apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:name: secret-reader ?rules: ?#保存此ClusterRole的所有策略規則- apiGroups: ?# "" 指定核心 API 組 ?  - apiGroups: [""] 這樣寫也可以- ""resources: ?#可以操作的資源- secretsverbs: ?#操作權限- get- list- watch----------------apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:name: read-secrets-global roleRef:apiGroup: rbac.authorization.k8s.io ?#apigroup是被引用資源的組kind: ClusterRole ?##正在引用的資源類型(role或clusterrole)name: secret-reader ?subjects:- apiGroup: rbac.authorization.k8s.io ? kind: Group ?name: manager ?#用于綁定的集群中的用戶名

用戶/服務賬戶嘗試操作資源時,API Server會校驗其權限,拒絕越權操作(如非manager組訪問Secret)

3.HPA管理

在master節點/root目錄下編寫yaml文件deployment-hpa.yaml,具體要求如下:

(1)HPA名稱:deployment-hpa;

(2)命名空間:default;

(3)基于deployment進行伸縮,副本數伸縮范圍:1--10;

(4)期望每個Pod的CPU和內存使用率為50%。

?apiVersion: autoscaling/v1kind: HorizontalPodAutoscalermetadata:name: deployment-hpanamespace: defaultspec:maxReplicas: 10 ?minReplicas: 1 ?scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: deployment-hpatargetCPUUtilizationPercentage: 50 ? #CPU

持續監控Pod指標(CPU/內存),當利用率超過50%時自動擴容,低于閾值時縮容

4.健康檢查

在master節點/root目錄下編寫yaml文件liveness_tcp.yaml,具體要求如下:

(1)Pod名稱:liveness-tcp;

(2)命名空間:default;

(3)鏡像:nginx;端口:80;

(4)使用liveness-tcp方式向Pod IP的80/tcp端口發起連接請求;

(6)啟動后延時30秒開始運行檢測;

(7)每隔3秒執行一次liveness probe。

?apiVersion: v1kind: Podmetadata:name: liveness-tcp ? namespace: default ? spec:containers:- image: nginx:latest ? imagePullPolicy: IfNotPresentlivenessProbe: ?#用于檢測節點是否處于存活(健康)狀態,如有異常會直接重啟podtcpSocket: ?port: 80 ?initialDelaySeconds: 30 ?#延時30秒開始運行檢測periodSeconds: 3 ?#每隔3秒執行一次liveness probename: nginx ? ? ports: ? - containerPort: 80 ? 

每3秒檢測80端口,若連續失敗則重啟Pod,確保服務可用性(30秒初始延遲避免誤判)

5.LimitRange管理

在master節點/root目錄下編寫yaml文件mem-limit-range.yaml,具體要求如下:

(1)LimitRange名稱:mem-limit-range;

(2)命名空間:default;

(3)默認容器能使用資源的最大值為512Mi內存、2000m CPU;

(4)默認容器的資源請求為256Mi內存、500m CPU;

(5)請求上限為800Mi內存、3000m CPU;

(6)請求下限為100Mi內存,300m CPU;

(7)內存和CPU超售的比率均為2。

?apiVersion: v1kind: LimitRangemetadata:name: mem-limit-rangenamespace: defaultspec:limits:- default: ?memory: 512Mi cpu: 2000MdefaultRequest:memory: 256Mi ? cpu: 500M max:memory: 800Mi ?cpu: 3000M ?min:memory: 100Mi cpu: 300M ?maxLimitRequestRatio: ? ?memory: 2 cpu: 2 type: Container ? #應用此限制的資源類型

創建Pod時強制校驗資源請求值,拒絕不符合范圍的請求(如內存申請>800Mi會直接失敗)

6.DaemonSet管理

在master節點/root目錄下編寫yaml文件daemonset.yaml,具體要求如下:

(1)DaemonSet名稱:fluentd;

(2)命名空間:default;

(3)鏡像:quay.io/fluentd_elasticsearch/fluentd:v2.5.2;?

(4)容器名稱:fluentd-container01;

(5)將Pod調度到非污點的節點上。

?apiVersion: apps/v1kind: DaemonSetmetadata:name: fluentd namespace: defaultspec:revisionHistoryLimit: 10 ?#保留回滾的舊歷史記錄數selector:matchLabels: ?#控制pod所需的標簽必須一致 ? ? ? ? ? ?app: fluentd ?template:metadata:labels:app: fluentd spec:containers:- image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2 ?imagePullPolicy: IfNotPresentname: fluentd-container01 ?nodeSelector:kubernetes.io/os: linuxrestartPolicy: AlwaysschedulerName: default-schedulertolerations: ? #指定污點節點集群中新增Node時自動部署Fluentd Pod,節點刪除時同步清理,保證每個節點有且只有一個副本
7.nodeSelector管理

為node節點打上標簽“disktype=ssd”,然后在master節點/root目錄下編寫yaml文件nodeselector.yaml,具體要求如下:

(1)Pod名稱:nginx-nodeselector;

(2)命名空間:default;

(3)鏡像:nginx;

(4)調度該Pod到標簽為“disktype=ssd”的節點上。

 ?#給node節點打上標簽[root@master k8s]# kubectl label nodes node disktype=ssdkubectl get nodes node --show-labels | grep ssd 查詢標簽-----------------------------------------------------------------apiVersion: v1kind: Podmetadata: name: nginx-nodeselector namespace: defaultspec:containers:- image: nginx:latest name: nginx-nodeselectorimagePullPolicy: IfNotPresent nodeSelector: ? #選擇器,匹配節點標簽disktype: ssd ?

Pod只會被調度到帶有disktype=ssd標簽的節點,若無可調度的節點則處于Pending狀態

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

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

相關文章

數據分析學習總結之實例練習(雙十一淘寶美妝)

本次通過對雙十一淘寶美妝數據的分析實踐,我系統掌握了數據處理與分析的完整流程,從數據初步認知到深度挖掘,再到可視化呈現與結論提煉,收獲頗豐。以下是具體的學習總結:一、數據初步了解:奠定分析基礎在分…

如何評估一個需求的業務價值

要科學、全面地評估一個需求的業務價值,核心在于建立一個多維度的、從戰略到財務、從客戶到風險的“價值羅盤”,并運用這套羅盤,對需求進行系統性的、數據驅動的量化與定性分析。一套成熟的價值評估體系,其構建必須涵蓋五大關鍵視…

day38_2025-08-12

一、 圖像數據的介紹 1.1 灰度圖像 從這里開始我們進入到了圖像數據相關的部分,也是默認你有之前復試班計算機視覺相關的知識,但是一些基礎的概念我仍然會提。 昨天我們介紹了minist這個經典的手寫數據集,作為圖像數據,相較于結構…

Kubernetes1.28-單Master集群部署

一、 服務器環境及初始化 1、架構分析 集群角色主機名操作系統IP地址masterk8s-masterOpenEuler24.03192.168.166.128nodek8s-node1OpenEuler24.03192.168.166.129nodek8s-node2OpenEuler24.03192.168.166.130 2、初始化 所有節點都需要初始化! 2.1、清空Iptal…

使用pyqt5實現可勾選的測試用例界面

目錄 界面 代碼 python有哪些自動化測試的庫和html的報告的庫可以和這個軟件結合使用的 **一、自動化測試核心庫** **二、HTML報告生成庫** **三、其他實用工具** **與您的工具結合建議** 參考 界面 代碼 import sys import time import random from PyQt5.QtWidgets import (…

C語言變量的聲明和定義有什么區別?

定義:定義:為變量分配地址和存儲空間聲明:不分配地址和存儲空間一個變量可以在多個地方聲明,但是只在一個地方定義。加入extern修飾的是變量的聲明,說明此變量將在文件或在文件后面部分定義。1.變量聲明作用&#xff1…

imx6ull-驅動開發篇20——linux互斥體實驗

目錄 實驗程序編寫 修改設備樹文件 LED 驅動修改 mutex.c 測試mutexApp.c Makefile 文件 運行測試 在之前的文章里,我們學習了:驅動開發篇16——信號量與互斥體。 本講實驗里,我們來使用互斥體mutex實現 LED 燈互斥訪問的功能&#x…

[4.2-2] NCCL新版本的register如何實現的?

文章目錄1->2->31. ncclRegisterP2pIpcBuffer2. ncclIpcLocalRegisterBuffer(..., 1, 0,...)3. ipcRegisterBuffer(..., regRecord,..., isLegacyIpc)4. p2pProxyRegister()1->2->3 1. ncclRegisterP2pIpcBuffer 在enqueue.cc內的調用是: NCCLCHECK(…

在idea中git切換分支,但是我的文件沒add,沒commit

這是一個很悲傷的故事,我朋友一個下午寫了4個小時的代碼,差不多10多個類,都在切換分支的時候。IDEA發現有沖突,然后就要resolve conflict,發現自己不知道怎么操作,就點了abort & rollback。然后所有代碼…

GPFS api

一、核心命令行 API(mm 命令集) GPFS 最基礎且常用的接口是命令行工具集(以mm為前綴),用于文件系統的創建、配置、管理和監控。這些命令可直接在終端執行,也可通過腳本(如 Shell、Python&#…

虛擬機一站式部署Claude Code 可視化UI界面

前言 最近,強大的 AI 編碼助手 Claude Code 在開發者社區中迅速走紅,憑借其出色的代碼生成和理解能力贏得了廣泛贊譽。然而,其純粹基于命令行的交互方式,對于許多習慣了圖形化界面的開發者,尤其是新手而言&#xff0c…

網站IP被劫持?三步自建防護盾

一、劫持檢測實戰(Python腳本) import requests import socket import ssldef check_hijacking(domain):try:# 獲取真實DNS解析real_ip socket.gethostbyname(domain)# 本地發起請求驗證response requests.get(f"https://{domain}", timeout…

SQL Server從入門到項目實踐(超值版)讀書筆記 23

第三篇 核心應用篇在本章中,將通過案例示范學習SQL Server數據庫的一些核心應用。例如,SQL Server視圖的使用、游標的應用、存儲過程的應用、索引的應用、觸發器的應用、SQL Server事務與鎖的應用等。學完本篇,讀者將對SQL Server數據庫的管理…

功能測試中常見的面試題-一

一、基礎概念與理論題什么是軟件測試?它的目的是什么?回答: 軟件測試是通過人工或自動化手段,運行或評估軟件系統,以驗證它是否滿足規定的需求、識別實際結果與預期結果之間的差異,并評估軟件產品質量的過程…

LINUX88 變量:命令定義;普通數組定義(復);declare -i /-x

問題 [codesamba ~]$ array3(ls axel-2.4) [codesamba ~]$ echo $array3 API [codesamba ~]$ ls axel-2.4 API CHANGES conn.o gui README tcp.o axel conf.c COPYING http.c ru.mo text.c axel.1 …

數字IC后端PPA優化| Timing一致性調整方法和Module Region規劃方法

Q1:直播課經常講到一致性,這個一致性的話一般是指place,CTS和PT的derating time,uncertainty和transition嗎,我大概知道innovus的uncertainty設置要比PT里面高一點,但具體設計時這幾部分的大小應該是一個什么樣的關系或…

電子電氣架構 --- 軟件定義汽車的驅動和挑戰

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

機器學習——10 支持向量機SVM

1 支持向量機 1.1 故事引入看下圖左邊,藍色和紅色的點混在一起,這就像一堆數據,沒辦法用一條簡單的直線把它們分開。再看下圖右邊,有一條直線把藍色和紅色的點分開,這就是SVM在找的“決策邊界”,它能把不同…

若以微服務部署踩坑點

windows docker desktop 部署nacos mysql1、docker部署nacosdocker pull nacos/nacos-server:v2.4.3docker啟動命令 docker run --name nacos -d -p 8848:8848 -p 9848:9848 -p 9849:9849 --privilegedtrue --network bridge -e MODEstandalone -e SPRING_DATASOURCE_PLATFORMm…

Lua基礎+Lua數據類型

Lua基礎 Lua介紹 特點:輕量、小巧。C語言開發。開源。 設計的目的:嵌入到應用程序當中,提供靈活的擴展和定制化的功能。 luanginx,luaredis。 環境安裝 windows上安裝lua: 檢查機器上是否有lua C:\Users\cpf>lua lu…