[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9901":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":36,"discoverSource":37},9901,"k8sgpt","k8sgpt-ai\u002Fk8sgpt","k8sgpt-ai","Giving Kubernetes Superpowers to everyone","http:\u002F\u002Fk8sgpt.ai",null,"Go",7857,1005,71,85,0,2,15,109,12,40.01,"Apache License 2.0",false,"main",[26,27,28,29,30,31,32],"ai","devops","kubernetes","llama","openai","sre","tooling","2026-06-12 02:02:14","\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fimages\u002Fbanner-white.png\" width=\"600px;\">\n  \u003Cimg alt=\"Text changing depending on mode. Light: 'So light!' Dark: 'So dark!'\" src=\".\u002Fimages\u002Fbanner-black.png\" width=\"600px;\">\n\u003C\u002Fpicture>\n\u003Cbr\u002F>\n\n![GitHub code size in bytes](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flanguages\u002Fcode-size\u002Fk8sgpt-ai\u002Fk8sgpt)\n![GitHub Workflow Status](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fk8sgpt-ai\u002Fk8sgpt\u002Frelease.yaml)\n![GitHub release (latest by date)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fk8sgpt-ai\u002Fk8sgpt)\n[![OpenSSF Best Practices](https:\u002F\u002Fbestpractices.coreinfrastructure.org\u002Fprojects\u002F7272\u002Fbadge)](https:\u002F\u002Fbestpractices.coreinfrastructure.org\u002Fprojects\u002F7272)\n[![Link to documentation](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=%F0%9F%93%96&message=Documentation&color=blue)](https:\u002F\u002Fdocs.k8sgpt.ai\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n[![Go version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fgo-mod\u002Fgo-version\u002Fk8sgpt-ai\u002Fk8sgpt.svg)](https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fk8sgpt-ai\u002Fk8sgpt\u002Fgraph\u002Fbadge.svg?token=ZLR7NG8URE)](https:\u002F\u002Fcodecov.io\u002Fgithub\u002Fk8sgpt-ai\u002Fk8sgpt)\n![GitHub last commit (branch)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fk8sgpt-ai\u002Fk8sgpt\u002Fmain)\n\n`k8sgpt` is a tool for scanning your Kubernetes clusters, diagnosing, and triaging issues in simple English.\n\nIt has SRE experience codified into its analyzers and helps to pull out the most relevant information to enrich it with AI.\n\n_Out of the box integration with OpenAI, Azure, Cohere, Amazon Bedrock, Google Gemini and local models._\n\n\n> **Sister project:** Check out [sympozium](https:\u002F\u002Fgithub.com\u002FAlexsJones\u002Fsympozium\u002F) for managing agents in Kubernetes.\n\n\n\u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002Fposts\u002Fk8sgpt?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-k8sgpt\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fapi.producthunt.com\u002Fwidgets\u002Fembed-image\u002Fv1\u002Ffeatured.svg?post_id=389489&theme=light\" alt=\"K8sGPT - K8sGPT&#0032;gives&#0032;Kubernetes&#0032;Superpowers&#0032;to&#0032;everyone | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" \u002F>\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fhellogithub.com\u002Frepository\u002F9dfe44c18dfb4d6fa0181baf8b2cf2e1\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fabroad.hellogithub.com\u002Fv1\u002Fwidgets\u002Frecommend.svg?rid=9dfe44c18dfb4d6fa0181baf8b2cf2e1&claim_uid=gqG4wmzkMrP0eFy\" alt=\"Featured｜HelloGitHub\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" \u002F>\u003C\u002Fa>\n\n\n\u003Cimg src=\"images\u002Fdemo4.gif\" width=\"650px\">\n\n# Table of Contents\n- [Overview](#k8sgpt)\n- [Installation](#cli-installation)\n- [Quick Start](#quick-start)\n- [Analyzers](#analyzers)\n- [Examples](#examples)\n- [LLM AI Backends](#llm-ai-backends)\n- [Key Features](#key-features)\n- [Model Context Protocol (MCP)](#model-context-protocol-mcp)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n- [Community](#community)\n\n# CLI Installation\n\n### Linux\u002FMac via brew\n\n```sh\nbrew install k8sgpt\n```\n\nor\n\n```sh\nbrew tap k8sgpt-ai\u002Fk8sgpt\nbrew install k8sgpt\n```\n\n\u003Cdetails>\n  \u003Csummary>RPM-based installation (RedHat\u002FCentOS\u002FFedora)\u003C\u002Fsummary>\n\n**32 bit:**\n\n  \u003C!---x-release-please-start-version-->\n\n  ```\n  sudo rpm -ivh https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Freleases\u002Fdownload\u002Fv0.4.32\u002Fk8sgpt_386.rpm\n  ```\n  \u003C!---x-release-please-end-->\n\n**64 bit:**\n\n  \u003C!---x-release-please-start-version-->\n  ```\n  sudo rpm -ivh https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Freleases\u002Fdownload\u002Fv0.4.32\u002Fk8sgpt_amd64.rpm\n  ```\n  \u003C!---x-release-please-end-->\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>DEB-based installation (Ubuntu\u002FDebian)\u003C\u002Fsummary>\n\n**32 bit:**\n\n  \u003C!---x-release-please-start-version-->\n\n```\ncurl -LO https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Freleases\u002Fdownload\u002Fv0.4.32\u002Fk8sgpt_386.deb\nsudo dpkg -i k8sgpt_386.deb\n```\n\n  \u003C!---x-release-please-end-->\n\n**64 bit:**\n\n  \u003C!---x-release-please-start-version-->\n\n```\ncurl -LO https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Freleases\u002Fdownload\u002Fv0.4.32\u002Fk8sgpt_amd64.deb\nsudo dpkg -i k8sgpt_amd64.deb\n```\n\n  \u003C!---x-release-please-end-->\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\n  \u003Csummary>APK-based installation (Alpine)\u003C\u002Fsummary>\n\n**32 bit:**\n\n  \u003C!---x-release-please-start-version-->\n  ```\n  wget https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Freleases\u002Fdownload\u002Fv0.4.32\u002Fk8sgpt_386.apk\n  apk add --allow-untrusted k8sgpt_386.apk\n  ```\n  \u003C!---x-release-please-end-->\n\n**64 bit:**\n\n  \u003C!---x-release-please-start-version-->\n  ```\n  wget https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Freleases\u002Fdownload\u002Fv0.4.32\u002Fk8sgpt_amd64.apk\n  apk add --allow-untrusted k8sgpt_amd64.apk\n  ```\n  \u003C!---x-release-please-end-->\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Failing Installation on WSL or Linux (missing gcc)\u003C\u002Fsummary>\n  When installing Homebrew on WSL or Linux, you may encounter the following error:\n\n```\n==> Installing k8sgpt from k8sgpt-ai\u002Fk8sgpt Error: The following formula cannot be installed from a bottle and must be\nbuilt from the source. k8sgpt Install Clang or run brew install gcc.\n```\n\nIf you install gcc as suggested, the problem will persist. Therefore, you need to install the build-essential package.\n\n```\n   sudo apt-get update\n   sudo apt-get install build-essential\n```\n\n\u003C\u002Fdetails>\n\n### Windows\n\n- Download the latest Windows binaries of **k8sgpt** from the [Release](https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Freleases)\n  tab based on your system architecture.\n- Extract the downloaded package to your desired location. Configure the system _PATH_ environment variable with the binary location\n\n## Operator Installation\n\nTo install within a Kubernetes cluster please use our `k8sgpt-operator` with installation instructions available [here](https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt-operator)\n\n_This mode of operation is ideal for continuous monitoring of your cluster and can integrate with your existing monitoring such as Prometheus and Alertmanager._\n\n## Quick Start\n\n- Currently, the default AI provider is OpenAI, you will need to generate an API key from [OpenAI](https:\u002F\u002Fopenai.com)\n  - You can do this by running `k8sgpt generate` to open a browser link to generate it\n- Run `k8sgpt auth add` to set it in k8sgpt.\n  - You can provide the password directly using the `--password` flag.\n- Run `k8sgpt filters` to manage the active filters used by the analyzer. By default, all filters are executed during analysis.\n- Run `k8sgpt analyze` to run a scan.\n- And use `k8sgpt analyze --explain` to get a more detailed explanation of the issues.\n- You also run `k8sgpt analyze --with-doc` (with or without the explain flag) to get the official documentation from Kubernetes.\n\n# Using with Claude Desktop\n\nK8sGPT can be integrated with Claude Desktop to provide AI-powered Kubernetes cluster analysis. This integration requires K8sGPT v0.4.14 or later.\n\n## Prerequisites\n\n1. Install K8sGPT v0.4.14 or later:\n   ```sh\n   brew install k8sgpt\n   ```\n\n2. Install Claude Desktop from the official website\n\n3. Configure K8sGPT with your preferred AI backend:\n   ```sh\n   k8sgpt auth\n   ```\n\n## Setup\n\n1. Start the K8sGPT MCP server:\n   ```sh\n   k8sgpt serve --mcp\n   ```\n\n2. In Claude Desktop:\n   - Open Settings\n   - Navigate to the Integrations section\n   - Add K8sGPT as a new integration\n   - The MCP server will be automatically detected\n\n3. Configure Claude Desktop with the following JSON:\n\n  ```json\n  {\n    \"mcpServers\": {\n      \"k8sgpt\": {\n        \"command\": \"k8sgpt\",\n        \"args\": [\n          \"serve\",\n          \"--mcp\"\n        ]\n      }\n    }\n  }\n  ```\n\n## Usage\n\nOnce connected, you can use Claude Desktop to:\n- Analyze your Kubernetes cluster\n- Get detailed insights about cluster health\n- Receive recommendations for fixing issues\n- Query cluster information\n\nExample commands in Claude Desktop:\n- \"Analyze my Kubernetes cluster\"\n- \"What's the health status of my cluster?\"\n- \"Show me any issues in the default namespace\"\n\n## Troubleshooting\n\nIf you encounter connection issues:\n1. Ensure K8sGPT is running with the MCP server enabled\n2. Verify your Kubernetes cluster is accessible\n3. Check that your AI backend is properly configured\n4. Restart both K8sGPT and Claude Desktop\n\nFor more information, visit our [documentation](https:\u002F\u002Fdocs.k8sgpt.ai).\n\n## Analyzers\n\nK8sGPT uses analyzers to triage and diagnose issues in your cluster. It has a set of analyzers that are built in, but\nyou will be able to write your own analyzers.\n\n### Built in analyzers\n\n#### Enabled by default\n\n- [x] podAnalyzer\n- [x] pvcAnalyzer\n- [x] rsAnalyzer\n- [x] serviceAnalyzer\n- [x] eventAnalyzer\n- [x] ingressAnalyzer\n- [x] statefulSetAnalyzer\n- [x] deploymentAnalyzer\n- [x] jobAnalyzer\n- [x] cronJobAnalyzer\n- [x] nodeAnalyzer\n- [x] mutatingWebhookAnalyzer\n- [x] validatingWebhookAnalyzer\n- [x] configMapAnalyzer\n\n#### Optional\n\n- [x] hpaAnalyzer\n- [x] pdbAnalyzer\n- [x] networkPolicyAnalyzer\n- [x] gatewayClass\n- [x] gateway\n- [x] httproute\n- [x] logAnalyzer\n- [x] storageAnalyzer\n- [x] securityAnalyzer\n- [x] CatalogSource\n- [x] ClusterCatalog\n- [x] ClusterExtension\n- [x] ClusterService\n- [x] ClusterServiceVersion\n- [x] OperatorGroup\n- [x] InstallPlan\n- [x] Subscription\n\n## Examples\n\n_Run a scan with the default analyzers_\n\n```\nk8sgpt generate\nk8sgpt auth add\nk8sgpt analyze --explain\nk8sgpt analyze --explain --with-doc\n```\n\n_Filter on resource_\n\n```\nk8sgpt analyze --explain --filter=Service\n```\n\n_Filter by namespace_\n\n```\nk8sgpt analyze --explain --filter=Pod --namespace=default\n```\n\n_Output to JSON_\n\n```\nk8sgpt analyze --explain --filter=Service --output=json\n```\n\n_Anonymize during explain_\n\n```\nk8sgpt analyze --explain --filter=Service --output=json --anonymize\n```\n\n\u003Cdetails>\n\u003Csummary> Using filters \u003C\u002Fsummary>\n\n_List filters_\n\n```\nk8sgpt filters list\n```\n\n_Add default filters_\n\n```\nk8sgpt filters add [filter(s)]\n```\n\n### Examples :\n\n- Simple filter : `k8sgpt filters add Service`\n- Multiple filters : `k8sgpt filters add Ingress,Pod`\n\n_Remove default filters_\n\n```\nk8sgpt filters remove [filter(s)]\n```\n\n### Examples :\n\n- Simple filter : `k8sgpt filters remove Service`\n- Multiple filters : `k8sgpt filters remove Ingress,Pod`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\n\u003Csummary> Additional commands \u003C\u002Fsummary>\n\n_List configured backends_\n\n```\nk8sgpt auth list\n```\n\n_Update configured backends_\n\n```\nk8sgpt auth update $MY_BACKEND1,$MY_BACKEND2..\n```\n\n_Remove configured backends_\n\n```\nk8sgpt auth remove -b $MY_BACKEND1,$MY_BACKEND2..\n```\n\n_List integrations_\n\n```\nk8sgpt integrations list\n```\n\n_Activate integrations_\n\n```\nk8sgpt integrations activate [integration(s)]\n```\n\n_Use integration_\n\n```\nk8sgpt analyze --filter=[integration(s)]\n```\n\n_Deactivate integrations_\n\n```\nk8sgpt integrations deactivate [integration(s)]\n```\n\n_Serve mode_\n\n```\nk8sgpt serve\n```\n\n_Serve mode with MCP (Model Context Protocol)_\n\n```\n# Enable MCP server on default port 8089\nk8sgpt serve --mcp --mcp-http\n\n# Enable MCP server on custom port\nk8sgpt serve --mcp --mcp-http --mcp-port 8089\n\n# Full serve mode with MCP\nk8sgpt serve --mcp --mcp-http --port 8080 --metrics-port 8081 --mcp-port 8089\n```\n\nThe MCP server enables integration with tools like Claude Desktop and other MCP-compatible clients. It runs on port 8089 by default and provides:\n- Kubernetes cluster analysis via MCP protocol\n- Resource information and health status\n- AI-powered issue explanations and recommendations\n\nFor Helm chart deployment with MCP support, see the `charts\u002Fk8sgpt\u002Fvalues-mcp-example.yaml` file.\n\n_Analysis with serve mode_\n\n```\ngrpcurl -plaintext -d '{\"namespace\": \"k8sgpt\", \"explain\" : \"true\"}' localhost:8080 schema.v1.ServerAnalyzerService\u002FAnalyze\n{\n  \"status\": \"OK\"\n}\n```\n\n_Analysis with custom headers_\n\n```\nk8sgpt analyze --explain --custom-headers CustomHeaderKey:CustomHeaderValue\n```\n\n_Print analysis stats_\n\n```\nk8sgpt analyze -s\nThe stats mode allows for debugging and understanding the time taken by an analysis by displaying the statistics of each analyzer.\n- Analyzer Ingress took 47.125583ms\n- Analyzer PersistentVolumeClaim took 53.009167ms\n- Analyzer CronJob took 57.517792ms\n- Analyzer Deployment took 156.6205ms\n- Analyzer Node took 160.109833ms\n- Analyzer ReplicaSet took 245.938333ms\n- Analyzer StatefulSet took 448.0455ms\n- Analyzer Pod took 5.662594708s\n- Analyzer Service took 38.583359166s\n```\n\n_Diagnostic information_\n\nTo collect diagnostic information use the following command to create a `dump_\u003Ctimestamp>_json` in your local directory.\n```\nk8sgpt dump\n```\n\n\u003C\u002Fdetails>\n\n## LLM AI Backends\n\nK8sGPT uses the chosen LLM, generative AI provider when you want to explain the analysis results using --explain flag e.g. `k8sgpt analyze --explain`. You can use `--backend` flag to specify a configured provider (it's `openai` by default).\n\nYou can list available providers using `k8sgpt auth list`:\n\n```\nDefault:\n> openai\nActive:\nUnused:\n> openai\n> localai\n> ollama\n> azureopenai\n> cohere\n> amazonbedrock\n> amazonsagemaker\n> google\n> huggingface\n> noopai\n> googlevertexai\n> watsonxai\n> customrest\n> ibmwatsonxai\n```\n\nFor detailed documentation on how to configure and use each provider see [here](https:\u002F\u002Fdocs.k8sgpt.ai\u002Freference\u002Fproviders\u002Fbackend\u002F).\n\n_To set a new default provider_\n\n```\nk8sgpt auth default -p azureopenai\nDefault provider set to azureopenai\n```\n\n_Using Amazon Bedrock Converse with inference profiles_\n\n_System Inference Profile_\n\n```\nk8sgpt auth add --backend amazonbedrockconverse --providerRegion us-east-1 --model arn:aws:bedrock:us-east-1:123456789012:inference-profile\u002Fmy-inference-profile\n\n```\n\n_Application Inference Profile_\n\n```\nk8sgpt auth add --backend amazonbedrockconverse --providerRegion us-east-1 --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile\u002F2uzp4s0w39t6\n\n```\n_Using Amazon Bedrock with inference profiles_\n\n_System Inference Profile_\n\n```\nk8sgpt auth add --backend amazonbedrock --providerRegion us-east-1 --model arn:aws:bedrock:us-east-1:123456789012:inference-profile\u002Fmy-inference-profile\n\n```\n\n_Application Inference Profile_\n\n```\nk8sgpt auth add --backend amazonbedrock --providerRegion us-east-1 --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile\u002F2uzp4s0w39t6\n\n```\n\n## Key Features\n\n\u003Cdetails>\n\nWith this option, the data is anonymized before being sent to the AI Backend. During the analysis execution, `k8sgpt` retrieves sensitive data (Kubernetes object names, labels, etc.). This data is masked when sent to the AI backend and replaced by a key that can be used to de-anonymize the data when the solution is returned to the user.\n\n\u003Csummary> Anonymization \u003C\u002Fsummary>\n\n1. Error reported during analysis:\n\n```bash\nError: HorizontalPodAutoscaler uses StatefulSet\u002Ffake-deployment as ScaleTargetRef which does not exist.\n```\n\n2. Payload sent to the AI backend:\n\n```bash\nError: HorizontalPodAutoscaler uses StatefulSet\u002FtGLcCRcHa1Ce5Rs as ScaleTargetRef which does not exist.\n```\n\n3. Payload returned by the AI:\n\n```bash\nThe Kubernetes system is trying to scale a StatefulSet named tGLcCRcHa1Ce5Rs using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.\n```\n\n4. Payload returned to the user:\n\n```bash\nThe Kubernetes system is trying to scale a StatefulSet named fake-deployment using the HorizontalPodAutoscaler, but it cannot find the StatefulSet. The solution is to verify that the StatefulSet name is spelled correctly and exists in the same namespace as the HorizontalPodAutoscaler.\n```\n\n### Further Details\n\nNote: **Anonymization does not currently apply to events.**\n\n_In a few analysers like Pod, we feed to the AI backend the event messages which are not known beforehand thus we are not masking them for the **time being**._\n\n- The following is the list of analysers in which data is **being masked**:-\n\n  - Statefulset\n  - Service\n  - PodDisruptionBudget\n  - Node\n  - NetworkPolicy\n  - Ingress\n  - HPA\n  - Deployment\n  - Cronjob\n\n- The following is the list of analysers in which data is **not being masked**:-\n\n  - ReplicaSet\n  - PersistentVolumeClaim\n  - Pod\n  - Log\n  - **_\\*Events_**\n\n**\\*Note**:\n\n- k8gpt will not mask the above analysers because they do not send any identifying information except **Events** analyser.\n- Masking for **Events** analyzer is scheduled in the near future as seen in this [issue](https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Fissues\u002F560). _Further research has to be made to understand the patterns and be able to mask the sensitive parts of an event like pod name, namespace etc._\n\n- The following is the list of fields which are not **being masked**:-\n\n  - Describe\n  - ObjectStatus\n  - Replicas\n  - ContainerStatus\n  - **_\\*Event Message_**\n  - ReplicaStatus\n  - Count (Pod)\n\n**\\*Note**:\n\n- It is quite possible the payload of the event message might have something like \"super-secret-project-pod-X crashed\" which we don't currently redact _(scheduled in the near future as seen in this [issue](https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Fissues\u002F560))_.\n\n### Proceed with care\n\n- The K8gpt team recommends using an entirely different backend **(a local model) in critical production environments**. By using a local model, you can rest assured that everything stays within your DMZ, and nothing is leaked.\n- If there is any uncertainty about the possibility of sending data to a public LLM (open AI, Azure AI) and it poses a risk to business-critical operations, then, in such cases, the use of public LLM should be avoided based on personal assessment and the jurisdiction of risks involved.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> Configuration management\u003C\u002Fsummary>\n\n`k8sgpt` stores config data in the `$XDG_CONFIG_HOME\u002Fk8sgpt\u002Fk8sgpt.yaml` file. The data is stored in plain text, including your OpenAI key.\n\nConfig file locations:\n| OS | Path |\n| ------- | ------------------------------------------------ |\n| MacOS | ~\u002FLibrary\u002FApplication Support\u002Fk8sgpt\u002Fk8sgpt.yaml |\n| Linux | ~\u002F.config\u002Fk8sgpt\u002Fk8sgpt.yaml |\n| Windows | %LOCALAPPDATA%\u002Fk8sgpt\u002Fk8sgpt.yaml |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\nThere may be scenarios where caching remotely is preferred.\nIn these scenarios K8sGPT supports AWS S3 or Azure Blob storage Integration.\n\n\u003Csummary> Remote caching \u003C\u002Fsummary>\n\u003Cem>Note: You can configure and use only one remote cache at a time\u003C\u002Fem>\n\n_Adding a remote cache_\n\n- AWS S3\n  - _As a prerequisite `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are required as environmental variables._\n  - Configuration, `k8sgpt cache add s3 --region \u003Caws region> --bucket \u003Cname>`\n  - Minio Configuration with HTTP endpoint ` k8sgpt cache add s3 --bucket \u003Cname> --endpoint \u003Chttp:\u002F\u002Flocalhost:9000>`\n  - Minio Configuration with HTTPs endpoint, skipping TLS verification ` k8sgpt cache add s3 --bucket \u003Cname> --endpoint \u003Chttps:\u002F\u002Flocalhost:9000> --insecure`\n    - K8sGPT will create the bucket if it does not exist\n- Azure Storage\n  - We support a number of [techniques](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fdeveloper\u002Fgo\u002Fazure-sdk-authentication?tabs=bash#2-authenticate-with-azure) to authenticate against Azure\n  - Configuration, `k8sgpt cache add azure --storageacc \u003Cstorage account name> --container \u003Ccontainer name>`\n    - K8sGPT assumes that the storage account already exist and it will create the container if it does not exist\n    - It is the **user** responsibility have to grant specific permissions to their identity in order to be able to upload blob files and create SA containers (e.g Storage Blob Data Contributor)\n- Google Cloud Storage\n  - _As a prerequisite `GOOGLE_APPLICATION_CREDENTIALS` are required as environmental variables._\n  - Configuration, ` k8sgpt cache add gcs --region \u003Cgcp region> --bucket \u003Cname> --projectid \u003Cproject id>`\n    - K8sGPT will create the bucket if it does not exist\n\n_Listing cache items_\n\n```\nk8sgpt cache list\n```\n\n_Purging an object from the cache_\nNote: purging an object using this command will delete upstream files, so it requires appropriate permissions.\n\n```\nk8sgpt cache purge $OBJECT_NAME\n```\n\n_Removing the remote cache_\nNote: this will not delete the upstream S3 bucket or Azure storage container\n\n```\nk8sgpt cache remove\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> Custom Analyzers\u003C\u002Fsummary>\n\nThere may be scenarios where you wish to write your own analyzer in a language of your choice.\nK8sGPT now supports the ability to do so by abiding by the [schema](https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fschemas\u002Fblob\u002Fmain\u002Fprotobuf\u002Fschema\u002Fv1\u002Fcustom_analyzer.proto) and serving the analyzer for consumption.\nTo do so, define the analyzer within the K8sGPT configuration and it will add it into the scanning process.\nIn addition to this you will need to enable the following flag on analysis:\n\n```\nk8sgpt analyze --custom-analysis\n```\n\nHere is an example local host analyzer in [Rust](https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fhost-analyzer)\nWhen this is run on `localhost:8080` the K8sGPT config can pick it up with the following additions:\n\n```\ncustom_analyzers:\n  - name: host-analyzer\n    connection:\n      url: localhost\n      port: 8080\n```\n\nThis now gives the ability to pass through hostOS information ( from this analyzer example ) to K8sGPT to use as context with normal analysis.\n\n_See the docs on how to write a custom analyzer_\n\n_Listing custom analyzers configured_\n```\nk8sgpt custom-analyzer list\n```\n\n_Adding custom analyzer without install_\n```\nk8sgpt custom-analyzer add --name my-custom-analyzer --port 8085\n```\n\n_Removing custom analyzer_\n```\nk8sgpt custom-analyzer remove --names \"my-custom-analyzer,my-custom-analyzer-2\"\n```\n\n\u003C\u002Fdetails>\n## Model Context Protocol (MCP)\n\nK8sGPT provides a Model Context Protocol server that exposes Kubernetes operations as standardized tools for AI assistants like Claude, ChatGPT, and other MCP-compatible clients.\n\n**Start the MCP server:**\n\nStdio mode (for local AI assistants):\n```bash\nk8sgpt serve --mcp\n```\n\nHTTP mode (for network access):\n```bash\nk8sgpt serve --mcp --mcp-http --mcp-port 8089\n```\n\n**Features:**\n- 12 tools for cluster analysis, resource management, and debugging\n- 3 resources for cluster information access\n- 3 interactive troubleshooting prompts\n- Stateless HTTP mode for one-off invocations\n- Full integration with Claude Desktop and other MCP clients\n\n**Learn more:** See [MCP.md](MCP.md) for complete documentation, usage examples, and integration guides.\n## Documentation\n\nFind our official documentation available [here](https:\u002F\u002Fdocs.k8sgpt.ai)\n\n## Contributing\n\nPlease read our [contributing guide](.\u002FCONTRIBUTING.md).\n\n## Community\n\nFind us on [Slack](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fk8sgpt\u002Fshared_invite\u002Fzt-332vhyaxv-bfjJwHZLXWVCB3QaXafEYQ)\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fk8sgpt-ai\u002Fk8sgpt\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=k8sgpt-ai\u002Fk8sgpt\" \u002F>\n\u003C\u002Fa>\n\n","k8sgpt 是一个用于扫描 Kubernetes 集群、诊断和分类问题的工具，能够以简单的英文输出结果。该项目采用 Go 语言编写，其核心功能包括集成 SRE 经验的分析器以及通过 AI 技术增强信息的相关性和准确性。它支持与 OpenAI、Azure、Cohere 等多种主流 AI 平台及本地模型无缝对接，使得用户可以根据自身需求选择合适的后端服务。k8sgpt 适用于需要高效管理和维护 Kubernetes 集群的企业或个人开发者，在提高运维效率的同时降低了学习曲线。","2026-06-11 03:25:19","top_topic"]