1. Введение
kubectl-ai
— это интеллектуальный интерфейс на базе искусственного интеллекта, который преобразует намерения пользователя в точные операции Kubernetes, делая управление Kubernetes более доступным и эффективным.
Что ты будешь делать?
- Вы будете работать с
kubectl-ai
— инструментом Kubernetes Assistant на базе искусственного интеллекта для управления кластером GKE.
Чему вы научитесь
- Вам предстоит создать кластер GKE и настроить
kubectl-ai.
- Вы будете выполнять такие задачи Kubernetes, как управление, создание и исправление ресурсов, а также устранение неполадок в кластерах и ресурсах.
Что вам понадобится
- веб-браузер Chrome
- Аккаунт Gmail
- Облачный проект с включенным биллингом
- API-ключ Gemini
В этой лабораторной работе предполагается, что пользователь знаком с базовыми знаниями Kubernetes.
2. Прежде чем начать
Создать проект
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
- Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud и предустановленную вместе с bq. Нажмите «Активировать Cloud Shell» в верхней части консоли Google Cloud.
- После подключения к Cloud Shell вы проверяете, что вы уже прошли аутентификацию и что проекту присвоен ваш идентификатор проекта, с помощью следующей команды:
gcloud auth list
- Выполните следующую команду в Cloud Shell, чтобы подтвердить, что команда gcloud знает о вашем проекте.
gcloud config list project
- Если ваш проект не настроен, используйте следующую команду для его настройки:
gcloud config set project <YOUR_PROJECT_ID>
- Включите необходимые API с помощью команды, показанной ниже. Это может занять несколько минут, поэтому, пожалуйста, наберитесь терпения.
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
При успешном выполнении команды вы должны увидеть сообщение, похожее на показанное ниже:
Operation "operations/..." finished successfully.
Если какой-либо API отсутствует, вы всегда можете включить его в ходе реализации.
Информацию о командах и использовании gcloud см. в документации .
3. Настройте кластер GKE
На этом этапе мы настроим кластер GKE, в котором будем запускать наши команды. Убедитесь, что вы выполнили предыдущие шаги, указали правильный идентификатор проекта и включили необходимые службы в своем проекте Google Cloud.
Создать кластер GKE
Выполните следующую команду в Cloud Shell. Если вы хотите создать кластер в другой зоне, измените значение параметра --zone
на нужное.
gcloud container clusters create my-gke-cluster \
--num-nodes 2 \
--machine-type e2-standard-4 \
--zone us-central1-a
Это может занять некоторое время, поэтому проявите терпение. После завершения вы увидите вывод, похожий на показанный ниже:
Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster my-gke-cluster in us-central1-a... Cluster is being health-checked (Kubernetes Control Plane is healthy)...done.
Created [https://container.googleapis.com/v1/projects/YOUR_PROJECT_ID/zones/us-central1-a/clusters/my-gke-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-a/my-gke-cluster?project=YOUR_PROJECT_ID
kubeconfig entry generated for my-gke-cluster.
NAME: my-gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.33.4-gke.1350000
MASTER_IP: 34.59.221.183
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.33.4-gke.1350000
NUM_NODES: 2
STATUS: RUNNING
STACK_TYPE: IPV4
Проверьте данные кластера GKE
Сначала давайте получим учетные данные кластера:
gcloud container clusters get-credentials my-gke-cluster \
--zone us-central1-a
Вы должны увидеть вывод, как показано ниже:
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.
Далее проверим данные кластера:
kubectl get nodes
Вы должны увидеть примерно такой вывод:
NAME STATUS ROLES AGE VERSION
gke-my-gke-cluster-default-pool-c63d5936-2f1z Ready <none> 2m58s v1.33.4-gke.1350000
gke-my-gke-cluster-default-pool-c63d5936-fqtl Ready <none> 3m2s v1.33.4-gke.1350000
Наконец, давайте проверим пространство имен кластера:
kubectl get namespaces
Вы должны увидеть примерно такой вывод:
NAME STATUS AGE
default Active 6m16s
gke-managed-cim Active 4m21s
gke-managed-system Active 4m6s
gke-managed-volumepopulator Active 4m
gmp-public Active 3m40s
gmp-system Active 3m41s
kube-node-lease Active 6m16s
kube-public Active 6m16s
kube-system Active 6m16s
4. Установите kubectl-ai CLI
Мы будем использовать способ быстрой установки (рекомендуется) для установки kubectl-ai CLI
.
Введите следующую команду в Cloud Shell:
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
Это загрузит и установит kubectl-ai CLI
, и в конце вы увидите следующее сообщение:
✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.
Мы можем проверить, работает ли команда kubectl-ai
, выполнив следующую команду:
kubectl-ai
Примечание: указанная выше команда вернет ошибку, сообщающую, что
creating llm client: GEMINI_API_KEY environment variable not set
Обратите внимание, что kubectl-ai поддерживает модели ИИ от gemini
, vertexai
, azopenai
, openai
, grok
, bedrock
и локальных поставщиков LLM, таких как ollama
и llama.cpp
. В нашем случае мы будем использовать Gemini (Google) и для этого нам потребуется получить API-ключ через Google AI Studio . После генерации ключа и получения готового значения используйте следующую команду в Cloud Shell, чтобы задать переменную среды GEMINI_API_KEY, указывающую на ваш ключ.
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Примечание: используйте «GEMINI_API_KEY» только в качестве значения ключа.
Запустите kubectl-ai
еще раз, и на этот раз вы увидите, что он запускается и ожидает вашей команды в своем интерактивном терминале.
$ kubectl-ai
Hey there, what can I help you with today?
>>>
Попробуйте ввести несколько запросов, связанных с командами kubectl, в командной строке. Ниже приведены несколько примеров:
-
What is the command to get the nodes in a cluster?
-
list pods
Выйти из терминала kubectl-ai
можно, введя команду quit
.
5. Использование kubectl-ai
Теперь, когда вы успешно настроили kubectl-ai
, самое главное, что теперь вы можете взаимодействовать с кластером, используя запросы на естественном языке. Давайте попробуем выполнить несколько других команд:
Давайте выполним следующую команду:
kubectl-ai --model gemini-2.5-flash "list pods in default namespace"
Это даст следующий результат:
Running: kubectl get pods -n default
There are no resources found in the default namespace.
>>>
Обратите внимание, как он преобразовал наш запрос на естественном языке для перечисления модулей в эквивалентную команду kubectl
.
Кроме того, обратите внимание, что теперь мы находимся внутри интерактивного терминала kubectl-ai
( >>>
), где можем продолжать с ним взаимодействовать.
Дайте следующую команду:
how many pods are there in kube-system namespace
Результат показан ниже:
>>> how many pods are there in kube-system namespace
Running: kubectl get pods -n kube-system --output=jsonpath='{.items[*].metadata.name}'
There are 18 pods in the kube-system namespace.
Команда одиночного выстрела
В предыдущем разделе было показано, как запустить kubectl-ai
и оставаться в интерактивном терминале для ввода последующих команд. Это не подходит для команд, которые вы хотите выполнять автономно, без интерактивного приглашения, ожидая следующей команды.
Введите метод одиночной команды с параметром --quiet
.
Вот пример команды для создания развертывания.
kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions
Это приведет к выполнению команды create deployment
, как показано ниже:
Running: kubectl create deployment nginx --image=nginx --replicas=2
I have created a deployment named nginx with 2 replicas. You can verify this by running kubectl get deployments .
Таким образом нам удалось настроить kubectl-ai
для взаимодействия с нашим текущим кластером GKE.
Мы только что выполнили несколько команд и продемонстрировали режим работы с kubectl-ai
. Вы можете перенаправлять вывод в другие инструменты, анализировать ошибки, сохранять данные между различными сеансами запуска kubectl-ai
и многое другое. Рекомендуем ознакомиться с разделом «Использование» в документации к инструменту.
6. (Необязательно) Интерфейс чата kubectl-ai
В определённых ситуациях вам может быть удобнее работать с kubectl-ai
через стандартный интерфейс чата. Kubectl-ai
имеет собственный пользовательский интерфейс, который можно запустить с помощью команды, показанной ниже, в Cloud Shell:
kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080
Это запустит утилиту в интерфейсе чата, и вы должны увидеть вывод, аналогичный следующему:
listening on http://[::]:8080
Нажмите «Веб-просмотр» в Cloud Shell, как показано ниже:
Затем нажмите «Предварительный просмотр» на порту 8080. Это запустит браузер и сделает доступным интерфейс веб-чата, как показано ниже:
Вот пример запроса, который мы выполнили в интерфейсе чата:
Попробуйте выполнить другие запросы в этом интерфейсе. Он также предоставляет подсказки о том, какие ещё запросы на естественном языке вы можете выполнить.
7. Уборка
Чтобы избежать постоянных списаний с вашего аккаунта Google Cloud, важно удалить ресурсы, которые мы создали во время этого семинара.
Если вам не нужен кластер GKE, который мы создали в предыдущем разделе этой лабораторной работы, вы можете удалить его с помощью следующей команды:
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. Поздравления
Поздравляем! Вы успешно использовали kubectl-ai, помощник Kubernetes на базе искусственного интеллекта для управления кластером Kubernetes с помощью запросов на естественном языке. Подробнее см. в ресурсах, перечисленных в следующем разделе.