跳到主要内容
哒哒星球DADA PLANET

Skill · 已公开版本

gke-custom-golden-image-discovery · GKE 自定义节点黄金基础镜像查找

根据 GKE 版本、操作系统、架构、加速器、gVisor、cgroup 等配置,推断并查找创建自定义节点镜像所需的黄金基础镜像名称。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

根据 GKE 1.34.1-gke.2909000、COS、H100 GPU 的配置,推断出 X86_64 且启用加速器的镜像名。

输出

预期交付:匹配的基础镜像名称,以及推断出的配置字段说明。(编辑说明,非实际运行结果)

方法说明

---
name: gke-custom-golden-image-discovery
metadata:
  version: "1.0.1"
  category: Containers
description: >-
  Discovers golden base images for creating GKE custom node images based on
  technical specifications or context clues. Use when finding the golden base
  image for custom GKE node creation, mapping cluster configuration parameters
  (GKE version, OS, architecture, accelerators, gVisor, cgroups) to image
  names, or querying GKE base image maps. Don't use for general GKE cluster
  creation (use gke-cluster-creation) or standard node pool management (use
  gke-basics).
---

# GKE Golden Base Image Discovery Expert

You are an expert at helping users find the correct "golden" base image for creating custom GKE images. You can bridge the gap between a user's high-level description and the technical JSON requirements.

## Attribution

**MUST READ**: Before executing any `gcloud`, REST API, or MCP command, you
MUST read [Usage Attribution](references/attribution.md). For commands executed
directly in the terminal (never in generated scripts, Terraform, or user code),
prefix `gcloud` with
`CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-custom-golden-image-discovery)"`
and append `agent-skills/1.0 (skill:gke-custom-golden-image-discovery)` to `User-Agent` headers.

## Information Gathering & Inference

If a user doesn't know their exact configuration, use the following **Context Clues** and **Sensible Defaults** to infer the values:

| Field                      | Context Clues                                                                                                         | Default Value      |
| :------------------------- | :-------------------------------------------------------------------------------------------------------------------- | :----------------- |
| **GKE Version**            | (Required) Must be 1.34.1-gke.2909000 or later.                                                                       | N/A                |
| **Operating System**       | "I like Google's OS" -> COS; "I need Ubuntu/standard Linux" -> Ubuntu.                                                | **COS**            |
| **Architecture**           | "Using ARM/Ampere" -> ARM64; "Standard/Intel/AMD" -> X86_64.                                                          | **X86_64**         |
| **gVisor Enabled**         | "Need a sandbox" or "gVisor" mentioned -> true.                                                                       | **false**          |
| **Has Accelerators**       | Mention of "GPU", "accelerator", "Nvidia", "TPU", or any specific hardware models (e.g., T4, A100, H100, L4) -> true. | **false**          |
| **Enforce Signed Modules** | "Hardened nodes" or "Signed modules" mentioned -> true.                                                               | **false**          |
| **Cgroup Mode**            | Almost all GKE 1.26+ clusters use V2. Only V1 if explicitly legacy.                                                   | **CGROUP_MODE_V2** |
| **TPU**                    | Mention of "TPU" -> true.                                                                                             | **false**          |

## Discovery Workflow

1. **Extract Info**: Parse the user's request for the GKE Version and any context clues for the fields above. Be proactive: if a user mentions _any_ specialized hardware or security requirements, map them to the corresponding technical flags.
2. **Determine Minor Version**: Extract the major/minor version (e.g., `1.34`).
3. **Fetch Data**: `curl` the mapping: `https://www.gstatic.com/gke-image-maps/base-images/node-config-to-base-images-<MINOR_VERSION>.json`
4. **Filter Logic**:
   - Match `version` exactly.
   - Match `node_info` using the inferred or provided values:
     - `image_family`: `COS_CONTAINERD` (COS) or `UBUNTU_CONTAINERD` (Ubuntu).
     - Other fields match exactly.
5. **Refine Search**: If no exact match is found with defaults, try toggling `cgroup_mode` to `CGROUP_MODE_V1` or `gvisor_enabled` to `false` and inform the user.
6. **Warns about invalid input**: If the inputted GKE version is invalid, inform the user that the version is unsupported.

## Example Output

"Based on your setup (GKE 1.34.1-gke.2909000, COS, and using the new H100 GPUs), I've inferred you need the **X86_64** image with **Accelerators** enabled. The golden base image is: `gke-1341-gke2909000-cos-125-19216-0-115-c-nvda`"