成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

當 Pod 崩潰后如何在報警信息中獲取對應的日志信息?

開源
Robusta 會自動執行部署應用程序后發生的所有事情。它有點像用于 DevOps 的 Zapier/IFTTT,強調的是預置的自動化,而不僅僅是“構建你自己的”。例如,當 Pod 崩潰的警報觸發時。

Robusta 是一個 Python 開發的用于 Kubernetes 故障排除的開源平臺。它位于你的監控堆棧(Prometheus、Elasticsearch 等)之上,并告訴你警報發生的原因以及如何修復它們。?

Robusta 包含三個主要部分,全部開源:

  1. 用于 Kubernetes 的自動化引擎
  2. 內置自動化以豐富和修復常見警報
  3. 其他一些手動故障排除工具

還有一些其他額外的可選組件:

  1. 包含 Robusta、Prometheus Operator 和默認 Kubernetes 警報的工具包
  2. 用于查看集群中所有警報、變更和事件的 Web UI。

Robusta 會自動執行部署應用程序后發生的所有事情。它有點像用于 DevOps 的 Zapier/IFTTT,強調的是預置的自動化,而不僅僅是“構建你自己的”。例如,當 Pod 崩潰的警報觸發時,下面的自動化程序也會將日志發送到 Slack:

triggers:
- on_prometheus_alert:
alert_name: KubePodCrashLooping
actions:
- logs_enricher: {}
sinks:
- slack

每個自動化程序都包含3個部分:

  • Triggers:何時運行(基于警報、日志、變更等)
  • Actions:要做什么操作(超過50個內置操作)
  • Sinks:將結果發送到何處(Slack等)

圖片

架構

Robusta 可以通過 Helm 進行安裝和管理。

自動化引擎

Robusta 的主要組件是自動化引擎,它作為兩個 Kubernetes Deployments 在集群內運行。

  • robusta-forwarder:連接到 APIServer 并監控 Kubernetes 的變化,將它們轉發給 robusta-runner。
  • robusta-runner:執行 playbooks。

圖片

打包的 Prometheus 堆棧(可選)

Robusta 包括一個可選的嵌入式 Prometheus 堆棧,根據最佳實踐預先配置了 Kubernetes 警報。如果已經在使用 kube-prometheus-stack,則可以將其指向 Robusta。

Web UI(可選)

有一個 Web UI,它提供一個單一的管理面板來監控跨多個集群的所有警報和 pod。

CLI(可選)

robusta 的命令行工具有兩個主要用途:

  1. 通過自動生成 Helm values 使安裝 Robusta 變得更容易。
  2. 手動觸發 Robusta 故障排除工作流程(例如從任何 Java pod 獲取 heap dump)。

它還具有開發 Robusta 本身有用的一些功能。

使用場景

Robusta 默認情況下會監控下面這些報警和錯誤,并會提供一些修復建議。

Prometheus Alerts

  • CPUThrottlingHigh - 顯示原因和解決方法。
  • HostOomKillDetected - 顯示哪些 Pods 被 killed 掉了。
  • KubeNodeNotReady - 顯示節點資源和受影響的 Pods。
  • HostHighCpuLoad - 顯示CPU使用情況分析。
  • KubernetesDaemonsetMisscheduled - 標記已知錯誤并建議修復。
  • KubernetesDeploymentReplicasMismatch - 顯示 deployment 的狀態。
  • NodeFilesystemSpaceFillingUp - 顯示磁盤使用情況。

其他錯誤

這些是通過監聽 APIServer 來識別的:

  • CrashLoopBackOff
  • ImagePullBackOff
  • Node NotReady

此外,WARNING 級別及以上的所有 Kubernetes 事件(kubectl get events)都會發送到 Robusta UI。

變更追蹤

默認情況下,對 Deployments、DaemonSets 和 StatefulSets 的所有變更都會發送到 Robusta UI,以便與 Prometheus 警報和其他錯誤相關聯。默認情況下,這些更改不會發送到其他接收器(例如 Slack),因為它們是垃圾郵件。

安裝

要在你的 K8s 集群中配置 Robusta,首先我們需要安裝 Robusta,并連接至少一個目的地(“接收器”)和至少一個源(“觸發器”)。

為了配置 robusta,我們需要安裝 Robusta CLI 工具,直接使用下面的命令即可安裝:

# 需要 Python3.7 或以上版本
pip install -U robusta-cli --no-cache

然后就可以生成 Robusta 配置文件,這會配置安裝 Slack 或其他集成工具,也非常推薦開啟 cloud UI 工具:

robusta gen-config

上面的命令默認情況下會讓我們配置 Slack,所以需要提前做好配置,提供一個 channel 用于接收相關信息,最后會生成一個名為 generated_values.yaml 的 Helm values 文件,如果在你的 Slack 頻道中收到了如下所示的信息則證明配置是正確的:

圖片

然后我們就可以使用 Helm 進行安裝了,首先添加 Helm Chart Repo:

helm repo add robusta https://robusta-charts.storage.googleapis.com && helm repo update

然后可以使用下面的命令進行安裝:

helm install robusta robusta/robusta -f ./generated_values.yaml \
--set clusterName=<YOUR_CLUSTER_NAME>

如果你使用的是 KinD 測試集群,則可以提供一個 isSmallCluster=tru 的參數,這樣可以減少相關資源:

helm install robusta robusta/robusta -f ./generated_values.yaml \
--set clusterName=<YOUR_CLUSTER_NAME> \
--set isSmallCluster=true

比如我這里是 KinD 的測試集群,安裝完成后會有如下所示的 Pod 列表:

$ kubectl get pods
NAME READY STATUS RESTARTS AGE
alertmanager-robusta-kube-prometheus-st-alertmanager-0 2/2 Running 3 (30m ago) 3h25m
prometheus-robusta-kube-prometheus-st-prometheus-0 2/2 Running 2 (34m ago) 4h21m
robusta-forwarder-579fb4b548-7xqq8 1/1 Running 1 (30m ago) 4h23m
robusta-grafana-797c64d5b4-2dbhl 3/3 Running 3 (30m ago) 4h23m
robusta-kube-prometheus-st-operator-7c5db9ccb9-gczlp 1/1 Running 1 (30m ago) 4h23m
robusta-kube-state-metrics-649fd7db9f-6sd8p 1/1 Running 1 (34m ago) 4h23m
robusta-prometheus-node-exporter-5426b 1/1 Running 1 (30m ago) 4h23m
robusta-prometheus-node-exporter-hx6r4 1/1 Running 1 (30m ago) 4h23m
robusta-prometheus-node-exporter-np4jj 1/1 Running 1 (30m ago) 4h23m
robusta-runner-9f4f56c8b-49s7p 1/1 Running 1 (30m ago) 3h48m

如果安裝的時候啟用了 Robusta 的 UI 功能,則可以在 Web UI 中看到當前集群的相關監控數據。

圖片

測試

默認情況下,Robusta 會在 Kubernetes pod 崩潰時發送通知,這里我們創建一個 crashing 的 pod 來進行測試,該測試應用的資源清單如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
name: crashpod
spec:
selector:
matchLabels:
app: crashpod
template:
metadata:
labels:
app: crashpod
spec:
containers:
- image: busybox
command: ["sh"]
args:
- "-c"
- "wget -O - https://gist.githubusercontent.com/odyssomay/1078370/raw/35c5981f8c139bc9dc02186f187ebee61f5b9eb9/gistfile1.txt 2>/dev/null; exit 125;"
imagePullPolicy: IfNotPresent
name: crashpod
restartPolicy: Always

直接應用該清單即可(或者執行 robusta demo 命令也可以),正常啟動后很快該 pod 就會崩潰:

$ kubectl get pods -A
NAME READY STATUS RESTARTS AGE
crashpod-64d8fbfd-s2dvn 0/1 CrashLoopBackOff 1 7s

一旦 pod 達到兩次重啟后,Slack 頻道就可以接收到有關崩潰 pod 的消息。

圖片

而且還可以看到完整的 pod 崩潰日志,這個對于監控報警是非常有意義的。同樣如果開啟了  Robusta UI,在 Web UI 頁面中也可以看到類似的消息。

圖片

自動化基礎

為了演示 Robusta 自動化是如何工作的,我們將配置一個在 Deployment 發生變化時發送 Slack 消息的自動化。

首先添加下面內容到 generated_values.yaml 文件中:

customPlaybooks:
- triggers:
- on_deployment_update: {}
actions:
- resource_babysitter:
omitted_fields: []
fields_to_monitor: ["spec.replicas"]

然后更新 Robusta:

helm upgrade robusta robusta/robusta --values=generated_values.yaml

更新后我們來更改一個 Deployment 的副本數:

kubectl scale --replicas NEW_REPLICAS_COUNT deployments/DEPLOYMENT_NAME

正常然后 Slack 的頻道就會收到對應的一條如下所示消息通知了:

圖片

如果啟用了 Robusta UI,所有的報警和變更也都會出現在 timeline 下面:

圖片

我們也可以點擊查看變更的內容:

圖片

當然我們還可以利用 Robusta 來做很多事情,可以自己來實現 playbook 操作,關于 Robusta 的更多高級使用可以參考官方文檔 https://docs.robusta.dev 了解更多信息。

責任編輯:姜華 來源: k8s技術圈
相關推薦

2020-05-15 07:00:00

Linux硬盤信息

2017-08-06 19:43:31

2024-03-11 16:13:26

C#編程開發

2018-06-24 15:23:05

軟件工程環境開發

2019-09-16 13:48:03

Linux管理日志

2021-04-01 11:28:44

C++ LinuxWindows

2011-06-02 09:51:05

Android 手機

2020-10-10 09:05:25

信息安全手機技術

2018-01-16 16:01:10

Google Chro手動位置

2009-02-16 20:16:52

Linux網卡硬件查看

2020-04-30 13:50:11

Linux網卡信息

2021-05-28 10:10:05

LinuxCPU機器學習

2009-11-13 10:53:54

ADO.NET Dat

2024-10-10 15:08:40

2009-03-30 14:30:52

2021-08-30 13:08:54

Linux實時監控日志文件

2022-10-28 16:42:04

Linuxcrontab日志

2009-02-16 18:27:09

2010-10-29 13:30:33

Oracle歸檔日志

2013-10-18 10:10:45

Linux漏洞代碼提權
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 操操操av | 日韩欧美一区二区三区 | 国产一区二区三区在线 | 免费欧美 | 四虎永久在线精品免费一区二 | 亚洲视频中文 | 亚洲综合二区 | 国产成人精品综合 | 亚洲一区二区三区四区在线观看 | 色接久久 | 免费成人高清 | 欧美中文字幕一区二区三区亚洲 | 亚洲精品久久久9婷婷中文字幕 | 国产精品久久久久久久久久久久 | 欧美一二三四成人免费视频 | 国产精品视频在线播放 | 欧美成人久久 | 国精产品一区二区三区 | 久久51| 天堂av在线影院 | 免费在线播放黄色 | 成人日韩av | 日韩精品视频在线 | 天久久| 91精品国产色综合久久不卡蜜臀 | 久久久久久久久蜜桃 | 久久久久中文字幕 | 久久97精品 | 久久精品国产亚洲一区二区 | 久久中文字幕电影 | 久久久久国产 | 国产精品国产三级国产aⅴ中文 | 久久国产精品一区二区三区 | 99re在线| 国产激情在线 | 在线免费国产视频 | 国产一区亚洲 | 在线欧美日韩 | 中文字幕乱码一区二区三区 | 97久久超碰 | 美女爽到呻吟久久久久 |