热门搜索:
ghcr.io/kiwigrid/k8s-sidecar

ghcr.io/kiwigrid/k8s-sidecar:1.27.3

ghcr.iolinux/amd641.27.3大小: 未知更新于 2026年6月6日
让 AI 帮你使用轩辕镜像?

如果你使用 DeepSeek元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AIDeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

是什么?

这是一个 Docker 容器,旨在在 Kubernetes 集群内运行,用于收集带有指定标签的 config map,并将包含的文件存储在本地文件夹中。它还可以在 configmap 更改后向指定 URL 发送 HTTP 请求。其主要目标是作为 sidecar 容器运行,为应用程序提供来自集群的信息。

为什么?

这是我们将 configmap 或 secret 中的文件提供给服务并在运行时保持其更新的简单方法。

如何使用?

在单个 pod 中使用共享卷运行此仓库创建的容器和您的应用程序。指定应监控的标签以及文件的存储位置。通过添加额外的环境变量,容器可以向指定 URL 发送 HTTP 请求。

镜像位置?

镜像可在以下位置获取:

  • https://hub.docker.com/r/kiwigrid/k8s-sidecar
  • quay.io/kiwigrid/k8s-sidecar
  • https://github.com/orgs/kiwigrid/packages/container/package/k8s-sidecar

所有镜像均为相同的多架构镜像,支持 amd64arm64arm/v7

不再支持 ppc64les390x

在 v2.x 版本中,我们已停止支持 ppc64les390x 架构。如果您仍需要这些架构,请联系我们。一种可能的解决方案是使用原生运行器而非 qemu 设置专门的构建任务。

名称描述是否必填默认值类型
LABEL用于过滤的标签-字符串
LABEL_VALUE要过滤资源的标签值。不设置值则按任意值过滤-字符串
FOLDER文件存放的文件夹-字符串
FOLDER_ANNOTATIONsidecar在configmap中查找的注解,用于覆盖文件的目标文件夹。注解可以是绝对路径或相对路径。相对路径将相对于 FOLDERk8s-sidecar-target-directory字符串
NAMESPACE逗号分隔的命名空间列表。如果指定,sidecar将在这些命名空间中搜索configmap。也可指定 ALL 以搜索所有命名空间。sidecar运行所在的命名空间字符串
RESOURCEsidecar监控的资源类型。选项:configmapsecretbothconfigmap字符串
RESOURCE_NAME逗号分隔的资源名称列表,由sidecar监控。项目可前缀命名空间和资源类型,例如 secret/resource-namenamespace/secret/resource-name。设置此参数后,method 设为 WATCH 将被视为 SLEEP-字符串
METHOD如果 METHOD 设为 LIST,sidecar将仅列出configmap/secret并退出。设为 SLEEP 时,将列出所有configmap/secret,然后休眠 SLEEP_TIME 秒。其他值将持续监控变更(参见 Kubernetes 文档)。-字符串
SLEEP_TIME使用 SLEEP 方法时,更新configmap/secret前等待的秒数60整数
REQ_URLconfigmap/secret重新加载后发送请求的URL-URI
REQ_METHOD发送到 REQ_URL 的请求方法,GETPOSTGET字符串
REQ_PAYLOAD如果使用 REQ_METHOD=POST,可提供JSON payload-json
REQ_RETRY_TOTAL所有HTTP请求允许的总重试次数(*.url 触发的请求、发送到 REQ_URI 的请求以及K8s API请求)5整数
REQ_RETRY_CONNECT所有HTTP请求允许的连接相关错误重试次数(*.url 触发的请求、发送到 REQ_URI 的请求以及K8s API请求)10整数
REQ_RETRY_READ所有HTTP请求允许的读取错误重试次数(*.url 触发的请求、发送到 REQ_URI 的请求以及K8s API请求)5整数
REQ_RETRY_BACKOFF_FACTOR所有HTTP请求在第二次尝试后应用的退避因子(*.url 触发的请求、发送到 REQ_URI 的请求以及K8s API请求)1.1float
REQ_TIMEOUT对于 *.url 触发的请求或发送到 REQ_URI 的请求,等待服务器发送数据的秒数(不适用于K8s API请求)10float
REQ_USERNAME用于 REQ_URL 请求和 *.url 触发请求的基本认证用户名-字符串
REQ_PASSWORD用于 REQ_URL 请求和 *.url 触发请求的基本认证密码-字符串
REQ_BASIC_AUTH_ENCODING用户名和密码的编码方式,默认未定义(例如 utf-8latin1字符串
REQ_SKIP_INIT使用 WATCH 方法时,设为 true 可跳过启动时对 REQ_URL 的初始请求false布尔值
SCRIPTconfigmap重新加载后执行的脚本绝对路径。在调用 REQ_URI 之前运行。如果文件不可执行,将传递给 sh;否则直接执行。已知有效的Shebang(Unix)) 为 #!/bin/sh#!/usr/bin/env python-字符串
ERROR_THROTTLE_SLEEP发生错误时,再次监控资源前等待的秒数5整数
SKIP_TLS_VERIFY设为 true 可跳过Kube API调用的TLS验证-布尔值
DISABLE_X509_STRICT_VERIFICATION设为 true 可禁用严格的X.509证书验证(对旧K8s集群有用)。-布尔值
REQ_SKIP_TLS_VERIFY设为 true 可跳过所有HTTP请求的TLS验证(Kube API服务器除外,由 SKIP_TLS_VERIFY 控制)。-布尔值
UNIQUE_FILENAMES设为 true 可在同一或多个命名空间的ConfigMap和/或Secret之间存在重复数据键时生成唯一文件名。false布尔值
DEFAULT_FILE_MODE每个文件的默认文件系统权限。使用三位数字(例如 '500'、'440' 等)-字符串
KUBECONFIG如果提供且指向文件,或挂载了 ~/.kube/config,则从该文件加载K8s配置;否则尝试使用“incluster”K8s配置。-字符串
ENABLE_5XX设为 true 可从configmap拉取5XX响应内容。用于文件名以 .url 后缀结尾的情况(请参考此处的 *.url 特性)。-布尔值
WATCH_SERVER_TIMEOUT向服务器发出的礼貌请求,要求在指定秒数后干净关闭监控连接(https://github.com/kiwigrid/k8s-sidecar/issues/85%EF%BC%8960整数
WATCH_CLIENT_TIMEOUT如果网络中断导致所有数据包丢失且无RST/FIN,客户端在监控连接上等待多少秒后意识到并断开连接。此值可设为较小数值(https://github.com/kiwigrid/k8s-sidecar/issues/85%EF%BC%8966整数
IGNORE_ALREADY_PROCESSED忽略已处理的资源版本。避免对未变更的同一资源进行多次检查。要求Kubernetes API >= v1.19false布尔值
LOG_LEVEL设置日志级别。(DEBUG、INFO、WARN、ERROR、CRITICAL)INFO字符串
LOG_FORMAT设置日志格式。(JSON 或 LOGFMT)JSON字符串
LOG_TZ设置日志时区。(LOCAL 或 UTC)LOCAL字符串
LOG_CONFIG日志配置文件路径。如果未配置,使用默认日志配置以支持向后兼容。未配置时,LOG_LEVELLOG_FORMATLOG_TZ 仍将被应用。-字符串

健康端点

sidecar 在端口 8080(或由 HEALTH_PORT 配置)上提供 /healthz 健康端点,可用于 Kubernetes 就绪探针和存活探针。该端点兼容 IPv4 和 IPv6(双栈)。

就绪探针

仅当所有配置资源(ConfigMap 和/或 Secret)的初始同步完成后,端点才会返回 HTTP 200 OK。在此之前,它将返回 HTTP 503 Service Unavailable。这可确保主应用容器在其配置完全可用前不会启动或接收流量。

就绪探针配置示例:

readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 20
periodSeconds: 5

存活探针

该端点也可用作存活探针,检查以下两个条件:

  1. Kubernetes API 连接:验证 sidecar 在过去 60 秒内已成功连接 Kubernetes API。
  2. 监视线程:确保所有内部监视线程(用于 ConfigMapSecret)正常运行。

如果任何检查失败,端点将返回 HTTP 503 Service Unavailable,指示 Kubernetes 重启容器。

存活探针配置示例:

livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 35
periodSeconds: 10

CI 和发布工作流

本仓库使用三个主要的 GitHub Actions 工作流:

1. 构建和测试(.github/workflows/build_and_test.yaml

目的: 在本地 kind 集群上对 sidecar 进行端到端测试。

  • 触发器:
    • pull_request
    • workflow_dispatch
  • 功能:
    • 构建 sidecar 的本地 Docker 镜像(不推送到任何 registry)。
    • 构建虚拟服务器镜像。
    • 将两个镜像加载到 kind 集群中。
    • 针对多个 Kubernetes 版本(矩阵)运行综合测试套件。

此工作流不会创建标签、发布版本或将镜像推送到 registry。


2. 发布(.github/workflows/release.yaml

目的: 构建和发布镜像并创建 GitHub 发布版本。

  • 触发器:
    • 推送到 master 分支且修改了以下文件:
      • src/**
      • Dockerfile
  • 版本控制与标签:
    • 使用 https://github.com/anothrNick/github-tag-action%E3%80%82
    • 默认情况下,每次符合条件的推送会更新补丁版本(例如 2.1.32.1.4)。
    • 可通过提交消息令牌覆盖版本更新行为:
      • #minor → 次要版本更新
      • #major → 主要版本更新
      • #none不更新版本,不构建,不发布
  • 保护条件:
    • 所有构建/推送镜像或创建发布的步骤仅在标签操作报告真实更新时运行(part != '' && part != 'none')。
  • 创建新标签时的操作:
    • 为 sidecar 构建多架构镜像。
    • 将镜像推送到:
      • docker.io/kiwigrid/k8s-sidecar
      • quay.io/kiwigrid/k8s-sidecar
      • ghcr.io/kiwigrid/k8s-sidecar
    • 标签:<version>latest
    • 构建变更日志。
    • 为新标签创建 GitHub 发布版本。

这可确保:

  • src/**Dockerfile 中的代码变更会生成新镜像。
  • 现有标签不会重新构建,保持不可变
  • 仅 CI 或仅文档的变更不会触发发布。

3. 发布工作流测试(.github/workflows/release_test.yaml

目的: 手动测试发布工作流逻辑(标签、变更日志、镜像构建),不影响真实生产标签。

  • 触发器:
    • workflow_dispatch(仅手动运行)。
  • 标签行为:
    • 使用 github-tag-action,配置如下:
      • DEFAULT_BUMP: patch
      • DRY_RUN: true
    • 这意味着:
      • 始终模拟版本更新。
      • 不会向仓库推送真实标签。
  • 保护条件:
    • 所有类发布步骤仅在标签操作报告真实更新时运行(part != '' && part != 'none'),与生产工作流一致。
  • 功能:
    • 构建并推送标签为 <version>-testing 的测试镜像到 registry。
    • 构建变更日志。
    • 创建标签名为 <version>-testing草稿 GitHub 发布版本。

此工作流供维护者以安全方式验证发布流水线的变更(标签、变更日志生成、镜像构建),同时保持生产标签不可变。

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

官方公众号:源码跳动官方技术交流群:13763429