一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于K8S的服務(wù)質(zhì)量QoS你知道多少?

馬哥Linux運維 ? 來源:ZHDYA ? 2023-05-22 10:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、K8S中的應(yīng)用服務(wù)質(zhì)量(QoS)

服務(wù)質(zhì)量(QoS)類是Kubernetes的概念,它確定Pod的調(diào)度和驅(qū)逐優(yōu)先級

Kubelet使用它來管理驅(qū)逐pod的順序,以及使用高級CPU管理策略允許更復(fù)雜的pod調(diào)度決策。

QoS由Kubernetes本身分配給Pod。但是,DevOps可以通過處理Pod內(nèi)各個容器的資源請求和限制來控制分配給容器的QoS類。

二、QoS級別

Guaranteed:POD中所有容器(包含初始化容器)都必須統(tǒng)一設(shè)置了limits,并且設(shè)置參數(shù)都一致;

Burstable:POD中有容器設(shè)置了 內(nèi)存 或 CPU request;

BestEffort:POD中的所有容器都沒有指定CPU和內(nèi)存的requests和limits;

2.1、Guaranteed

對于 QoS 類為 Guaranteed 的 Pod:

Pod 中的每個容器,包含初始化容器,必須指定內(nèi)存 請求和 內(nèi)存 限制,并且兩者要相等。

Pod 中的每個容器,包含初始化容器,必須指定 CPU 請求和 CPU 限制,并且兩者要相等。

apiVersion: v1
kind: Pod
metadata:
name: qos-demo
spec:
containers:
- name: qos-demo
 image: nginx
 resources:
  limits:
   memory: "500Mi"
   cpu: "700m"
  requests:
   memory: "500Mi"
   cpu: "700m"

驗證:

# kubectl describe po qos-demo
···
QoS Class:          Guaranteed

注意點:

如果容器指定了自己的內(nèi)存limits,但沒有指定內(nèi)存requests,Kubernetes 會自動為它指定與內(nèi)存limits匹配的內(nèi)存requests。同樣,如果容器指定了自己的 CPU limits,但沒有指定 CPU requests,Kubernetes 會自動為它指定與 CPU limits匹配的 CPU requests;

2.2、Burstable

如果滿足下面條件,將會指定 Pod 的 QoS 類為 Burstable:

Pod 不符合 Guaranteed QoS 類的標(biāo)準(zhǔn);

Pod 中至少一個容器具有內(nèi)存 CPU requests;

apiVersion: v1
kind: Pod
metadata:
name: qos-demo2
spec:
containers:
- name: qos-demo2
 image: nginx
 resources:
  limits:
   memory: "500Mi"
  requests:
   memory: "200Mi"

驗證:

# kubectl describe po qos-demo2
···
QoS Class:          Burstable

2.3、BestEffort

對于 QoS 類為 BestEffort 的 Pod,Pod 中的容器必須沒有設(shè)置內(nèi)存和 CPU 限制或請求。

apiVersion: v1
kind: Pod
metadata:
name: qos-demo3
spec:
containers:
- name: qos-demo3
 image: nginx

三、QoS優(yōu)先級

3種QoS優(yōu)先級從有低到高(從左向右):

BestEffort pods -> Burstable pods -> Guaranteed pods

四、驅(qū)逐原理

可壓縮資源:CPU

在壓縮資源部分已經(jīng)提到CPU屬于可壓縮資源,當(dāng)pod使用超過設(shè)置的limits值,pod中進程使用cpu會被限制,但不會被kill。

不可壓縮資源:內(nèi)存

4.1、節(jié)點OOM時如何處理Guaranteed, Burstable 和 BestEffort Pods?

如果節(jié)點在Kubelet可以回收之前耗盡了內(nèi)存,即節(jié)點發(fā)生了oom,則oom_killer會根據(jù)其oom_score終止容器。

對于 “Guaranteed” Pod中的容器,oom_score_adj 為 “ -998”;

對于 “BestEffort” Pod中的容器,其為“ 1000”;

Burstable Pod中的容器,值為“ min(max(2,1000-(1000 * memoryRequestBytes)/ machineMemoryCapacityBytes),999” )”。

oom_killer首先終止QoS等級最低,且超過請求資源最多的容器。這意味著會優(yōu)先從Burstable中選擇占用資源請求過多的容器進行驅(qū)逐;

五、最佳實踐

1、按照應(yīng)用類型進行分類:核心應(yīng)用(core)/ 常規(guī)應(yīng)用(nomarl)/ 附加應(yīng)用(extral)

2、核心應(yīng)用:Guaranteed / 常規(guī)應(yīng)用:Burstable / 附加應(yīng)用:BestEffort

3、集群節(jié)點分為:核心應(yīng)用節(jié)點 / 常規(guī)應(yīng)用節(jié)點 / 附加應(yīng)用節(jié)點

4、調(diào)度策略:

核心應(yīng)用:可以采用nodeAffinity的prefer調(diào)度策略調(diào)度到核心節(jié)點;

常規(guī)應(yīng)用:可以采用nodeAffinity的硬親和調(diào)度策略調(diào)度到常規(guī)節(jié)點;

附加應(yīng)用:可以采用nodeAffinity的硬親和調(diào)度策略調(diào)度到附加節(jié)點;





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11080

    瀏覽量

    217084
  • QoS
    QoS
    +關(guān)注

    關(guān)注

    1

    文章

    137

    瀏覽量

    45423

原文標(biāo)題:關(guān)于K8S的服務(wù)質(zhì)量QoS你知道多少?

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    什么是 K8S,如何使用 K8S

    Kubernetes(簡稱K8S)是一個用于管理容器化應(yīng)用程序的開源平臺。以下是關(guān)于K8S及其使用方法的介紹: 一、什么是 K8S 核心特點 自動化容器編排:自動處理容器的部署、擴展
    發(fā)表于 06-25 06:45

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解決方案與選型對比

    。Logtail保證多次加載同一容器配置的冪等性??偨Y(jié)阿里云日志服務(wù)提供的解決方案完美地解決了k8s上日志采集難的問題,從之前需要多個軟件、幾十個部署流程精簡到1款軟件、3個操作即可輕松上云,讓廣大用戶真正體驗到一個字:爽,從此日志運維人員的生活
    發(fā)表于 02-28 12:49

    服務(wù)質(zhì)量QoS協(xié)議的研究與分析

    本文主要介紹了服務(wù)質(zhì)量QoS)的協(xié)議和結(jié)構(gòu),對其原理和功能做了一定的分析,涉及了QoS 的四種應(yīng)用方法和模型,分析Internet/RSVP、區(qū)分服務(wù)Differ、MPLS、SBM
    發(fā)表于 09-07 15:50 ?8次下載

    如何利用K8S全面擁抱微服務(wù)架構(gòu)?

    K8S是第一個將“一切以服務(wù)為中心,一切圍繞服務(wù)運轉(zhuǎn)”作為指導(dǎo)思想的創(chuàng)新型產(chǎn)品,它的功能和架構(gòu)設(shè)計自始至終都遵循了這一指導(dǎo)思想,構(gòu)建在K8S上的系統(tǒng)不僅可以獨立運行在物理機、虛擬機集群
    的頭像 發(fā)表于 10-08 15:59 ?2.7w次閱讀

    OpenStack與K8s結(jié)合的兩種方案的詳細介紹和比較

    OpenStack與K8S結(jié)合主要有兩種方案。一是K8S部署在OpenStack平臺之上,二是K8S和OpenStack組件集成。
    的頭像 發(fā)表于 10-14 09:38 ?2.8w次閱讀

    關(guān)于K8s最詳細的解析

    一個目標(biāo):容器操作;兩地三中心;四層服務(wù)發(fā)現(xiàn);五種Pod共享資源;六個CNI常用插件;七層負載均衡;八種隔離維度;九個網(wǎng)絡(luò)模型原則;十類IP地址;百級產(chǎn)品線;千級物理機;萬級容器;相如無億,K8s有億:億級日服務(wù)人次。
    的頭像 發(fā)表于 04-08 13:55 ?7708次閱讀
    <b class='flag-5'>關(guān)于</b><b class='flag-5'>K8s</b>最詳細的解析

    Docker不香嗎為什么還要用K8s

    。 關(guān)于 K8s 的基本概念我們將會圍繞如下七點展開: Docker 的管理痛點 什么是 K8s? 云架構(gòu) 云原生 K8s 架構(gòu)原理 K8s
    的頭像 發(fā)表于 06-02 11:56 ?3697次閱讀

    簡單說明k8s和Docker之間的關(guān)系

    ,但最近發(fā)現(xiàn)k8s概念較多,命令也有些不夠用了,故想借此機會寫點東西,更全面認識并使用k8s。本篇文章目的:讓更全面了解k8s概念,以及學(xué)到在工作中常用的操作。整體更偏向于原理和應(yīng)用
    的頭像 發(fā)表于 06-24 15:48 ?3739次閱讀

    K8S集群服務(wù)訪問失敗怎么辦 K8S故障處理集錦

    問題1:K8S集群服務(wù)訪問失?。?? ? 原因分析:證書不能被識別,其原因為:自定義證書,過期等。 解決方法:更新證書即可。 問題2:K8S集群服務(wù)訪問失敗? curl: (7) Fa
    的頭像 發(fā)表于 09-01 11:11 ?1.6w次閱讀
    <b class='flag-5'>K8S</b>集群<b class='flag-5'>服務(wù)</b>訪問失敗怎么辦 <b class='flag-5'>K8S</b>故障處理集錦

    K8S(kubernetes)學(xué)習(xí)指南

    K8S(kubernetes)學(xué)習(xí)指南
    發(fā)表于 06-29 14:14 ?0次下載

    服務(wù)質(zhì)量QoS(Quality of Service)在網(wǎng)絡(luò)中的重要性

    QoS(Quality of Service)即服務(wù)質(zhì)量,在網(wǎng)絡(luò)業(yè)務(wù)中可以通過保證傳輸?shù)膸挕⒔档蛡鬏敃r延、降低數(shù)據(jù)丟包率以及時延抖動等措施來提高服務(wù)質(zhì)量。QoS是一套用于管理和提高網(wǎng)
    的頭像 發(fā)表于 03-16 09:24 ?2433次閱讀
    <b class='flag-5'>服務(wù)質(zhì)量</b><b class='flag-5'>QoS</b>(Quality of Service)在網(wǎng)絡(luò)中的重要性

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes簡稱K8s,是一個開源的,用于管理云平臺中多個主機上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效(powerful
    發(fā)表于 07-19 13:14 ?1326次閱讀

    什么是K3sK8s?K3sK8s有什么區(qū)別?

    Kubernetes,通??s寫為 K8s,是領(lǐng)先的容器編排工具。該開源項目最初由 Google 開發(fā),幫助塑造了現(xiàn)代編排的定義。該系統(tǒng)包括了部署和運行容器化系統(tǒng)所需的一切。
    的頭像 發(fā)表于 08-03 10:53 ?8490次閱讀

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地與公有云分別建立K8s集群,并確保網(wǎng)絡(luò)連接。接著,配置kubeconfig文件連接兩集群,并安裝云服務(wù)插件以實現(xiàn)資源互通。然后,編寫Deployment文件部署應(yīng)用,并使用kubectl命令
    的頭像 發(fā)表于 11-07 09:37 ?505次閱讀

    k8s和docker區(qū)別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器化技術(shù)的兩大流行工具。Docker關(guān)注構(gòu)建和打包容器,適用于本地開發(fā)和單主機管理;而K8s則提供容器編排和管理平臺,適用于多主機或云環(huán)境,具備自動化
    的頭像 發(fā)表于 12-11 13:55 ?673次閱讀