@env-hopper/source-k8s

中文文档
2.9.3发布于 2026/11/13MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3055

从Kubernetes集群读取工作量和入侵

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 短寿符
  4. 健康检查
  5. 许可证

@env-phopper/ source-k8s (英语)

从Kubernetes集群读取部署和入侵,然后返回为 plain records (namespace, name, 图像, 标签, 复制品, 主机). 没有 绘制它自己的地图:需要保存哪些工作量以及它们对你的目录的意义 被呼叫者传入.

该船还:

  • 一个保持记录流畅的监视器(列表,然后从列表中查看) 资源version,在410上重新列名,并用备份重试;
  • 健康检查员 @env-hopper/backend-core 健康检查 运行.

安装

npm install @env-hopper/source-k8s @env-hopper/backend-core @kubernetes/client-node@^0.22.3

@env-hopper/backend-core 是同伴依赖,用于健康检查器 类型。 客户职能预计 @kubernetes/client-node 0.22 API (英语).

使用量

import { KubeConfig } from '@kubernetes/client-node'
import { createK8sSource, createK8sWatcher, k8sClientsFromKubeConfig, watchFromKubeConfig } from '@env-hopper/source-k8s'

const kc = new KubeConfig()
kc.loadFromDefault()
const { apps, networking } = k8sClientsFromKubeConfig(kc)

// One-off read
const source = createK8sSource({ cluster: 'production', apps, networking })
const workloads = await source.listWorkloads()
const ingresses = await source.listIngresses()

// Kept current
const watcher = createK8sWatcher({
  cluster: 'production',
  apps,
  networking,
  watch: watchFromKubeConfig(kc),
  keepWorkload: (w) => w.namespace !== 'kube-system',
  onChange: (change) => console.log(change.kind, change.type, change.record.name),
})
watcher.start()

短寿符

当 API 服务器取出一个过期的符号( 从您所显示的云中 ) 身份,比如, 包入KubeConfig, 所以每个请求都要求当前一个:

import { cachedToken, withBearerToken } from '@env-hopper/source-k8s'

const token = cachedToken(async () => ({ token: await mintToken(), expiresAt: new Date(Date.now() + 15 * 60_000) }), { refreshBeforeMs: 5 * 60_000 })
const authed = withBearerToken(kc, token)
const { apps, networking } = k8sClientsFromKubeConfig(authed)
const watch = watchFromKubeConfig(authed)

cachedToken 薄荷薄荷一次,再用这个符号直到 refreshBeforeMs 在此之前 expiresAt;同时调用者共享一分薄荷,失败的薄荷被重审 下一个电话.

健康检查

import { runCheck } from '@env-hopper/backend-core'
import { k8sReadinessChecker } from '@env-hopper/source-k8s'

const result = await runCheck(k8sReadinessChecker, {
  cluster: 'production',
  namespace: 'shop',
  name: 'checkout',
  apps, // from k8sClientsFromKubeConfig(kc)
})
  • replicas === 0数字 : unknown (缩放后,未断出)
  • readyReplicas === replicas数字 : healthy
  • 0 < readyReplicas < replicas数字 : degraded
  • readyReplicas === 0数字 : down

许可证

麻省理工学院

版本与发布记录

@env-hopper/source-k8s 共发布 18 个版本,首次发布于 2026/10/20;过去 12 个月发布了 18 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.9.3latest2026/11/13今天
2.9.22026/11/112 天前
2.9.12026/11/103 天前
2.9.02026/11/104 天前
2.8.32026/11/0410 天前
2.8.22026/11/0410 天前

其他发布通道:bootstrap → 2.1.0-bootstrap.0。

关于 @env-hopper/source-k8s 的常见问题

@env-hopper/source-k8s 是什么?

从Kubernetes集群读取工作量和入侵

如何安装 @env-hopper/source-k8s?

在项目目录运行 npm install @env-hopper/source-k8s,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@env-hopper/backend-core(^2.9.3)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@env-hopper/source-k8s 支持 TypeScript 吗?

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

@env-hopper/source-k8s 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@env-hopper/source-k8s 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@env-hopper/source-k8s 可以商用吗?

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

@env-hopper/source-k8s 的下载量有多少?

根据 npm 官方下载统计,@env-hopper/source-k8s 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,055 次,日均约 102 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@env-hopper/source-k8s 还在维护吗?

最新版本 2.9.3 发布于 2026/11/13(今天);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/10/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。