diff --git a/.claude/README.md b/.claude/README.md new file mode 100644 index 0000000000..f5593c7bc3 --- /dev/null +++ b/.claude/README.md @@ -0,0 +1,349 @@ +# Yandex Cloud Skills для Claude Code + +Этот репозиторий содержит специализированные навыки (skills) и команды для работы с Yandex Cloud в Claude Code. + +## Содержание + +- [Навыки (Skills)](#навыки-skills) +- [Команды (Commands)](#команды-commands) +- [Установка](#установка) +- [Использование](#использование) +- [Примеры](#примеры) + +## Навыки (Skills) + +### `yandex-cloud` - Основной навык для работы с Yandex Cloud + +Комплексный навык, предоставляющий экспертные знания по всем сервисам и инструментам Yandex Cloud. + +**Активация:** +``` +В чате Claude Code просто упомяните задачу, связанную с Yandex Cloud, и навык автоматически подключится. +``` + +**Возможности:** + +1. **Автоматизация развёртывания** + - Создание и управление виртуальными машинами + - Настройка Kubernetes кластеров + - Развёртывание serverless приложений + - CI/CD интеграции + +2. **Мониторинг и логирование** + - Настройка Yandex Monitoring + - Работа с Yandex Logging + - Настройка алертов + - Анализ метрик и логов + +3. **Управление конфигурацией** + - Terraform конфигурации + - Работа с Lockbox (секреты) + - Версионирование инфраструктуры + +4. **Работа с сервисами** + - Compute Cloud + - Managed Kubernetes + - Object Storage + - Managed Databases (PostgreSQL, MySQL, ClickHouse, и др.) + - VPC и сетевые сервисы + - AI/ML сервисы (DataSphere, SpeechKit, Vision) + - И многое другое (более 100 сервисов) + +5. **Безопасность** + - IAM политики + - Security Groups + - KMS и шифрование + - Audit Trails + +6. **Оптимизация затрат** + - Анализ использования ресурсов + - Рекомендации по экономии + - Preemptible VM и другие оптимизации + +## Команды (Commands) + +### `/yc-setup` - Настройка Yandex Cloud CLI + +Помогает установить и настроить Yandex Cloud CLI (`yc`). + +**Использование:** +``` +/yc-setup +``` + +**Что делает:** +- Проверяет установку CLI +- Помогает с установкой для вашей ОС +- Настраивает профили +- Проверяет доступ к облаку + +### `/yc-search-docs` - Поиск в документации + +Быстрый поиск информации по сервисам Yandex Cloud в локальной документации. + +**Использование:** +``` +/yc-search-docs +``` + +**Что делает:** +- Поиск по всем сервисам +- Находит примеры использования +- Показывает CLI и API справку +- Предоставляет ссылки на детальную документацию + +**Примеры запросов:** +- "Как создать VM?" +- "Как подключиться к PostgreSQL?" +- "Настройка Kubernetes autoscaling" + +### `/yc-create-terraform` - Генерация Terraform конфигурации + +Создаёт готовую Terraform конфигурацию для вашей инфраструктуры. + +**Использование:** +``` +/yc-create-terraform +``` + +**Что делает:** +- Создаёт структуру проекта +- Генерирует конфигурацию ресурсов +- Добавляет переменные и outputs +- Следует best practices + +**Поддерживаемые ресурсы:** +- VPC (networks, subnets, security groups) +- Compute instances +- Kubernetes clusters +- Managed databases +- Object Storage +- Load balancers +- И многое другое + +### `/yc-troubleshoot` - Диагностика проблем + +Помогает найти и решить проблемы с ресурсами Yandex Cloud. + +**Использование:** +``` +/yc-troubleshoot +``` + +**Что делает:** +- Проводит диагностику +- Проверяет IAM, сети, квоты +- Анализирует логи +- Предлагает решения + +**Типичные сценарии:** +- Проблемы с доступом +- Сетевые проблемы +- VM не запускается +- Kubernetes pods в CrashLoop +- Проблемы с БД +- Ошибки в Object Storage + +## Установка + +Навыки и команды уже включены в этот репозиторий. Claude Code автоматически обнаружит их в директории `.claude/`. + +**Структура:** +``` +.claude/ +├── README.md # Эта документация +├── skills/ +│ └── yandex-cloud.md # Основной навык +└── commands/ + ├── yc-setup.md # Команда настройки CLI + ├── yc-search-docs.md # Команда поиска + ├── yc-create-terraform.md # Команда генерации Terraform + └── yc-troubleshoot.md # Команда диагностики +``` + +## Использование + +### Базовая работа + +Просто начните диалог с Claude Code и опишите вашу задачу: + +``` +"Помоги создать Kubernetes кластер в Yandex Cloud" +"Как настроить автоскейлинг для моего приложения?" +"Нужно развернуть PostgreSQL с репликацией" +``` + +Навык автоматически активируется и предоставит: +- Пошаговые инструкции +- Примеры команд +- Конфигурационные файлы +- Ссылки на документацию +- Best practices + +### Использование команд + +Для специфических задач используйте slash-команды: + +**Пример 1: Настройка CLI** +``` +/yc-setup +``` +Claude проведет вас через процесс установки и настройки. + +**Пример 2: Поиск документации** +``` +/yc-search-docs + +Затем: "Как работать с Container Registry?" +``` + +**Пример 3: Создание Terraform конфигурации** +``` +/yc-create-terraform + +Затем: "Нужно создать VM с PostgreSQL и Load Balancer" +``` + +**Пример 4: Решение проблем** +``` +/yc-troubleshoot + +Затем: "Мой pod в Kubernetes не может подключиться к БД" +``` + +## Примеры + +### Пример 1: Создание веб-приложения на Kubernetes + +``` +Запрос: "Помоги развернуть веб-приложение на Kubernetes в Yandex Cloud" + +Claude: +1. Создаст Kubernetes кластер +2. Настроит node group с автоскейлингом +3. Подготовит манифесты Deployment, Service, Ingress +4. Настроит Application Load Balancer +5. Добавит мониторинг и логирование +6. Предоставит команды для деплоя +``` + +### Пример 2: Миграция базы данных + +``` +Запрос: "Нужно перенести PostgreSQL в Managed PostgreSQL" + +Claude: +1. Создаст Managed PostgreSQL кластер +2. Настроит сеть и security groups +3. Подготовит команды для бэкапа +4. Использует Data Transfer для миграции +5. Проверит целостность данных +6. Настроит мониторинг +``` + +### Пример 3: Infrastructure as Code + +``` +Запрос: "/yc-create-terraform - нужна инфраструктура для микросервисов" + +Claude создаст: +- VPC с подсетями +- Kubernetes кластер +- Managed PostgreSQL +- Object Storage для статики +- Container Registry +- Application Load Balancer +- Мониторинг и логирование +- Полную Terraform конфигурацию с модулями +``` + +### Пример 4: Оптимизация затрат + +``` +Запрос: "Как уменьшить расходы на облако?" + +Claude: +1. Проанализирует текущие ресурсы +2. Найдёт неиспользуемые ресурсы +3. Предложит использование preemptible VM +4. Настроит автоскейлинг +5. Оптимизирует размеры дисков и VM +6. Настроит lifecycle policies для S3 +7. Предоставит оценку экономии +``` + +### Пример 5: Troubleshooting + +``` +Запрос: "/yc-troubleshoot - VM не доступна по SSH" + +Claude: +1. Проверит статус VM +2. Проверит Security Groups +3. Проверит наличие публичного IP +4. Проверит SSH ключи в метаданных +5. Посмотрит serial port output +6. Предложит решение +``` + +## Лучшие практики + +### 1. Безопасность + +- Всегда используйте принцип наименьших привилегий для IAM +- Храните секреты в Lockbox, не в коде +- Используйте Security Groups для ограничения доступа +- Включайте шифрование для дисков и бакетов + +### 2. Инфраструктура как код + +- Используйте Terraform для всей инфраструктуры +- Версионируйте конфигурации в Git +- Храните state в Object Storage +- Используйте модули для переиспользования + +### 3. Мониторинг + +- Настраивайте логирование для всех сервисов +- Создавайте дашборды в Yandex Monitoring +- Настраивайте алерты для критичных событий +- Используйте Audit Trails для аудита + +### 4. Экономия + +- Используйте preemptible VM для некритичных задач +- Настраивайте автоскейлинг +- Удаляйте неиспользуемые ресурсы +- Используйте lifecycle policies для S3 + +### 5. Производительность + +- Выбирайте правильные размеры ресурсов +- Используйте SSD диски где нужна производительность +- Настраивайте кеширование +- Используйте CDN для статического контента + +## Поддержка + +Если у вас есть вопросы или проблемы: + +1. Используйте команду `/yc-troubleshoot` для диагностики +2. Обратитесь к локальной документации в `ru/` или `en/` +3. Посетите официальную документацию: https://yandex.cloud/docs +4. Обратитесь в техподдержку Yandex Cloud + +## Дополнительные ресурсы + +- [Официальная документация Yandex Cloud](https://yandex.cloud/docs) +- [Terraform Provider](https://registry.terraform.io/providers/yandex-cloud/yandex/latest/docs) +- [GitHub Yandex Cloud](https://github.com/yandex-cloud) +- [Yandex Cloud CLI](https://yandex.cloud/ru/docs/cli/) +- [Примеры и туториалы](https://yandex.cloud/ru/docs/tutorials/) + +## Обновления + +Навыки регулярно обновляются с учётом новых сервисов и функций Yandex Cloud. Документация синхронизируется с официальным репозиторием. + +## Лицензия + +Навыки и команды предоставляются "как есть" для использования с Claude Code в рамках работы с документацией Yandex Cloud. diff --git a/.claude/commands/yc-create-terraform.md b/.claude/commands/yc-create-terraform.md new file mode 100644 index 0000000000..fbdf31e66c --- /dev/null +++ b/.claude/commands/yc-create-terraform.md @@ -0,0 +1,344 @@ +--- +description: Генерация Terraform конфигурации для Yandex Cloud инфраструктуры +--- + +Вы - эксперт по Terraform для Yandex Cloud. Помогите создать конфигурацию инфраструктуры. + +**Ваша задача:** + +1. Узнайте требования к инфраструктуре +2. Создайте Terraform конфигурацию следуя best practices +3. Включите необходимые ресурсы и зависимости +4. Добавьте переменные для гибкости +5. Создайте outputs для удобства + +**Базовая структура:** + +``` +terraform/ +├── main.tf # Основные ресурсы +├── variables.tf # Переменные +├── outputs.tf # Выходные значения +├── versions.tf # Версии провайдеров +├── terraform.tfvars # Значения переменных (не коммитить!) +└── README.md # Документация +``` + +**Шаблон versions.tf:** + +```hcl +terraform { + required_version = ">= 1.0.0" + + required_providers { + yandex = { + source = "yandex-cloud/yandex" + version = ">= 0.100.0" + } + } + + backend "s3" { + endpoints = { + s3 = "https://storage.yandexcloud.net" + } + bucket = "terraform-state" + region = "ru-central1" + key = "terraform.tfstate" + + skip_region_validation = true + skip_credentials_validation = true + skip_requesting_account_id = true + skip_s3_checksum = true + } +} + +provider "yandex" { + zone = var.zone +} +``` + +**Типичные ресурсы:** + +1. **VPC и сети:** +```hcl +resource "yandex_vpc_network" "main" { + name = var.network_name +} + +resource "yandex_vpc_subnet" "subnet" { + name = var.subnet_name + zone = var.zone + network_id = yandex_vpc_network.main.id + v4_cidr_blocks = [var.subnet_cidr] +} + +resource "yandex_vpc_security_group" "sg" { + name = var.sg_name + network_id = yandex_vpc_network.main.id + + ingress { + protocol = "TCP" + port = 443 + v4_cidr_blocks = ["0.0.0.0/0"] + } + + egress { + protocol = "ANY" + v4_cidr_blocks = ["0.0.0.0/0"] + } +} +``` + +2. **Compute Instance:** +```hcl +resource "yandex_compute_instance" "vm" { + name = var.instance_name + platform_id = "standard-v3" + zone = var.zone + + resources { + cores = var.instance_cores + memory = var.instance_memory + core_fraction = var.instance_core_fraction + } + + boot_disk { + initialize_params { + image_id = var.image_id + size = var.disk_size + type = var.disk_type + } + } + + network_interface { + subnet_id = yandex_vpc_subnet.subnet.id + nat = var.assign_public_ip + security_group_ids = [yandex_vpc_security_group.sg.id] + } + + metadata = { + ssh-keys = "ubuntu:${file(var.ssh_key_path)}" + user-data = templatefile("${path.module}/cloud-init.yaml", { + ssh_key = file(var.ssh_key_path) + }) + } + + scheduling_policy { + preemptible = var.preemptible + } +} +``` + +3. **Managed Kubernetes:** +```hcl +resource "yandex_kubernetes_cluster" "k8s" { + name = var.cluster_name + network_id = yandex_vpc_network.main.id + + master { + version = var.k8s_version + zonal { + zone = var.zone + subnet_id = yandex_vpc_subnet.subnet.id + } + + public_ip = true + + security_group_ids = [yandex_vpc_security_group.sg.id] + } + + service_account_id = yandex_iam_service_account.k8s_sa.id + node_service_account_id = yandex_iam_service_account.k8s_node_sa.id + + release_channel = "STABLE" + network_policy_provider = "CALICO" +} + +resource "yandex_kubernetes_node_group" "workers" { + cluster_id = yandex_kubernetes_cluster.k8s.id + name = "workers" + version = var.k8s_version + + instance_template { + platform_id = "standard-v3" + + resources { + cores = var.node_cores + memory = var.node_memory + } + + boot_disk { + size = var.node_disk_size + type = var.node_disk_type + } + + network_interface { + subnet_ids = [yandex_vpc_subnet.subnet.id] + nat = true + security_group_ids = [yandex_vpc_security_group.sg.id] + } + + scheduling_policy { + preemptible = var.nodes_preemptible + } + } + + scale_policy { + auto_scale { + min = var.min_nodes + max = var.max_nodes + initial = var.initial_nodes + } + } +} +``` + +4. **Managed PostgreSQL:** +```hcl +resource "yandex_mdb_postgresql_cluster" "postgres" { + name = var.db_cluster_name + environment = var.environment + network_id = yandex_vpc_network.main.id + + config { + version = var.postgres_version + resources { + resource_preset_id = var.db_preset + disk_size = var.db_disk_size + disk_type_id = var.db_disk_type + } + } + + host { + zone = var.zone + subnet_id = yandex_vpc_subnet.subnet.id + } + + security_group_ids = [yandex_vpc_security_group.sg.id] +} + +resource "yandex_mdb_postgresql_database" "db" { + cluster_id = yandex_mdb_postgresql_cluster.postgres.id + name = var.database_name + owner = yandex_mdb_postgresql_user.db_user.name +} + +resource "yandex_mdb_postgresql_user" "db_user" { + cluster_id = yandex_mdb_postgresql_cluster.postgres.id + name = var.db_username + password = var.db_password +} +``` + +5. **Object Storage:** +```hcl +resource "yandex_iam_service_account" "s3_sa" { + name = var.s3_sa_name +} + +resource "yandex_resourcemanager_folder_iam_member" "s3_editor" { + folder_id = var.folder_id + role = "storage.editor" + member = "serviceAccount:${yandex_iam_service_account.s3_sa.id}" +} + +resource "yandex_iam_service_account_static_access_key" "s3_key" { + service_account_id = yandex_iam_service_account.s3_sa.id +} + +resource "yandex_storage_bucket" "bucket" { + access_key = yandex_iam_service_account_static_access_key.s3_key.access_key + secret_key = yandex_iam_service_account_static_access_key.s3_key.secret_key + bucket = var.bucket_name + + versioning { + enabled = var.bucket_versioning + } + + lifecycle_rule { + enabled = true + + expiration { + days = var.bucket_retention_days + } + } +} +``` + +**Variables.tf шаблон:** + +```hcl +variable "zone" { + description = "Yandex Cloud zone" + type = string + default = "ru-central1-a" +} + +variable "folder_id" { + description = "Yandex Cloud folder ID" + type = string +} + +variable "cloud_id" { + description = "Yandex Cloud ID" + type = string +} + +variable "network_name" { + description = "VPC network name" + type = string + default = "main-network" +} + +# Добавьте другие переменные по необходимости +``` + +**Outputs.tf шаблон:** + +```hcl +output "instance_ip" { + description = "Public IP of the instance" + value = yandex_compute_instance.vm.network_interface.0.nat_ip_address +} + +output "k8s_cluster_id" { + description = "Kubernetes cluster ID" + value = yandex_kubernetes_cluster.k8s.id +} + +output "db_connection" { + description = "Database connection string" + value = "postgresql://${var.db_username}@${yandex_mdb_postgresql_cluster.postgres.host.0.fqdn}:6432/${var.database_name}" + sensitive = true +} +``` + +**Команды для работы:** + +```bash +# Инициализация +terraform init + +# Планирование +terraform plan -out=tfplan + +# Применение +terraform apply tfplan + +# Уничтожение +terraform destroy + +# Форматирование +terraform fmt -recursive + +# Валидация +terraform validate +``` + +Спросите пользователя: +- Какие ресурсы нужно создать? +- Какое окружение (dev/test/prod)? +- Нужны ли дополнительные настройки (autoscaling, monitoring)? +- Где хранить state (локально или в S3)? + +Создайте полную конфигурацию с комментариями и примерами использования. diff --git a/.claude/commands/yc-search-docs.md b/.claude/commands/yc-search-docs.md new file mode 100644 index 0000000000..d64a796db1 --- /dev/null +++ b/.claude/commands/yc-search-docs.md @@ -0,0 +1,76 @@ +--- +description: Поиск информации по сервисам Yandex Cloud в локальной документации +--- + +Вы - эксперт по документации Yandex Cloud. Помогите пользователю найти нужную информацию. + +**Ваша задача:** + +1. Понять, что именно ищет пользователь (сервис, функцию, API, концепцию) +2. Найти соответствующую документацию в репозитории +3. Предоставить релевантную информацию с примерами + +**Структура документации:** + +``` +ru/[service-name]/ +├── index.yaml # Обзор сервиса +├── quickstart.md # Быстрый старт +├── concepts/ # Концепции +├── operations/ # Пошаговые инструкции +├── tutorials/ # Учебники +├── api-ref/ # API справочник +├── cli-ref/ # CLI справочник +├── security/ # Безопасность +└── pricing.md # Тарификация +``` + +**Основные сервисы:** + +- `compute` - Compute Cloud (ВМ) +- `managed-kubernetes` - Managed Service for Kubernetes +- `storage` - Object Storage +- `vpc` - Virtual Private Cloud +- `managed-postgresql`, `managed-mysql`, `managed-clickhouse` - Управляемые БД +- `iam` - Identity and Access Management +- `kms` - Key Management Service +- `monitoring` - Yandex Monitoring +- `logging` - Yandex Logging +- `functions` - Cloud Functions +- `serverless-containers` - Serverless Containers +- `container-registry` - Container Registry +- `api-gateway` - API Gateway +- `datasphere` - DataSphere +- `speechkit` - SpeechKit +- `vision` - Vision +- `translate` - Translate + +**Процесс поиска:** + +1. Используйте Grep для поиска по ключевым словам +2. Читайте найденные файлы с помощью Read +3. Проверяйте связанные разделы (operations, concepts) +4. Предоставляйте примеры кода и команд + +**Пример поиска:** + +```bash +# Поиск информации о создании VM +Grep в ru/compute/ по ключевым словам +Read найденных файлов +Предоставить примеры из operations/ + +# Поиск CLI команд +Read ru/[service]/cli-ref/ +Показать синтаксис и примеры +``` + +Спросите пользователя: +- Какой сервис интересует? +- Нужны ли примеры использования? +- Интересуют ли конкретные операции? + +После поиска предоставьте: +- Ссылки на соответствующие файлы в репозитории +- Примеры кода/команд +- Дополнительные ресурсы diff --git a/.claude/commands/yc-setup.md b/.claude/commands/yc-setup.md new file mode 100644 index 0000000000..7349e59656 --- /dev/null +++ b/.claude/commands/yc-setup.md @@ -0,0 +1,76 @@ +--- +description: Помощь в настройке Yandex Cloud CLI и создании начальной конфигурации +--- + +Вы - эксперт по настройке Yandex Cloud CLI. Помогите пользователю: + +1. Проверьте, установлен ли Yandex Cloud CLI (`yc`) +2. Если не установлен, предоставьте инструкцию по установке для текущей ОС +3. Помогите с инициализацией: `yc init` +4. Настройте профиль с необходимыми параметрами +5. Проверьте доступ к облаку и папке + +Шаги: + +1. **Проверка установки CLI:** +```bash +yc --version +``` + +2. **Установка (если нужно):** + +Linux/macOS: +```bash +curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash +source ~/.bashrc # или ~/.zshrc +``` + +Windows (PowerShell): +```powershell +iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-yc/install.ps1') +``` + +3. **Инициализация:** +```bash +yc init +``` + +4. **Создание/настройка профиля:** +```bash +# Создать новый профиль +yc config profile create my-profile + +# Установить OAuth токен +yc config set token + +# Установить облако и папку +yc config set cloud-id +yc config set folder-id + +# Установить зону по умолчанию +yc config set compute-default-zone ru-central1-a +``` + +5. **Проверка конфигурации:** +```bash +# Список профилей +yc config profile list + +# Текущий профиль +yc config profile get + +# Проверка доступа +yc resource-manager folder list +``` + +Спросите пользователя: +- Установлен ли CLI? +- Есть ли OAuth токен или нужна помощь с его получением? +- Какие облако и папка будут использоваться? +- Какая зона по умолчанию предпочтительна? + +После настройки предложите протестировать доступ, например: +```bash +yc compute instance list +yc vpc network list +``` diff --git a/.claude/commands/yc-troubleshoot.md b/.claude/commands/yc-troubleshoot.md new file mode 100644 index 0000000000..af41d72037 --- /dev/null +++ b/.claude/commands/yc-troubleshoot.md @@ -0,0 +1,310 @@ +--- +description: Диагностика и решение проблем с ресурсами Yandex Cloud +--- + +Вы - эксперт по диагностике проблем в Yandex Cloud. Помогите пользователю найти и решить проблему. + +**Ваша задача:** + +1. Понять суть проблемы +2. Собрать необходимую диагностическую информацию +3. Проанализировать возможные причины +4. Предложить решения + +**Чеклист диагностики:** + +## 1. Проблемы с доступом + +**Проверка IAM прав:** +```bash +# Проверить текущего пользователя +yc iam user-account get + +# Проверить роли на ресурс +yc resource-manager folder list-access-bindings + +# Проверить Service Account +yc iam service-account get +yc iam service-account list-access-bindings + +# Проверить ключи SA +yc iam key list --service-account-id +``` + +**Типичные проблемы:** +- Недостаточно прав - добавить роль +- Истек срок действия токена - обновить +- Неверный Service Account - проверить привязку + +## 2. Проблемы с сетью + +**Проверка VPC:** +```bash +# Список сетей +yc vpc network list + +# Детали сети +yc vpc network get + +# Список подсетей +yc vpc subnet list --network-id + +# Проверка route table +yc vpc route-table list +yc vpc route-table get + +# Проверка NAT +yc vpc gateway list +``` + +**Проверка Security Groups:** +```bash +# Список SG +yc vpc security-group list + +# Детали SG +yc vpc security-group get + +# Проверить правила +yc vpc security-group get --format json | jq '.rules' +``` + +**Типичные проблемы:** +- Нет правила в SG - добавить ingress/egress +- Неверная подсеть - проверить CIDR +- Отсутствует NAT - создать NAT gateway + +**Диагностика подключения:** +```bash +# С VM на внешний ресурс +curl -v https://example.com +ping 8.8.8.8 + +# Между VM в одной сети +ping +telnet + +# К управляемой БД +pg_isready -h -p 6432 +``` + +## 3. Проблемы с VM + +**Проверка состояния:** +```bash +# Статус VM +yc compute instance get + +# Серийный порт (логи загрузки) +yc compute instance get-serial-port-output + +# Метаданные +yc compute instance get --format json | jq '.metadata' +``` + +**Проверка ресурсов:** +```bash +# CPU, RAM, Disk +yc compute instance get --format json | jq '.resources' + +# Диски +yc compute disk list +yc compute disk get +``` + +**Типичные проблемы:** +- VM не запускается - проверить serial-port-output +- Нет доступа по SSH - проверить SG, SSH ключи, user-data +- Мало ресурсов - изменить preset или добавить диск +- Диск заполнен - увеличить размер или очистить + +**Изменение VM:** +```bash +# Изменить ресурсы (требует остановки) +yc compute instance stop +yc compute instance update \ + --cores 4 \ + --memory 8 + +# Увеличить диск +yc compute disk update --size 100 +``` + +## 4. Проблемы с Kubernetes + +**Проверка кластера:** +```bash +# Статус кластера +yc managed-kubernetes cluster get + +# Состояние master +yc managed-kubernetes cluster get --format json | jq '.master' + +# Node groups +yc managed-kubernetes node-group list --cluster-id +yc managed-kubernetes node-group get +``` + +**Получение credentials:** +```bash +# Обновить kubeconfig +yc managed-kubernetes cluster get-credentials --external + +# Проверить подключение +kubectl cluster-info +kubectl get nodes +``` + +**Диагностика приложений:** +```bash +# Pods +kubectl get pods -A +kubectl describe pod -n +kubectl logs -n + +# Services +kubectl get svc -A +kubectl describe svc -n + +# Ingress +kubectl get ingress -A +kubectl describe ingress -n +``` + +**Типичные проблемы:** +- Pods не запускаются - проверить events, logs +- ImagePullBackOff - проверить доступ к registry +- CrashLoopBackOff - проверить логи приложения +- Service недоступен - проверить endpoints, SG +- Ingress не работает - проверить ALB, сертификаты + +## 5. Проблемы с БД + +**Проверка кластера:** +```bash +# PostgreSQL +yc managed-postgresql cluster get +yc managed-postgresql cluster list-logs --limit 100 + +# MySQL +yc managed-mysql cluster get +yc managed-mysql cluster list-logs --limit 100 + +# ClickHouse +yc managed-clickhouse cluster get +yc managed-clickhouse cluster list-logs --limit 100 +``` + +**Проверка подключения:** +```bash +# PostgreSQL +psql "host= port=6432 dbname= user= sslmode=require" + +# MySQL +mysql -h -P 3306 -u -p --ssl-mode=REQUIRED + +# ClickHouse +clickhouse-client --host --secure --user --password +``` + +**Типичные проблемы:** +- Нет подключения - проверить SG, network +- Ошибка аутентификации - проверить пользователя, пароль +- БД недоступна - проверить статус хостов +- Медленные запросы - проверить логи, индексы + +## 6. Проблемы с Object Storage + +**Проверка бакета:** +```bash +# Список бакетов (через aws cli) +aws --endpoint-url=https://storage.yandexcloud.net s3 ls + +# Проверка политик +aws --endpoint-url=https://storage.yandexcloud.net \ + s3api get-bucket-policy --bucket + +# Проверка CORS +aws --endpoint-url=https://storage.yandexcloud.net \ + s3api get-bucket-cors --bucket +``` + +**Типичные проблемы:** +- Access Denied - проверить IAM, bucket policy +- CORS errors - настроить CORS policy +- Объекты не видны - проверить ACL +- Ошибки загрузки - проверить квоты + +## 7. Проблемы с квотами + +**Проверка квот:** +```bash +# Текущие квоты +yc resource-manager quota list --cloud-id + +# По сервису +yc compute quota list +yc vpc quota list +``` + +**Решение:** +- Запросить увеличение через поддержку +- Оптимизировать использование ресурсов +- Удалить неиспользуемые ресурсы + +## 8. Проблемы с мониторингом и логами + +**Yandex Monitoring:** +```bash +# Метрики через API +# Используйте консоль или API для просмотра метрик +``` + +**Yandex Logging:** +```bash +# Чтение логов +yc logging read --group-name \ + --since