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 с помощью запросов на естественном языке. Для получения дополнительной информации обратитесь к ресурсам, перечисленным в следующем разделе.