
k8sgpt - это инструмент для сканирования ваших кластеров Kubernetes, диагностики и выпуска проблем на простом английском языке.
Он имеет опыт работы в своих анализаторах и помогает извлечь самую релевантную информацию, чтобы обогатить ее с помощью ИИ.
Из интеграции коробки с OpenAI, Azure, Cohere, Amazon Bedrock, Google Gemini и местными моделями.

$ brew install k8sgptили
brew tap k8sgpt-ai/k8sgpt
brew install k8sgpt32 бит:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.rpm
64 бит:
sudo rpm -ivh https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.rpm
32 бит:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.deb
sudo dpkg -i k8sgpt_386.deb
64 бит:
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.deb
sudo dpkg -i k8sgpt_amd64.deb
32 бит:
wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_386.apk
apk add --allow-untrusted k8sgpt_386.apk
64 бит:
wget https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.46/k8sgpt_amd64.apk
apk add --allow-untrusted k8sgpt_amd64.apk
==> Installing k8sgpt from k8sgpt-ai/k8sgpt Error: The following formula cannot be installed from a bottle and must be
built from the source. k8sgpt Install Clang or run brew install gcc.
Если вы установите GCC в соответствии с предложением, проблема сохранится. Поэтому вам необходимо установить пакет сборки.
sudo apt-get update
sudo apt-get install build-essential
Для установки в кластере Kubernetes используйте наш k8sgpt-operator с инструкциями по установке, доступными здесь
Этот режим работы идеально подходит для непрерывного мониторинга вашего кластера и может интегрироваться с вашим существующим мониторингом, таким как Prometheus и Alertmanager.
k8sgpt generate , чтобы открыть ссылку браузера, чтобы сгенерировать ееk8sgpt auth add , чтобы установить его в K8sgpt.--password .k8sgpt filters для управления активными фильтрами, используемыми анализатором. По умолчанию все фильтры выполняются во время анализа.k8sgpt analyze , чтобы запустить сканирование.k8sgpt analyze --explain чтобы получить более подробное объяснение проблем.k8sgpt analyze --with-doc (с или без Flag), чтобы получить официальную документацию от Kubernetes. K8SGPT использует анализаторы для сортировки и диагностики проблем в вашем кластере. У него есть набор анализаторов, которые встроены, но вы сможете написать своих собственных анализаторов.
Запустите сканирование с анализаторами по умолчанию
k8sgpt generate
k8sgpt auth add
k8sgpt analyze --explain
k8sgpt analyze --explain --with-doc
Фильтр на ресурсе
k8sgpt analyze --explain --filter=Service
Фильтр по пространству имен
k8sgpt analyze --explain --filter=Pod --namespace=default
Вывод в JSON
k8sgpt analyze --explain --filter=Service --output=json
Анонимность во время объяснения
k8sgpt analyze --explain --filter=Service --output=json --anonymize
Список фильтров
k8sgpt filters list
Добавьте фильтры по умолчанию
k8sgpt filters add [filter(s)]
k8sgpt filters add Servicek8sgpt filters add Ingress,PodУдалить фильтры по умолчанию
k8sgpt filters remove [filter(s)]
k8sgpt filters remove Servicek8sgpt filters remove Ingress,PodСписок настроенных бэкэндов
k8sgpt auth list
Обновление настроенных бэкэндов
k8sgpt auth update $MY_BACKEND1,$MY_BACKEND2..
Удалить настроенные бэкэнды
k8sgpt auth remove -b $MY_BACKEND1,$MY_BACKEND2..
Списки интеграции
k8sgpt integrations list
Активировать интеграции
k8sgpt integrations activate [integration(s)]
Используйте интеграцию
k8sgpt analyze --filter=[integration(s)]
Деактивировать интеграции
k8sgpt integrations deactivate [integration(s)]
Подавать режим
k8sgpt serve
Анализ в режиме подачи
grpcurl -plaintext -d '{"namespace": "k8sgpt", "explain" : "true"}' localhost:8080 schema.v1.ServerAnalyzerService/Analyze
{
"status": "OK"
}
Анализ с пользовательскими заголовками
k8sgpt analyze --explain --custom-headers CustomHeaderKey:CustomHeaderValue
Статистика анализа печати
k8sgpt analyze -s
The stats mode allows for debugging and understanding the time taken by an analysis by displaying the statistics of each analyzer.
- Analyzer Ingress took 47.125583ms
- Analyzer PersistentVolumeClaim took 53.009167ms
- Analyzer CronJob took 57.517792ms
- Analyzer Deployment took 156.6205ms
- Analyzer Node took 160.109833ms
- Analyzer ReplicaSet took 245.938333ms
- Analyzer StatefulSet took 448.0455ms
- Analyzer Pod took 5.662594708s
- Analyzer Service took 38.583359166s
Диагностическая информация
Для сбора диагностической информации используйте следующую команду, чтобы создать dump_<timestamp>_json в вашем локальном каталоге.
k8sgpt dump
K8SGPT использует выбранный LLM, генеративный поставщик AI, когда вы хотите объяснить результаты анализа, используя флаг -EG k8sgpt analyze --explain . Вы можете использовать --backend Flag для указания настроенного поставщика (он openai по умолчанию).
Вы можете перечислить доступных поставщиков, используя k8sgpt auth list :
Default:
> openai
Active:
Unused:
> openai
> localai
> ollama
> azureopenai
> cohere
> amazonbedrock
> amazonsagemaker
> google
> huggingface
> noopai
> googlevertexai
> ibmwatsonxai
Для получения подробной документации о том, как настроить и использовать каждого поставщика, см. Здесь.
Чтобы установить нового поставщика по умолчанию
k8sgpt auth default -p azureopenai
Default provider set to azureopenai
С помощью этой опции данные анонимизированы до отправки в бэкэнд ИИ. Во время выполнения анализа k8sgpt получает конфиденциальные данные (имена объектов Kubernetes, метки и т. Д.). Эти данные замаскируются при отправке на бэкэнд ИИ и заменяются ключом, который можно использовать для деонинизации данных, когда решение возвращается пользователю.
Error: HorizontalPodAutoscaler uses StatefulSet/fake-deployment as ScaleTargetRef which does not exist.Error: HorizontalPodAutoscaler uses StatefulSet/tGLcCRcHa1Ce5Rs as ScaleTargetRef which does not exist.The 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.The 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.Примечание. Анонимизация в настоящее время не применяется к событиям.
Анонимизация в настоящее время не распространяется на события.
В нескольких анализаторах, таких как POD, мы питаемся для AI, поддерживающих сообщения о событиях, которые не известны заранее, поэтому мы пока не маскируем их.
Ниже приведен список анализаторов, в которых данные замаскируются :-
Ниже приведен список анализаторов, в которых данные не замаскируются :-
*Примечание :
K8GPT не будет маскировать вышеуказанные анализаторы, потому что они не отправляют никакой идентифицирующей информации, кроме анализатора событий .
Маскировка для событий Анализатор запланирован в ближайшем будущем, как видно в этом выпуске. Должны быть проведены дальнейшие исследования, чтобы понять шаблоны и иметь возможность маскировать чувствительные части события, такие как название POD, пространство имен и т. Д.
Ниже приведен список полей, которые не замаскируются :-
*Примечание :
k8sgpt сохраняет данные конфигурации в файле $XDG_CONFIG_HOME/k8sgpt/k8sgpt.yaml . Данные хранятся в простом тексте, включая ваш ключ Openai.
Расположение файлов конфигурации:
| ОС | Путь |
|---|---|
| MacOS | ~/Библиотека/поддержка приложения/k8sgpt/k8sgpt.yaml |
| Linux | ~/.config/k8sgpt/k8sgpt.yaml |
| Окна | %Localappdata%/k8sgpt/k8sgpt.yaml |
Добавление удаленного кеша
AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY требуются в качестве переменных окружающей среды.k8sgpt cache add s3 --region <aws region> --bucket <name>k8sgpt cache add s3 --bucket <name> --endpoint <http://localhost:9000>k8sgpt cache add s3 --bucket <name> --endpoint <https://localhost:9000> --insecurek8sgpt cache add azure --storageacc <storage account name> --container <container name>GOOGLE_APPLICATION_CREDENTIALS требуются в качестве переменных окружающей среды.k8sgpt cache add gcs --region <gcp region> --bucket <name> --projectid <project id>Список элементов кеша
k8sgpt cache list
Очистка объекта из кеша. Примечание: очистка объекта с использованием этой команды удалит файлы вверх по течению, поэтому это требует соответствующих разрешений.
k8sgpt cache purge $OBJECT_NAME
Удаление удаленного кеша ПРИМЕЧАНИЕ. Это не удалит вверх по течению ковша S3 или контейнер для хранения Azure
k8sgpt cache remove
Могут быть сценарии, где вы хотите написать свой собственный анализатор на языке по вашему выбору. K8SGPT теперь поддерживает способность делать это, соблюдая схему и обслуживая анализатор для потребления. Для этого определите анализатор в конфигурации K8SGPT, и он добавит его в процесс сканирования. В дополнение к этому вам нужно будет включить следующий флаг на анализе:
k8sgpt analyze --custom-analysis
Вот пример локального анализатора хоста в Rust, когда он запускается на localhost:8080 Конфигурация K8SGPT может забрать его со следующими дополнениями:
custom_analyzers:
- name: host-analyzer
connection:
url: localhost
port: 8080
Теперь это дает возможность передавать информацию HostoS (от этого примера анализатора) в K8SGPT, чтобы использовать в качестве контекста с нормальным анализом.
Смотрите документы о том, как написать пользовательский анализатор
Список пользовательских анализаторов настроен
k8sgpt custom-analyzer list
Добавление пользовательского анализатора без установки
k8sgpt custom-analyzer add --name my-custom-analyzer --port 8085
Удаление пользовательского анализатора
k8sgpt custom-analyzer remove --names "my-custom-analyzer,my-custom-analyzer-2"
Найдите нашу официальную документацию, доступную здесь
Пожалуйста, прочитайте наше руководство по внесению.
Найдите нас в Slack