
【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载本篇技术指南围绕 Helm Charts 仓库 incubator 目录下的 kube-registry-proxy 官方 Chart 展开讲解如何通过 Helm 快速把 Kubernetes 官方 kube-registry-proxy 集群插件cluster addon安装到集群中并为每台节点提供本地回环地址上的镜像仓库代理入口。读完本文你将掌握该 Chart 的安装命令、全部 7 个配置参数的含义与默认值并理解这些参数是如何通过 DaemonSet 模板与环境变量最终生效的。Chart 概览kube-registry-proxy 是什么kube-registry-proxy 的 README 对该 Chart 的定位非常明确Installs the kube-registry-proxy cluster addon即安装 Kubernetes 上游仓库cluster/addons/registry目录中的 kube-registry-proxy 集群插件。这一点也记录在 Chart.yaml 的home字段中。从 Chart.yaml 可以读取到该 Chart 的完整元数据字段值说明namekube-registry-proxyChart 名称version0.3.4Chart 版本Helm 打包版本appVersion0.4应用版本与默认镜像 tag 一致apiVersionv1Chart 格式版本Helm 2/3 兼容deprecatedtrue已标记为废弃descriptionDEPRECATED Installs the kubernetes-registry-proxy cluster addon.说明文字整个 Chart 由 3 个模板文件与values.yaml构成结构非常精简templates/daemon.yaml唯一的资源清单一个apps/v1的 DaemonSettemplates/_helpers.tpl定义资源命名用的fullname模板函数templates/NOTES.txt安装成功后的提示文案values.yaml默认配置值。工作方式从模板实现推断该 Chart 只渲染一个 DaemonSet意味着kube-registry-proxy 会在集群的每一台节点上各运行一个 Pod。结合 daemon.yaml 的容器定义可以清楚地推断出它的工作方式容器监听containerPort: 80并通过hostPort映射到节点端口默认5555hostIP默认为127.0.0.1即只绑定节点的回环地址外部网络无法直接访问容器通过两个环境变量获知“要代理到哪个 registry”REGISTRY_HOST默认gcr.ioREGISTRY_PORT默认空字符串也就是说每个节点上都会出现一个本机可访问的127.0.0.1:5555入口由代理容器把请求转发到REGISTRY_HOST:REGISTRY_PORT指定的目标镜像仓库。这样节点上的 Docker 或其他容器工具就不需要直接对远端 registry 开放端口只需访问节点本地回环地址即可获取镜像这是该集群插件被设计用于的典型场景。安装 Chart前置条件按照 incubator/README.md 的说明使用这些 Chart 的前提是已经安装好 Helm 客户端并完成 Helm 与集群的连接配置。添加 Helm 仓库原 README 安装说明 给出的命令如下$ helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator需要说明的是上游 incubator/README.md 中已将该仓库地址更新为https://charts.helm.sh/incubator如果旧地址不可用可以改用更新后的地址。添加仓库后可用helm search repo incubator/kube-registry-proxy确认 Chart 已可检索。安装 Chart以 release 名称my-release安装$ helm install --name my-release incubator/kube-registry-proxy注意--name参数是 Helm 2 的语法。若你使用 Helm 3应写为helm install my-release incubator/kube-registry-proxy。安装成功后Helm 会输出 NOTES.txt 中的提示文案kubernetes-registry-proxy has been installed.通过 _helpers.tpl 的命名规则实际创建的 DaemonSet 名称是my-release-kube-registry-proxy由 release 名拼接固定名得到可用kubectl get daemonset my-release-kube-registry-proxy查看其部署情况。卸载卸载使用 Helm 标准命令# Helm 2 $ helm delete my-release # Helm 3 $ helm uninstall my-release由于 Chart 只创建了一个 DaemonSet卸载会一并移除所有节点上的代理 Pod。配置参数详解原 README 给出了完整的参数表下面完整继承并补充默认值的来源与生效方式ParameterDescriptionDefaultimage.repositoryThe image repository to pull fromk8s.gcr.io/kube-registry-proxyimage.tagThe image tag to pull from0.4image.pullPolicyImage pull policyIfNotPresentregistry.hostThe hostname of the target registrygcr.ioregistry.portThe port of the target registryblankhostPortThe port to accept connections on the node5555hostIPThe interface address to bind on the node127.0.0.1这些默认值可以在 values.yaml 中逐项对应image: repository: k8s.gcr.io/kube-registry-proxy tag: 0.4 pullPolicy: IfNotPresent registry: host: gcr.io port: 镜像相关参数image.*daemon.yaml 中直接拼接image.repository与image.tag构成完整镜像地址image: {{ .Values.image.repository }}:{{ .Values.image.tag }} imagePullPolicy: {{ .Values.image.pullPolicy }}image.repository代理镜像的仓库地址默认使用 Google 维护的k8s.gcr.io/kube-registry-proxyimage.tag镜像版本默认0.4与 Chart 的appVersion一致image.pullPolicy镜像拉取策略默认IfNotPresent本地已有镜像则不再拉取可按需要改为Always或Never。目标 registry 参数registry.host与registry.port这两个参数会被注入为容器的环境变量daemon.yamlenv: - name: REGISTRY_HOST value: {{ .Values.registry.host | quote }} - name: REGISTRY_PORT value: {{ .Values.registry.port | quote }}registry.host代理要转发到的目标镜像仓库主机名默认gcr.ioregistry.port目标仓库端口默认留空。由于模板对取值使用了quote过滤器即使不设置端口REGISTRY_PORT环境变量也仍会被注入为空的字符串值这一点在编写自定义 values 时需要注意。典型的定制方向是把代理指向集群内部自建的镜像仓库服务例如在自定义values.yaml中registry: host: kube-registry.kube-system.svc.cluster.local port: 5000上例为演示用途的配置示例请根据你实际部署的 registry 服务名与命名空间进行调整。节点端口绑定参数hostPort与hostIP这两个参数在 daemon.yaml 中通过 Helm 的default过滤器赋予默认值ports: - containerPort: 80 hostPort: {{ default 5555 .Values.hostPort }} hostIP: {{ default 127.0.0.1 .Values.hostIP }}hostPort代理在每台节点上对外暴露的端口默认5555。由于是 DaemonSet每一台节点都会占用该端口规划集群时需注意避免与其他服务冲突hostIP代理绑定在节点上的网卡地址默认127.0.0.1意味着只有节点本机可以访问该代理入口集群外部无法直接连接。需要说明的是values.yaml中并没有预置hostPort/hostIP两个键它们的默认值来自模板中的default过滤器并由 README 记录在案如需修改直接在自定义 values 中显式指定即可例如hostPort: 5555 hostIP: 0.0.0.0将hostIP改为0.0.0.0会把代理入口暴露到节点所有网卡上请确认这是你的真实需求再使用。从源码看参数如何生效资源命名规则_helpers.tpl_helpers.tpl 定义了唯一的模板函数kube-registry-proxy.fullname{{- define kube-registry-proxy.fullname -}} {{- $name : default kube-registry-proxy .Values.nameOverride -}} {{- printf %s-%s .Release.Name $name | trunc 63 | trimSuffix - -}} {{- end -}}其逻辑是取nameOverride未设置时用默认名kube-registry-proxy拼接 release 名得到完整资源名若拼接结果超过 63 个字符Kubernetes 资源名上限会截断到 63 个字符并去掉末尾的-。所有资源DaemonSet 及其 selector、labels、Pod 名都复用这一命名函数保证名称一致性。DaemonSet 模板结构daemon.yamldaemon.yaml 使用apps/v1的 DaemonSet 定义并带有一套标准的 Chart 标签labelslabels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ .Chart.Name }}-{{ .Chart.Version }}heritage标记部署工具Helm 2 下通常为 TillerHelm 3 下为 Helmrelease标记所属 releasechart标记来源 Chart 与版本本 Chart 部署时值为kube-registry-proxy-0.3.4。这些标签与spec.selector.matchLabels中的app: {{ template kube-registry-proxy.fullname . }}共同工作用于 DaemonSet 管理其下属 Pod。整份模板没有引入任何 Service、ConfigMap 或 RBAC 资源是典型的“单资源精简 Chart”。使用须知与限制使用该 Chart 前有几个重要事项需要了解上游仓库已归档如 README 顶部归档公告 所述自2020 年 11 月 13 日起本仓库中的 Chart 不再更新迁移与替代方案详见官方公告Chart 已明确标记废弃Chart.yaml 的deprecated: true与 README 中的 DEPRECATION NOTICE 都确认了这一点它不再获得维护与修复生产环境应优先评估替代方案默认仅本机可访问hostIP默认127.0.0.1代理入口只对节点本机开放这是该插件的设计取向同时也意味着它并不适合直接对外提供镜像服务端口占用量DaemonSet 会在每台节点上占用hostPort默认 5555大规模集群或节点端口紧张时需提前规划模板行为细节REGISTRY_PORT始终会被注入即使为空字符串代理最终的行为取决于目标 registry 对空端口的处理部署前建议结合你的实际镜像仓库验证连通性。总体而言kube-registry-proxy 是一个轻量、聚焦的 Helm Chart一个 DaemonSet、两个环境变量、两个端口绑定参数即可完成每节点镜像代理的部署。理解其模板实现与默认值来源可以帮助你在需要节点本地访问镜像仓库的场景下快速完成安装与定制。赞分享【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载相关推荐ik_llama.cpp 服务器函数调用Function Calling多格式解析实战指南ik_llama.cpp 服务器函数调用Function Calling多格式解析实战指南 本指南完整解读 ik_llama.cpp 服务器llama s云原生容器编排Woodpecker 仓库私有镜像仓库Registry配置指南认证、拉取与本地镜像Woodpecker 仓库私有镜像仓库Registry配置指南认证、拉取与本地镜像 本文基于 Woodpecker 3.16 官方文档《RegistrieCI/CDDevOpsDocker Registry Helm Chart 实战指南基于 Kubernetes 部署私有镜像仓库Docker Registry Helm Chart 实战指南基于 Kubernetes 部署私有镜像仓库 本指南以 charts 仓库中 stable/do创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考