自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇了解 K8s 日志采集與服務(wù)質(zhì)量 QoS

開發(fā) 架構(gòu)
集群規(guī)模,SideCar沒有限制,DaemonSet模式實(shí)際支持的應(yīng)用數(shù)與場景有關(guān)系,大體范圍在幾百到千級別。

?引言

應(yīng)用容器化后的日志采集該選擇何種方式?該如何權(quán)衡?不同的服務(wù)質(zhì)量QoS對Node的穩(wěn)定性影響是怎么樣的,本文就捋一捋這個(gè)。主要內(nèi)容有:

  • 日志采集三種方式
  • 日志采集方式權(quán)衡
  • Pod服務(wù)質(zhì)量QoS

一、日志采集三種方式

K8s日志采集方式主要有原生方式、DaemonSet采集方式、Sidecar采集方式。

原生方式,日志寫入標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤流,可通過 kubectl logs 命令查看輸出,如下圖。

圖片

通過日志輪替工具logrotate實(shí)現(xiàn)日志分割、壓縮、刪除、以及創(chuàng)建新的日志文件。

DaemonSet采集方式,在k8s的node節(jié)點(diǎn)上運(yùn)行日志代理,由日志代理將日志采集到后端服務(wù)。

圖片

SideCar采集方式,在一個(gè)POD中運(yùn)行一個(gè)單獨(dú)的日志采集代理容器,用于采集容器的日志。

圖片

官方也說明了SideCar會帶來更多的資源損耗,日志沒有被kubelet接管,不能使用kubectl logs訪問日志。

小結(jié):基于官方提供的采集方式,是應(yīng)該選擇DaemonSet還是SideCar呢?如何權(quán)衡?

官方日志管理說明文檔:

https://kubernetes.io/zh-cn/docs/concepts/cluster-administration/logging/

二、日志采集方式權(quán)衡

資源占用 ,SideCar采集模式每個(gè)POD運(yùn)行一個(gè)日志代理容器,DaemonSet則是Node運(yùn)行一個(gè)日志代理。

因此,DaemonSet會更充分共享資源,SideCar模式會占用更多的資源。

運(yùn)維難度,如果業(yè)務(wù)POD內(nèi)已經(jīng)擁有多種輔助容器比如安全、鏈路等,再增加日志采集容器,POD中容器數(shù)量將會增加。

因此,眾多SideCar容器要比DaemonSet增加更多的運(yùn)維投入。

隔離情況,DaemonSet的日志代理,可以配置不同應(yīng)用的采集路徑配置,SideCar一對一單向定制。

因此,總的來說SideCar隔離性更好些。

集群規(guī)模,SideCar沒有限制,DaemonSet模式實(shí)際支持的應(yīng)用數(shù)與場景有關(guān)系,大體范圍在幾百到千級別。

因此,集群規(guī)模更多日志代理采集的能力是否跟得上的問題。

升級問題,DaemonSet模式日志采集升級業(yè)務(wù)無感知,SideCar模式的升級可能導(dǎo)致業(yè)務(wù)POD的重建,POD的重建還是對業(yè)務(wù)有感知。

因此,DaemonSet模式對業(yè)務(wù)更為透明無感。

如果想SideCar采集模式業(yè)務(wù)無感,可以使用OpenKruise提供的SidecarSet管理sidecar容器。

SidecarSet負(fù)責(zé)注入和升級k8s集群的sideCar容器,對業(yè)務(wù)無感。

小結(jié):在日志采集代理能力能滿足需求的情況下,DaemonSet模式在運(yùn)維復(fù)雜性、資源節(jié)省、升級方面更好的選擇。

三、Pod服務(wù)質(zhì)量QoS

K8s使用服務(wù)質(zhì)量QoS來決定Pod的調(diào)度和驅(qū)逐策略。

QoS分為三類,Guaranteed、Burstable、BestEffort。

Guaranteed類的POD,該P(yáng)OD中的每個(gè)容器內(nèi)存和CPU必須指定,而且request和limit必須相等。

Burstable類的POD,POD里至少一個(gè)容器的內(nèi)存或者CPU請求不滿足Guaranteed要求,request和limit設(shè)置的不相同。

BestEffort類的POD, 容器沒有設(shè)置內(nèi)存和CPU的request或limit。

優(yōu)先級Guaranteed>Burstable>BestEffort。

K8s資源回收驅(qū)逐策略,當(dāng)Node上的內(nèi)存或者CPU耗盡時(shí),為了保護(hù)Node會驅(qū)逐POD,優(yōu)先級低的POD會優(yōu)先被驅(qū)逐。

日志采集類filebeat、ilogtail等類型的POD適合使用Burstable或者BestEffort。

小結(jié):為了Node的穩(wěn)定性,日志采集類的POD設(shè)置為BestEffort類型的QoS更為安全。?

官方Pod 的服務(wù)質(zhì)量文檔:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/

責(zé)任編輯:武曉燕 來源: 瓜農(nóng)老梁
相關(guān)推薦

2024-02-01 09:48:17

2023-11-06 01:17:25

主機(jī)容器選項(xiàng)

2021-10-28 14:30:19

K8S Kubernetes數(shù)據(jù)持久化

2013-09-22 09:50:57

QoS服務(wù)質(zhì)量QoS

2021-04-29 08:43:17

k8s可觀測性Metrics

2022-03-22 08:52:40

KubernetesCPU內(nèi)存資源

2021-11-08 07:48:48

K8SKubernetes 集群

2018-03-08 16:16:33

網(wǎng)絡(luò)切片服務(wù)質(zhì)量QoS

2022-02-25 11:16:51

故障運(yùn)維Nginx

2021-03-08 09:15:46

日志Filebeat運(yùn)維

2022-09-27 07:00:58

QoS服務(wù)帶寬

2023-08-03 08:36:30

Service服務(wù)架構(gòu)

2021-07-02 08:51:28

Vite線程項(xiàng)目

2023-08-29 10:27:32

2022-10-26 07:39:36

MVCC數(shù)據(jù)庫RR

2022-12-19 08:14:30

注解開發(fā)配置

2021-05-20 06:57:16

RabbitMQ開源消息

2021-04-23 08:35:16

k8s故障檢測

2020-02-19 19:26:27

K8S開源平臺容器技術(shù)

2022-04-22 13:32:01

K8s容器引擎架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號