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

K8S 中實(shí)現(xiàn) AIOps 的 OpenAPI 項(xiàng)目介紹

云計(jì)算 云原生
AIOps 發(fā)展非常快。我們可以看到有很多新的項(xiàng)目出現(xiàn)。同時(shí),也會(huì)有不少的項(xiàng)目慢慢降低熱度而最終消失,但整體是向前快速發(fā)展,并成為云原生生態(tài)系統(tǒng)最為核心的組成部分之一。

背景

如今,AI 是各個(gè)領(lǐng)域,各個(gè)行業(yè)的熱門話題?;贙ubernetes的DevOps應(yīng)用開發(fā)場(chǎng)景也不例外。尤其是對(duì)那些追求自動(dòng)化,高效開發(fā),高效運(yùn)維的用戶而言。

因此,鑒于最近比較火的 ChatGPT ,與 Kubernetes 結(jié)合的相關(guān)項(xiàng)目也開始出現(xiàn)。下面也讓我們看看最近出現(xiàn)了哪些由OpenAI和ChatGPT支持的開源工具,使K8s的生態(tài)更豐富。

下面介紹的這些工具,大多數(shù)是為終端 (CLI) 使用而設(shè)計(jì)的,而不是圖形化。

使用AI對(duì)K8進(jìn)行故障排除

1. K8SGPT

  • “一個(gè)掃描 Kubernetes 集群、診斷和分類問(wèn)題的工具。它將 SRE 經(jīng)驗(yàn)編入其分析器,并通過(guò) AI 幫助提取并豐富相關(guān)的信息”
  • Website: http://k8sgpt.ai/
  • GitHub: https://github.com/k8sgpt-ai/k8sgpt
  • GH stars: ~3100
  • First commit: Mar 21, 2023
  • ~700 commits, 32 releases, ~40 contributors
  • Language: Go

k8sgpt 由 Alex Jones 發(fā)起,以 "讓每個(gè)人都擁有 Kubernetes 能力 "為目標(biāo),是同類項(xiàng)目中最著名、最突出的一個(gè)。

k8sgpt 目前主要通過(guò) CLI 實(shí)現(xiàn)其功能,通過(guò) CLI 可以對(duì)集群中的錯(cuò)誤進(jìn)行快速的診斷。 k8sgpt analyze 旨在查找并提示 Kubernetes 集群中出現(xiàn)的問(wèn)題。使用“分析器 (analyze)”來(lái)實(shí)現(xiàn)這一功能,它定義了每個(gè)K8s對(duì)象的邏輯對(duì)象以及它可能遇到的問(wèn)題。例如,Kubernetes Services 的分析器將檢查特定服務(wù)是否存,以及其端點(diǎn)是否就緒。

發(fā)現(xiàn)這樣的問(wèn)題本身并不是什么大事,但其中的邏輯并不簡(jiǎn)單。當(dāng)你要求 k8sgpt 解釋如何解決現(xiàn)有問(wèn)題時(shí),神奇的事情就發(fā)生了——只要執(zhí)行 k8sgpt analyze --explain 即可。該命令將要求 AI 能針對(duì)你的具體情況提供說(shuō)明,并顯示給你。這些說(shuō)明將包括執(zhí)行故障排除的操作,包括可以復(fù)制和粘貼來(lái)直接執(zhí)行 kubectl 命令。

圖片圖片

針對(duì)資源的名稱,k8sgpt 擁有隱藏功能(k8sgpt analyze 命令的--anonymize 選項(xiàng)),可以防止敏感數(shù)據(jù)被發(fā)送到 AI 系統(tǒng)。這對(duì)我們是很有幫助的。不過(guò)目前還沒(méi)有在所有分析器中實(shí)現(xiàn)。

如今,k8sgpt 為 Kubernetes 對(duì)象提供了很多內(nèi)置分析器,包括Node、Pod、PVC、ReplicaSets、Services、Events、Ingresses、StatefulSets、Deployments、CronJobs、NetworkPolicies,甚至 HPA 和 PDB。通過(guò)創(chuàng)建自定義分析器來(lái)擴(kuò)展不會(huì)太難。

另一個(gè)好處是k8sgpt不僅限于單個(gè)AI系統(tǒng)。默認(rèn)支持 OpenAI,讓我們?cè)L問(wèn) GPT-3.5-Turbo 和 GPT-4 語(yǔ)言模型。但是,我們也可以在其他AI提供商中進(jìn)行選擇,目前包括:

  • Azure OpenAI;
  • Cohere(這個(gè)是最近,7月20日添加的);
  • LocalAI — 與 OpenAI 兼容的 API 的本地模型(例如,您可以將其與 llama.cpp 和 ggml 一起使用);
  • FakeAI — 用于模擬 AI 系統(tǒng)行為而無(wú)需實(shí)際調(diào)用它。

K8sgpt 可以用于集成的 API場(chǎng)景,可以利用外部工具,調(diào)用它們的功能來(lái)解決 Kubernetes 問(wèn)題。目前唯一實(shí)現(xiàn)的集成是比較有名的開源安全掃描程序 Trivy。通過(guò) k8sgpt integration activate trivy 來(lái)啟用它(假設(shè)Trivy Operator 已經(jīng)安裝在集群中),您將擁有一個(gè)名為VulnerabilityReport新的k8sgpt過(guò)濾器。最后就可以通過(guò) k8sgpt analyze --filter VulnerabilityReport 訪問(wèn)它。

最后還有一項(xiàng) k8sgpt 的功能是,我們可以將其安裝為集群內(nèi)的 Kubernetes operator。為此,請(qǐng)使用此處提供的 Helm chart。安裝并應(yīng)用 k8sgpt 配置對(duì)象(kind:K8sGPT)后,該工具將對(duì)集群進(jìn)行分析,并將掃描結(jié)果存儲(chǔ)在 Results 對(duì)象中。這意味著您可以通過(guò)執(zhí)行 kubectl get results -o json | jq .來(lái)查看獲取結(jié)果。

圖片圖片

k8sgpt 在社區(qū)中帶來(lái)的極大的影響。k8sgpt 專注于 K8s 問(wèn)題的故障診斷,它包含了很多專為此目的設(shè)計(jì)的即用功能。此外,它還具有以下特點(diǎn):

  • 靈活,可利用不同的人工智能系統(tǒng);
  • 可擴(kuò)展,可以與自定義分析器和第三方工具集成。

2. Kubernetes ChatGPT bot

  • “A ChatGPT bot for Kubernetes issues”
  • GitHub: https://github.com/robusta-dev/kubernetes-chatgpt-bot
  • GH stars: ~900
  • First commit: Jan 10, 2023
  • ~40 commits, 7 contributors
  • Language: Python

該項(xiàng)目由 Robusta 創(chuàng)建,專注于通過(guò)將 AI 與 Slack 中顯示的警報(bào)集成來(lái)解決 Kubernetes 問(wèn)題。

要利用此機(jī)器人,您必須遵循以下要求:

  • 已經(jīng)或準(zhǔn)備在Prometheus(也支持VictoriaMetrics)和AlertManager之上安裝Robusta;
  • 使用Slack。

如果一切就緒,您就可以通過(guò)使用 webhook 將監(jiān)控告警信息發(fā)送到 Slack。該機(jī)器人會(huì)在 Slack 的警報(bào)中添加一個(gè) "Ask ChatGPT "按鈕。這樣,點(diǎn)擊該按鈕就可以查詢 AI(使用 OpenAI API 密鑰),并獲得其響應(yīng),從而指導(dǎo)您采取響應(yīng)的建議措施來(lái)解決導(dǎo)致該告警的問(wèn)題。

圖片圖片

就目前而言,它就是這么簡(jiǎn)單。不過(guò),作者建議可以通過(guò)向 AI 提供額外數(shù)據(jù)(如 Pod 日志和 kubectl get 事件輸出)來(lái)進(jìn)一步改進(jìn)其工作方式。

Kubectl AI驅(qū)動(dòng)的插件

1. kubectl-ai

  • “Kubectl plugin for OpenAI GPT”
  • GitHub: https://github.com/sozercan/kubectl-ai
  • GH stars: ~800
  • First commit: Mar 20, 2023
  • ~50 commits, 11 releases, ~10 contributors
  • Language: Go

這個(gè)項(xiàng)目是在 k8sgpt 前一天誕生的。不同的是,它使用不同方式將人工智能 與 Kubernetes 結(jié)合。

該項(xiàng)目是一個(gè)kubectl插件,使用OpenAI GPT生成和應(yīng)用Kubernetes清單。

下面是 README 提供的一個(gè)簡(jiǎn)單的示例:

kubectl ai "create an nginx deployment with 3 replicas"
? Attempting to apply the following manifest:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
Use the arrow keys to navigate: ↓ ↑ → ←
? Would you like to apply this? [Reprompt/Apply/Don't Apply]:
+   Reprompt
  ? Apply
    Don't Apply

通過(guò) "重新提示 "選項(xiàng),您可以更改特定參數(shù)來(lái)完善生成的清單。您可以一次生成幾個(gè)清單,這對(duì)相互關(guān)聯(lián)的對(duì)象(如部署和服務(wù))很有意義。如果建議匹配實(shí)際需要的時(shí)候,就可以輕松地將其應(yīng)用到集群中。

隨后,你還可以修改現(xiàn)有的 Kubernetes 對(duì)象,使用 kubectl ai 對(duì)其進(jìn)行縮放或更改其他參數(shù)。

至于AI,kubectl-ai 支持 OpenAI API、Azure OpenAI 服務(wù)和 LocalAI(7 月 31 日合并的最新新增功能)。默認(rèn)語(yǔ)言模型為 GPT-3.5-Turbo,也支持 GPT-4。

2. kubectl-gpt

  • “一個(gè) kubectl 插件,通過(guò)使用 GPT 模型從自然語(yǔ)言輸入生成 kubectl 命令”
  • GitHub: https://github.com/devinjeon/kubectl-gpt
  • GH stars: ~40
  • First commit: May 29, 2023
  • ~20 commits, 3 releases, 1 contributor
  • Language: Go

該插件引入了 kubectl gpt 命令,它的唯一功能就是在 Kubernetes 集群中實(shí)現(xiàn)你的需求(即以人類語(yǔ)言描述需求,然后實(shí)現(xiàn)功能)。以下是該插件文檔中的示例:

kubectl gpt "Print the creation time and pod name of all pods in all namespaces."
kubectl gpt "Print the memory limit and request of all pods"
kubectl gpt "Increase the replica count of the coredns deployment to 2"
kubectl gpt "Switch context to the kube-system namespace"

該工具,既可以輸出建議的結(jié)果,也可以直接對(duì) K8S 集群的對(duì)象進(jìn)行操作。無(wú)論哪種情況,它都會(huì)執(zhí)行命令,但首先會(huì)顯示該命令,讓你可以看到并確認(rèn)是否愿意繼續(xù)執(zhí)行。如果你愿意,也可以禁用這些功能(打印生成的命令/要求確認(rèn))。

Kubectl-gpt 需要一個(gè) OpenAI API 密鑰才能運(yùn)行。僅支持 GPT-3,默認(rèn)啟用 GPT-3.5-Turbo。可以使用 OpenAI GPT API 支持的任何人類語(yǔ)言。

該項(xiàng)目由一名獨(dú)立愛好者開發(fā),自 5 月底以來(lái)未進(jìn)行過(guò)任何更新。

適用于kubernetes的AIOps其他工具

此類別中描述的所有項(xiàng)目幾乎在同一時(shí)間啟動(dòng)。它們也有類似的想法,即在用戶操作 Kubernetes 集群時(shí)為其提供各種 AI 輔助功能。所有這些項(xiàng)目的統(tǒng)計(jì)數(shù)據(jù)也很相似:一個(gè)或幾個(gè)貢獻(xiàn)者、大約 100 個(gè)星級(jí)和數(shù)十次提交。讓我們來(lái)看看它們都提供了哪些功能以及有何不同。

1. kopilot

  • “您的 AI Kubernetes 專家助手”
  • GitHub: https://github.com/knight42/kopilot
  • GH stars: ~140
  • First commit: Mar 19, 2023
  • ~40 commits, 3 releases, 3 contributors
  • Language: Go

Kopilot 是后面三個(gè)項(xiàng)目中唯一一個(gè)用 Go 編寫的項(xiàng)目。它包括兩個(gè)功能:故障排除和審計(jì)。那么它們具體的功能是什么了?

  1. 假如,你有一個(gè) Pod 卡在 Pending 或 CrashLoopBackOff 狀態(tài)。這時(shí)候,命令 kopilot diagnose 派上用場(chǎng)。它將向AI尋求幫助,然后給出建議,并解釋為什么會(huì)發(fā)生這種情況。

圖片圖片

  1. 如果不確定部署配置是否完善? kopilot audit 命令使用類似的方式,將根據(jù)最佳實(shí)踐以及安全要求對(duì)其進(jìn)行檢查。

該工具將使用 OpenAI API 令牌和提供的問(wèn)題來(lái)進(jìn)行解答。官方 README 還表示,未來(lái)還將提供使用其他人工智能服務(wù)的選項(xiàng)。

遺憾的是,自四月初以來(lái),該項(xiàng)目還沒(méi)有任何提交,這顯然令人擔(dān)憂。

2. kopylot

  • “面向 Kubernetes 開發(fā)人員的 AI 驅(qū)動(dòng)助手”
  • GitHub: https://github.com/avsthiago/kopylot
  • GH stars: ~70
  • First commit: Mar 28, 2023
  • ~70 commits, 5 releases, 2 contributors
  • Language: Python

該工具有類似的審計(jì)和診斷功能,并通過(guò)提供 "chat "命令實(shí)現(xiàn)這一點(diǎn)。它能為你帶來(lái)聊天機(jī)器人體驗(yàn):你可以用英語(yǔ)詢問(wèn)一個(gè)特定的操作,這個(gè)操作會(huì)被轉(zhuǎn)換成一個(gè) kubectl 命令。如果它打印的命令看起來(lái)沒(méi)問(wèn)題,你就可以確認(rèn)執(zhí)行。就像我們?cè)?kubectl-gpt 中體驗(yàn)的那樣。

圖片圖片

Kopylot還提供了 "ctl "命令,這是kubectl的一個(gè)擴(kuò)展,允許你直接執(zhí)行任何命令。這項(xiàng)功能的目的似乎是讓 Kopylot 成為你使用 Kubernetes 時(shí)的最好的助手,而不僅僅是命令 kubectl客戶端。

目前,kopylot 僅支持 OpenAI API 密鑰,無(wú)法使用任何其他人類語(yǔ)言。它依賴于 text-davinci-003 GPT-3.5 模型(硬編碼),該模型被視為傳統(tǒng)模型。不過(guò)在項(xiàng)目的路線圖中提到了對(duì)使用其他 LLM 模型的支持。

但由于其最新版本的發(fā)布日期是 4 月 4 日,因此實(shí)現(xiàn)的可能性不大。

3. kube-copilot

  • “由OpenAI提供支持的Kubernetes Copilot”
  • GitHub: https://github.com/feiskyer/kube-copilot
  • GH stars: ~70
  • First commit: Mar 25, 2023
  • ~70 commits, 8 releases, 1 contributor
  • Language: Python

Kubernetes Copilot 將多工具功能集提升到了新的高度。除了 Kubernetes 故障排除、審計(jì)和執(zhí)行操作功能外,這個(gè)多工具還能根據(jù)你的提示生成清單(就像 kubectl-ai 所做的那樣)。

順便說(shuō)一下,kube-copilot 的審計(jì)功能比你想象的要強(qiáng)大。雖然該工具有 "analyze"(分析)命令來(lái)揭示 K8s 資源中可能存在的問(wèn)題(與 kopilot audit 相同),但它也有 "audit"(審計(jì))命令。后者利用 Trivy 掃描儀專門查找 Pod 可能存在的安全問(wèn)題。

kube-copilot 的另一個(gè)特點(diǎn)是它同時(shí)提供命令 CLI 和 Web UI。Web UI 非常簡(jiǎn)單,對(duì)某些用戶來(lái)說(shuō)可能仍是一個(gè)非常喜歡的功能。

圖片圖片

最后要提到的 CLI 功能是,可以使用 Google 搜索。也許有些問(wèn)題用這種方式比用 ChatGPT 更好解決。不過(guò)在我看來(lái),這并不是 K8s 相關(guān)工具最重要的功能。

至于 AI 支持,kube-copilot 可與 OpenAI API 密鑰或 Azure OpenAI 服務(wù)配合使用。它允許你使用 GPT-3.5 和 GPT-4 模型。

盡管該工具是由一個(gè)人開發(fā)的,但它的代碼提交情況比較良好。不過(guò),目前既沒(méi)有公開的路線圖,也沒(méi)有任何問(wèn)題可以揭示該工具將如何發(fā)展。

其他

還有很多基于 OpenAI 的 Kubernetes 工具和服務(wù),下面會(huì)簡(jiǎn)單介紹下。

Kubeshop 的 Botkube 是一個(gè)消息傳遞機(jī)器人(即 ChatOps),用于監(jiān)控和調(diào)試 Slack、Mattermost、Discord 或 Microsoft Teams 中的 Kubernetes 集群。它最近添加的 Doctor plugin(https://docs.botkube.io/usage/executor/doctor/) 以兩種不同的方式與人工智能連接:1)直接向聊天機(jī)器人詢問(wèn)問(wèn)題;2) 使用“獲取幫助”按鈕,該按鈕顯示在錯(cuò)誤事件的正下方。機(jī)器人將回復(fù)有關(guān)您的問(wèn)題或特定問(wèn)題的 AI 生成的建議。啟用此 Botkube 插件需要 OpenAI API 密鑰。

圖片圖片

metaKube 的 KubeGPT 不是一個(gè) CLI 工具,而是一個(gè)在線聊天,可以在 Web 瀏覽器中與 AI 討論 Kubernetes。就像常規(guī)的 ChatGPT 一樣,它可以回答問(wèn)題(例如,Kubernetes 架構(gòu)或一些最佳實(shí)踐),并為您生成特定的 YAML 清單。

圖片圖片

實(shí)際上,它還能幫我解決其他技術(shù)問(wèn)題。例如,它同時(shí)提供有關(guān) Nomad 的信息。它甚至還指導(dǎo)我安裝 Ubuntu Linux。不過(guò),它核心點(diǎn)還是在 Kubernetes,因此從未來(lái)形式上看,它應(yīng)該不會(huì)對(duì)其他請(qǐng)求提供太多幫助。這項(xiàng)服務(wù)目前處于測(cè)試階段。

MagicHappen 是一個(gè) PoC operator,“僅用于娛樂(lè)和實(shí)驗(yàn)”。它定義了一個(gè)新的 CRD ( kind: MagicHappens ),允許您用人類語(yǔ)言描述任務(wù)——例如,“創(chuàng)建命名空間并進(jìn)行部署”。當(dāng)操作員收到包含此描述的 YAML 清單時(shí),它會(huì)將其發(fā)送到 OpenAI 以獲取相關(guān)的 YAML,并將此生成的清單應(yīng)用于群集。請(qǐng)注意,自 4 月以來(lái),沒(méi)有對(duì)該項(xiàng)目進(jìn)行新的提交。

Kube or Fake 是一個(gè)有趣的在線服務(wù),它為您提供了由 ChatGPT 生成的五個(gè) Kubernetes 術(shù)語(yǔ)。通過(guò)猜謎的方式找到準(zhǔn)確的服務(wù)。

最后,各種知名的工具最近也紛紛嵌入了由 OpenAI 支持的功能。實(shí)際上,這些工具已經(jīng)有很多了,本文也只是簡(jiǎn)單列出了幾項(xiàng),并不包含所有。下面也是一些按照時(shí)間列出了一些:

  • ARMO Platform:基于 Kubescape,可根據(jù)您以人類語(yǔ)言指定的請(qǐng)求生成自定義控件,然后由 GPT-3 處理。
  • KubeVela Workflow:允許使用 OpenAI API 驗(yàn)證 Kubernetes 資源(2023 年 4 月)
  • Monokle:實(shí)現(xiàn)了人工智能輔助 YAML 資源創(chuàng)建,可以利用人工智能根據(jù)提示和驗(yàn)證策略生成 YAML 清單。(2023 年 6 月)
  • Portainer:在其商業(yè)版 v2.18.3 中引入了對(duì) ChatGPT 的實(shí)驗(yàn)性支持,可就如何部署應(yīng)用程序提供即用型答案。(2023年7月)
  • Argo CD:Akuity平臺(tái)上有一個(gè)人工智能助理。它由OpenAI API提供支持,可幫助檢測(cè)某些問(wèn)題和分析日志,執(zhí)行您要求的操作,并回答您的問(wèn)題。(2023年7月)

總結(jié)

AIOps 給我們帶來(lái)了巨大的變革。雖然還有不少改進(jìn)的地方,但開源生態(tài)系統(tǒng)已經(jīng)為 Kubernetes 管理員和用戶提供了很多高效的使用方式:

  • K8SGPT是最成功的項(xiàng)目,因?yàn)樗吮姸嗟呢暙I(xiàn)者和用戶。目前專注于故障排除,它非常靈活,擴(kuò)展性也很高,所以也很希望社區(qū)能快速擴(kuò)大。
  • 如果你想在 Slack 中通過(guò)AI 生成如何解決 K8S 中的故障問(wèn)題的解決建議 ,從而簡(jiǎn)化監(jiān)控警報(bào)的處理過(guò)程,那么 Robusta 的 ChatGPT 機(jī)器人和 Kubeshop 的 Botkube 都是不錯(cuò)的 ChatOps 式選擇。
  • 如果需要自動(dòng)化 YAML 清單生成,請(qǐng)嘗試 kubectl-ai 或 kube-copilot。

目前,AIOps 發(fā)展非??臁N覀兛梢钥吹接泻芏嘈碌捻?xiàng)目出現(xiàn)。同時(shí),也會(huì)有不少的項(xiàng)目慢慢降低熱度而最終消失,但整體是向前快速發(fā)展,并成為云原生生態(tài)系統(tǒng)最為核心的組成部分之一。

原文: https://blog.palark.com/chatgpt-tools-for-kubernetes/

責(zé)任編輯:武曉燕 來(lái)源: 新鈦云服
相關(guān)推薦

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2023-11-06 07:16:22

WasmK8s模塊

2022-04-29 10:40:38

技術(shù)服務(wù)端K8s

2020-07-17 08:40:47

K8SServicePOD

2023-09-06 08:12:04

k8s云原生

2024-07-15 18:20:18

2022-07-04 11:28:14

RancherK8s集群云計(jì)算

2022-06-01 09:38:36

KubernetesPod容器

2024-01-26 14:35:03

鑒權(quán)K8sNode

2024-08-30 09:21:28

2020-05-12 10:20:39

K8s kubernetes中間件

2022-09-05 08:26:29

Kubernetes標(biāo)簽

2023-01-12 11:31:00

K8sToken

2021-12-08 07:55:53

K8S WebhookKubernetes

2025-04-01 00:06:50

JavaK8sSpring

2023-08-03 08:36:30

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

2023-05-25 21:38:30

2023-08-04 08:19:02

2022-11-24 14:32:00

云原生K8S

2024-07-22 13:43:31

Kubernetes容器
點(diǎn)贊
收藏

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