掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
作者:Luga Lee 2023-09-27 23:23:09
云計(jì)算
云原生 今天我們來聊一下云原生生態(tài)排障大殺器-基于AI 的云原生終極工具:“K8sGPT”。隨著人工智能和機(jī)器學(xué)習(xí)的興起,企業(yè)和組織越來越多地尋找創(chuàng)新方法來利用這些技術(shù)來獲得競爭優(yōu)勢。 該

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),新平網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:新平等地區(qū)。新平做網(wǎng)站價(jià)格咨詢:18982081108
隨著人工智能和機(jī)器學(xué)習(xí)的興起,企業(yè)和組織越來越多地尋找創(chuàng)新方法來利用這些技術(shù)來獲得競爭優(yōu)勢。 該領(lǐng)域最強(qiáng)大的工具之一便是 K8sGPT,即基于 Kubernetes 的 GPT,它將 Kubernetes 編排的優(yōu)勢與 GPT 模型的高級(jí)自然語言處理能力結(jié)合在一起。
毫不夸張滴說,K8sGPT 是一種改變游戲規(guī)則的工具,有可能徹底改變許多行業(yè),從醫(yī)療保健和金融到電子商務(wù)和教育。它分析和理解自然語言數(shù)據(jù)的能力是無與倫比的,這使其成為希望從大量文本數(shù)據(jù)中獲得洞察力的企業(yè)和組織的寶貴工具。
先來看一張圖:
再來看一張圖
K8sGPT 是一個(gè)用于掃描 Kubernetes Cluster,以及用簡單的英語診斷和分類問題的工具。它將 SRE 經(jīng)驗(yàn)植入其分析儀,并幫助我們提取最有價(jià)值的相關(guān)信息,以及基于人工智能進(jìn)行豐富、完善,以支撐問題的解決。
通常來講,K8sGPT 使用一組分析儀,旨在識(shí)別和簡化Kubernetes Cluster 中診斷和分類問題的過程。這些分析儀具有 SRE 經(jīng)驗(yàn),有助于提供最準(zhǔn)確和相關(guān)的信息。
關(guān)于 K8sGPT 所內(nèi)置的分析儀,具體可參考如下所示:
此分析儀主要檢查 Pod 所關(guān)聯(lián)的相關(guān)配置,并檢查任何可能導(dǎo)致 Pod 崩潰或資源過度使用等問題。
此分析儀主要檢查 PVC 的配置信息,并檢查任何可能導(dǎo)致數(shù)據(jù)丟失或其他存儲(chǔ)相關(guān)問題的問題。
此分析儀主要檢查服務(wù)的參數(shù)配置情況,并檢查可能導(dǎo)致服務(wù)停機(jī)或性能下降的任何問題。
此分析儀主要檢查部署的相關(guān)配置情況,并檢查可能導(dǎo)致資源使用不足或過度使用的任何問題。
5、NodeAnalyzer:此分析儀檢查 Kubernetes Cluster 中的節(jié)點(diǎn)信息,并檢查與節(jié)點(diǎn)運(yùn)行狀況、利用率和容量相關(guān)的任何問題。
當(dāng)然,除了上述所列舉的核心分析儀外,在實(shí)際的業(yè)務(wù)場景中,仍然有一些有用的分析儀可供使用,例如:入口分析儀、定時(shí)任務(wù)分析儀、事件分析儀以及其他等等。
對(duì)于 AI 后端,K8sGPT 使用 OpenAI 作為默認(rèn)后端平臺(tái)。我們可以切換到其他后端,例如 Azure OpenAI 提供商或 FakeAI 提供商等。
基于這款劃時(shí)代的創(chuàng)新工具,K8sGPT 能夠幫我們做的事情還真不少,具體可參考如下所示:
K8sGPT 能夠幫助我分析來自 Kubernetes Cluster 的日志和其他關(guān)鍵數(shù)據(jù),以識(shí)別當(dāng)前系統(tǒng)環(huán)境所存在的潛在問題。從而可以幫助我們,特別是 SRE、平臺(tái)和 DevOps 工程師快速了解其集群中發(fā)生了什么,并找到問題的根本原因。
K8sGPT 能夠?qū)W⒂诜诸惡驮\斷集群中的問題,幫助我們消除了日志和多種工具的噪音,以便快速找到問題的根本原因。
通過使用 K8sGPT 定期分析 Kubernetes Cluster 的運(yùn)行狀況,使得我們能夠在導(dǎo)致停機(jī)或其他問題之前主動(dòng)識(shí)別和解決問題。
在實(shí)際的生產(chǎn)環(huán)境場景中,假設(shè)我們遇到特定資源的問題,例如,服務(wù)或部署,或者在特定命名空間中,K8sGPT 則能夠幫助我輕松地對(duì)特定資源或特定命名空間進(jìn)行故障排除。
在分析過程中,K8sGPT 檢索可能包含敏感信息的數(shù)據(jù),如 Pod 名稱、命名空間、資源名稱等,這些敏感信息有時(shí)被歸類為對(duì)特定群體甚至更具限制性的個(gè)人嚴(yán)格機(jī)密(C3、C4數(shù)據(jù)分類)。K8sGPT 為我們提供了一種功能,通過在發(fā)送到 AI 后端時(shí)將其屏蔽,并將其替換為密鑰,該密鑰可用于在解決方案返回給用戶時(shí)對(duì)數(shù)據(jù)進(jìn)行去匿名化,從而輕松匿名化這些數(shù)據(jù)。
通常而言,K8sGPT 可以作為 CLI(命令行界面)工具安裝,也可以作為 Kubernetes Cluster 中的 Operator 安裝。
1、基于 CLI 安裝:
[leonli@leonLab ~ ] % brew tap k8sgpt-ai/k8sgpt
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-services, skipping update!
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 1 tap (kubescape/tap).
You have 16 outdated formulae and 1 outdated cask installed.
==> Tapping k8sgpt-ai/k8sgpt
Cloning into '/opt/homebrew/Library/Taps/k8sgpt-ai/homebrew-k8sgpt'...
remote: Enumerating objects: 86, done.
remote: Counting objects: 100% (86/86), done.
remote: Compressing objects: 100% (85/85), done.
remote: Total 86 (delta 51), reused 2 (delta 0), pack-reused 0
Receiving objects: 100% (86/86), 18.77 KiB | 98.00 KiB/s, done.
Resolving deltas: 100% (51/51), done.
Tapped 1 formula (14 files, 37.7KB).
[leonli@leonLab ~ ] % brew install k8sgpt
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-services, skipping update!
Running `brew update --auto-update`...
==> Fetching k8sgpt-ai/k8sgpt/k8sgpt
==> Downloading https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.0/k8sgpt_Darwin_arm64.tar.gz
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/617152691/d9f59995-7f66-468b-9a21-2dd6a2f3c7ea?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKI
######################################################################## 100.0%
==> Installing k8sgpt from k8sgpt-ai/k8sgpt
/opt/homebrew/Cellar/k8sgpt/0.3.0: 6 files, 55.5MB, built in 3 seconds
==> Running `brew cleanup k8sgpt`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
[leonli@leonLab ~ ] % /opt/homebrew/Cellar/k8sgpt/0.3.0/bin/k8sgpt version
k8sgpt version 0.3.0
OK,Over 了。
通常情況下,若基于 Kubernetes Cluster 中安裝 K8sGPT,那么使用 k8sgpt-operator 進(jìn)行。
基于操作員模式,旨在在 Kubernetes Cluster 中啟用 K8sGPT。它將允許我們創(chuàng)建一個(gè)自定義資源,定義托管 K8sGPT 工作負(fù)載的行為和范圍。分析和輸出也可以配置,以便集成到現(xiàn)有工作流程中。
這種操作模式非常適合持續(xù)監(jiān)控我們所構(gòu)建的集群環(huán)境,并且可以與我們現(xiàn)有的監(jiān)控(如Prometheus和Alertmanager)進(jìn)行友好集成。
[leonli@leonLab ~ ] % helm repo add k8sgpt https://charts.k8sgpt.ai/
[leonli@leonLab ~ ] % helm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace
接下來,我們再簡要介紹一下運(yùn)行示例,具體如下所示:
(1)創(chuàng)建密鑰
[leonli@leonLab ~ ] % kubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key=$OPENAI_TOKEN -n k8sgpt-
operator-system
(2)應(yīng)用K8sGPT配置對(duì)象
[leonli@leonLab ~ ] % kubectl apply -f - << EOF
apiVersion: core.k8sgpt.ai/v1alpha1
kind: K8sGPT
metadata:
name: k8sgpt-sample
namespace: k8sgpt-operator-system
spec:
model: gpt-3.5-turbo
backend: openai
noCache: false
version: v0.3.0
enableAI: true
secret:
name: k8sgpt-sample-secret
key: openai-api-key
EOF
(3)查看部署結(jié)果
一旦應(yīng)用了自定義資源,將開始安裝 K8sGPT 組件,此時(shí),我們將能夠在幾分鐘后看到分析的結(jié)果對(duì)象,具體如下所示:
[leonli@leonLab ~ ] % kubectl get results -o json | jq .
{
"apiVersion": "v1",
"items": [
{
"apiVersion": "core.k8sgpt.ai/v1alpha1",
"kind": "Result",
"metadata": {
"creationTimestamp": "2023-04-26T09:45:02Z",
"generation": 1,
"name": "placementoperatorsystemplacementoperatorcontrollermanagermetricsservice",
"namespace": "default",
"resourceVersion": "108371",
"uid": "f0edd4de-92b6-4de2-ac86-5bb2b2da9736"
},
"spec": {
"details": "The error message means that the service in Kubernetes doesn't have any associated endpoints, which should have been labeled with \"control-plane=controller-manager\". \n\nTo solve this issue, you need to add the \"control-plane=controller-manager\" label to the endpoint that matches the service. Once the endpoint is labeled correctly, Kubernetes can associate it with the service, and the error should be resolved.",
安裝完成后,我們可以查看當(dāng)前 K8sGPT 組件的版本,具體如下所示:
[leonli@leonLab ~ ] % /opt/homebrew/Cellar/k8sgpt/0.3.0/bin/k8sgpt version
k8sgpt version 0.3.0我們發(fā)現(xiàn),當(dāng)前當(dāng)前 K8sGPT 為最新版,此時(shí),我們可以使用 “--help ” 命令進(jìn)行索引指示操作。
例如,基于 k8sgpt filters list 命令進(jìn)行操作,具體如下所示:
以及運(yùn)行以下命令來分析 Kubernetes Cluster 中的問題,具體可參考:
當(dāng)然,除了上述的命令行外,如下相關(guān)的命令行在日常的場景中應(yīng)用也較為廣泛,比如如下等等。
[leonli@leonLab ~ ] % k8sgpt generate && k8sgpt auth &&隨著企業(yè)和組織不斷尋找利用人工智能和機(jī)器學(xué)習(xí)的創(chuàng)新方法,K8sGPT 正在成為一種強(qiáng)大的工具,可以幫助他們實(shí)現(xiàn)目標(biāo)。 憑借其先進(jìn)的自然語言處理能力和 Kubernetes 編排的優(yōu)勢,K8sGPT 有可能改變我們分析和理解文本數(shù)據(jù)的方式,并推動(dòng)許多行業(yè)的創(chuàng)新。

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流