本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 K8sGPT 和 Amazon Bedrock 整合實作採用 AI 技術的 Kubernetes 診斷和故障診斷
Ishwar Chauthaiwale, Muskan . 和 Amazon Web Services Prafful Gupta
Summary
此模式示範如何透過將 K8sGPT 與 Amazon Bedrock 上提供的 Anthropic Claude v2 模型整合,來實作採用 AI 技術的 Kubernetes 診斷和故障診斷。解決方案透過安全的堡壘主機架構,為 Kubernetes 叢集問題提供自然語言分析和修復步驟。透過將 K8sGPT Kubernetes 專業知識與 Amazon Bedrock 進階語言功能結合,DevOps 團隊可以快速識別和解決叢集問題。透過這些功能,可以將平均解決時間 (MTTR) 減少高達 50%。
這種雲端原生模式利用 Amazon Elastic Kubernetes Service (Amazon EKS) 進行 Kubernetes 管理。模式會透過適當的 AWS Identity and Access Management (IAM) 角色和網路隔離實作安全最佳實務。此解決方案對於想要簡化 Kubernetes 操作並在 AI 協助下增強故障診斷功能的組織特別有用。
先決條件和限制
先決條件
AWS 帳戶 具有適當許可的作用中
Amazon EKS 叢集
在 Amazon Bedrock 上存取 Anthropic Claude 2 模型
具有必要安全群組設定的堡壘主機
已安裝
K8sGPT
限制
K8sGPT 分析受限於 Claude v2 模型的內容視窗大小。
Amazon Bedrock API 速率限制會根據您的帳戶配額套用。
有些 AWS 服務 完全無法使用 AWS 區域。如需區域可用性,請參閱AWS 依區域的服務
。如需特定端點,請參閱服務端點和配額,然後選擇服務的連結。
產品版本
Amazon EKS 1.31 版或更新版本
Amazon Bedrock 上的 Claude 2 模型
K8sGPT 0.4.2 版或更新版本
架構
下圖顯示 中使用與 Amazon Bedrock 整合的 K8sGPT 進行 AI 型 Kubernetes 診斷的架構 AWS 雲端。

架構顯示下列工作流程:
開發人員透過安全連線至堡壘主機來存取環境。此 Amazon EC2 執行個體做為安全進入點,並包含 K8sGPT 命令列界面 (CLI) 安裝和必要的組態。
使用特定 IAM 角色設定的堡壘主機會建立與 Amazon EKS 叢集和 Amazon Bedrock 端點的安全連線。K8sGPT 已安裝並設定在堡壘主機上,以執行 Kubernetes 叢集分析。
Amazon EKS 會管理 Kubernetes 控制平面和工作者節點,提供 K8sGPT 分析的目標環境。此服務會跨虛擬私有雲端 (VPC) 內的多個可用區域執行,這有助於提供高可用性和彈性。Amazon EKS 透過 Kubernetes API 提供操作資料,實現全面的叢集分析。
K8sGPT 會將分析資料傳送至 Amazon Bedrock,提供 Claude v2 基礎模型 (FM) 以進行自然語言處理。服務會處理 K8sGPT 分析,以產生人類可讀的說明,並根據已識別的問題提供詳細的修補建議。Amazon Bedrock 以無伺服器 AI 服務的形式運作,具有高可用性和可擴展性。
注意
在此工作流程中,IAM 會透過角色和政策控制元件之間的存取,管理堡壘主機、Amazon EKS 和 Amazon Bedrock 互動的身分驗證。IAM 實作最低權限原則,並在整個架構中啟用安全的跨服務通訊。
自動化和擴展
K8sGPT 操作可以透過各種 和 工具,自動化 AWS 服務 並跨多個 Amazon EKS 叢集擴展。此解決方案支援使用 Jenkins
工具
AWS 服務
AWS Command Line Interface (AWS CLI) 是一種開放原始碼工具,可協助您 AWS 服務 透過命令列 Shell 中的命令與 互動。
Amazon Elastic Kubernetes Service (Amazon EKS) 可協助您在 上執行 Kubernetes, AWS 而無需安裝或維護您自己的 Kubernetes 控制平面或節點。
AWS Identity and Access Management (IAM) 透過控制已驗證並獲授權使用的人員,協助您安全地管理對 AWS 資源的存取。
其他工具
K8sGPT
是一種開放原始碼 AI 驅動的工具,可轉換 Kubernetes 管理。它充當虛擬站點可靠性工程 (SRE) 專家,自動掃描、診斷和疑難排解 Kubernetes 叢集問題。管理員可以使用自然語言與 K8sGPT 互動,並取得有關叢集狀態、Pod 損毀和服務故障的明確可行洞見。工具的內建分析器可偵測各種問題,從設定錯誤的元件到資源限制,並提供easy-to-understand的說明和解決方案。
最佳實務
使用 AWS Systems Manager Session Manager 進行堡壘主機存取,以實作安全存取控制。
確定 K8sGPT 身分驗證使用具有最低權限許可的專用 IAM 角色進行 Amazon Bedrock 和 Amazon EKS 互動。如需詳細資訊,請參閱 IAM 文件中的授予最低權限和安全最佳實務。
設定資源標記、啟用稽核線索的 Amazon CloudWatch 記錄,以及實作敏感資訊的資料匿名化
。 https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html 維護 K8sGPT 組態的定期備份,同時在離峰時間設定自動掃描排程,以將操作影響降至最低。
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
將 Amazon Bedrock 設定為 K8sGPT 的 AI 後端提供者。 | 若要將 Amazon Bedrock 設定為 AI 後端提供
範例命令會 若要檢查
以下是此命令預期輸出的範例:
| AWS DevOps |
任務 | 描述 | 所需的技能 |
---|---|---|
檢視可用的篩選條件清單。 | 若要查看所有可用篩選條件的清單,請使用下列 AWS CLI 命令:
以下是此命令預期輸出的範例:
| AWS DevOps |
使用篩選條件掃描特定命名空間中的 Pod。 | 此命令適用於針對 Kubernetes 叢集內的特定 Pod 問題進行偵錯,使用 Amazon Bedrock AI 功能來分析和解釋其發現的問題。 若要使用篩選條件掃描特定命名空間中的 Pod,請使用下列 AWS CLI 命令:
以下是此命令預期輸出的範例:
| AWS DevOps |
使用篩選條件掃描特定命名空間中的部署。 | 此命令有助於識別和疑難排解部署特定的問題,特別是當實際狀態不符合所需狀態時。 若要使用篩選條件掃描特定命名空間中的部署,請使用下列 AWS CLI 命令:
以下是此命令預期輸出的範例:
| AWS DevOps |
使用篩選條件掃描特定命名空間中的節點。 | 若要使用篩選條件掃描特定命名空間中的節點,請使用下列 AWS CLI 命令:
以下是此命令預期輸出的範例:
| AWS DevOps |
任務 | 描述 | 所需的技能 |
---|---|---|
取得詳細輸出。 | 若要取得詳細輸出,請使用下列 AWS CLI 命令:
以下是此命令預期輸出的範例:
| AWS DevOps |
檢查有問題的 Pod。 | 若要檢查是否有特定有問題的 Pod,請使用下列 AWS CLI 命令:
以下是此命令預期輸出的範例:
| AWS DevOps |
取得應用程式特定的洞見。 | 此命令在下列情況下特別有用:
若要取得應用程式特定的洞見,請使用下列命令:
以下是此命令預期輸出的範例:
|
相關資源
AWS 部落格
AWS 文件
AWS CLI 命令:create-cluster 和 describe-cluster
開始使用 Amazon EKS (Amazon EKS 文件)
IAM 中的安全最佳實務 (IAM 文件)
其他資源