# @azbake/ingredient-kubernetes 中文文档

规范地址：https://npmcn.com/package/%40azbake/ingredient-kubernetes/

版本：0\.1\.117
npm 元数据更新时间：2024-07-25T14:32:48.581Z
中文译文更新时间：2026-11-07T15:35:16.969Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40azbake/ingredient-kubernetes
原文对照：https://npmcn.com/package/%40azbake/ingredient-kubernetes/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：44.1 kB，14 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：@azbake/core \*，@azure/ms-rest-nodeauth \*
- 首次发布：2019-05-21T14:12:57.064Z
- 最新版本发布：2024-07-25T14:32:48.357Z
- 近 30 天下载量：7327（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：31（近 12 个月 0 个）

## 中文简介

用于部署Kubernetes配置的组件

## 安装

```sh
npm install @azbake/ingredient-kubernetes
```

也可以使用：`pnpm add @azbake/ingredient-kubernetes`、`yarn add @azbake/ingredient-kubernetes`、`bun add @azbake/ingredient-kubernetes`

## README

# 更改日志

-   [@azbake/ingredient-kubernetes (英语)](https://npmcn.com/package/%40azbake/ingredient-kubernetes/CHANGELOG.md)

# 概览

Kubernetes配方是用于烘焙的插件. 当包含在配方中时, 此插件将 _应用_ 相对于集群的指定配置。 将应用的Kubernetes配置在 `source` (见限制)。 支持在配置内替换服务时间符号 .

# 使用量

## Kubernetes 配置

当您有需要部署到Kubernetes的应用程序时,您应该先写一个 [Kubernetes 配置](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/),通常采取"活塞"文件的形式. 此文件一旦存在, 应该写出一个将点到文件的烤盘 。 要做到这一点,食谱必须包含"@azbake/ingredient-kubernetes"的成分. 成分的 `source` 字段将指定 Kubernetes 配置。 此字段接受一个文件的路径,一个文件的url或一个包含多个Kubernetes配置文件的目录的路径.

## Kubernetes 集群

以上配置为: _应用_ 到库伯涅斯星团。 该成分需要关于该组的信息。 我们以下列形式提供这一信息: [库贝配置](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) 文档。 一旦文件被创建,我们需要让成分知道它。 要做到这一点,文件的内容必须被 Base64 编码,并作为组成部分参数传递,称为 `kubeconfig`。由于这因环境而异,所以硬编码那里的实际值没有意义。 为了解决这个问题 `kubeconfig` 参数通常是一个调用 `coreutils.variable()` 以获得一个值 [巴克变量](https://npmcn.com/package/azure-bake#bake-environment-structureterms)。 。 。 . 说明: `current-context` 字段必须设置在 kubeconfig 文件中,因为这是在成分的非交互服务中使用的。 因此,在kubeconfig中包含一个以上的上下文(或集群或用户或命名空间)没有任何好处. 如果您想要部署到多个命名空间,最简单的方法是使用多个库贝配置,从而使用多个组件调用 `coreutils.variable()` 用于不同的变量,或从 ADO 给 Bake Service 的多通电话.

## 调试

指定的 Kubernetes 配置将进行符号替换 。 要将一个令牌嵌入一个文件,用双卷扣和大写来包围它(如"QQMYTOKEN"). 只要"MyToken"(在上下两种情况下的任何组合)是Bake变量(有成分级)的键 _符号_ 优于食谱一级 _变量_,以及环境层面 _BAKE VARIABLES 64 (英语)_ 因此,该符号将被替换为变量值。 请注意,该值可以是Bake表达式,在替换前立即进行评估.

## 延迟和重试

部署一些K8s资源可能得益于在进行部署后的起动程序时在成分之间造成延误。 A 类 `delayms` 参数可用于在成分部署之间引入延迟.

此外,在部署后启动程序未完成之前,可使用一个程序处理所依赖的K8资源 `retryErrors` 参数.

### 页:1

这发生在磁盘上。 这意味着它对URL指定的配置无效. 这也意味着只能在服役期间发生一次. 文件的原版,非调取的被替换版本没有保存. 在不同的情景中,使用不同值表示一个符号的最简单方法是从ADO给Bake Service打多通电话. 这将确保为食谱服务的容器被销毁并重新为每套符号值启动.

# 示例

```yaml
name: My Package
shortName: mpkg
version: "0.0.1"
resourceGroup: false
variables:
  someToken: I will lose out to the below value of 'someToken'
ingredients: 
  - "@azbake/ingredient-kubernetes@~0"
recipe: 
  k8s: 
    properties: 
      type: "@azbake/ingredient-kubernetes"
      source: subdir
      tokens:
        someToken: I take precedence over the above value of 'someToken'
        someOtherToken: some value
      parameters:
        kubeconfig : ["coreutils.variable('b64KubeConfigContent')"]
        testDeployment: true #set this to true and after the source has been applied, it will get deleted (good for deployment testing)
        deleteDeployment: false # not required, and if set to true it will execute a kubectl delete instead of a kubectl apply on the subdir (ignoring anything not found)
        kubectlFlags: "--server-side --force-conflicts" # optionally specify additional flags for kubectl command
        delayms: 10000 # not required, and if set then it will delay for the specified number of milliseconds after deploying the ingredient
        retryErrors: true # not required, and if set will retry errors with expoential backoff (10s, 30s, 70s) before failing.  Defaults to false if not set.
```

# 限制

-   对指定为 `source` 成分.

# 测试

如果您只是想部署, 然后删除一些测试资源, 请提供一个值 `true` 联 合 国 `testDeployment` 参数.

## 常见问题

### @azbake/ingredient-kubernetes 是什么？

用于部署Kubernetes配置的组件

### 如何安装 @azbake/ingredient-kubernetes？

在项目目录运行 npm install @azbake/ingredient-kubernetes，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@azbake/core（\*）、@azure/ms-rest-nodeauth（\*）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @azbake/ingredient-kubernetes 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @azbake/ingredient-kubernetes 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @azbake/ingredient-kubernetes 可以商用吗？

@azbake/ingredient-kubernetes 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @azbake/ingredient-kubernetes 的下载量有多少？

根据 npm 官方下载统计，@azbake/ingredient-kubernetes 在 2026/10/08 – 2026/11/06 这 30 天内被下载 7,327 次，日均约 244 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @azbake/ingredient-kubernetes 还在维护吗？

最新版本 0\.1\.117 发布于 2024/07/25（2 年前）；至今共发布 31 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/05/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

