bitnamicharts/kiamkiam 是一个代理,用于捕获AWS Metadata API请求。它允许为Kubernetes工作负载设置AWS IAM角色。
Kiam 概述
商标声明:本软件列表由Bitnami打包。所提及的相关商标归各自公司所有,使用这些商标并不意味着任何关联或认可。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/kiam
注意:您需要将占位符
REGISTRY_NAME和REPOSITORY_NAME替换为Helm图表仓库和存储库的引用。例如,对于Bitnami,需使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。 注意:KIAM 设计用于部署在AWS上的Kubernetes集群,尽管也可在其他环境中部署。
希望在生产环境中使用Kiam?试试 VMware Tanzu Application Catalog,即Bitnami目录的商业版本。
自2025年8月28日起,Bitnami将升级其公共目录,在新的Bitnami Secure Images计划下提供精选的强化、安全聚焦镜像集。作为此次转型的一部分:
这些变更旨在通过推广软件供应链完整性和最新部署的最佳实践,提升所有Bitnami用户的安全态势。更多详情,请访问Bitnami Secure Images公告。
Bitnami的Helm图表经过精心设计、积极维护,是在Kubernetes集群上部署容器的最快、最简单方式,可直接用于生产工作负载。
本图表使用Helm包管理器在Kubernetes集群上引导部署kiam。
要使用发布名称 my-release 安装图表:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/kiam
注意:您需要将占位符
REGISTRY_NAME和REPOSITORY_NAME替换为Helm图表仓库和存储库的引用。例如,对于Bitnami,需使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
这些命令将以默认配置在Kubernetes集群上部署kiam应用。
提示:使用
helm list查看所有发布
Bitnami图表允许为图表部署中的所有容器设置资源请求和限制,这些配置位于 resources 值中(参见参数表)。设置请求对于生产工作负载至关重要,应根据具体用例调整。
为简化此过程,图表包含 resourcesPreset 值,可根据不同预设自动设置 resources 部分。有关这些预设,请参见bitnami/common图表。但在生产工作负载中,不建议使用 resourcesPreset,因为它可能无法完全适应您的具体需求。有关容器资源管理的更多信息,请参见官方Kubernetes文档。
强烈建议在生产环境中使用不可变标签。这可确保如果相同标签更新为不同镜像时,部署不会自动更改。
如果主容器有新版本、重大变更或严重漏洞,Bitnami将发布新图表更新其容器。
通过将 *.metrics.enabled(在 server 和 agent 部分下)设置为 true,本图表可与Prometheus集成。这将在服务中公开Kiam原生Prometheus端点,并包含必要的注解以被Prometheus自动抓取。
集成需确保已安装Prometheus或Prometheus Operator。安装Bitnami Prometheus Helm图表或Bitnami Kube Prometheus Helm图表,可在集群中轻松部署可用的Prometheus。
通过设置 *.metrics.serviceMonitor.enabled=true(在 server 和 agent 部分下),图表可部署 ServiceMonitor 对象以与Prometheus Operator集成。确保集群中已安装Prometheus Operator CustomResourceDefinitions,否则将失败并显示以下错误:
textno matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
安装Bitnami Kube Prometheus Helm图表以获取必要的CRD和Prometheus Operator。
要在Kubernetes上备份和恢复Helm图表部署,需使用Velero(Kubernetes备份/恢复工具)备份源部署的持久卷,并将其附加到新部署。有关使用Velero的说明,请参见本指南。
如需添加额外环境变量(用于高级操作,如自定义初始化脚本),可使用 server.extraEnvVars 和 agent.extraEnvVars 属性。
yamlserver: extraEnvVars: - name: LOG_LEVEL value: error
或者,可使用ConfigMap或Secret存储环境变量。为此,使用 server.extraEnvVarsCM、agent.extraEnvVarsCM 或 server.extraEnvVarsSecret、agent.extraEnvVarsSecret 值。
如需在Kiam所在的Pod中添加额外容器(如额外的指标或日志导出器),可使用 sidecars 参数定义。
yamlsidecars: - name: your-image-name image: your-image imagePullPolicy: Always ports: - name: portname containerPort: 1234
如果这些sidecar导出额外端口,可使用 service.extraPorts 参数(如可用)添加额外端口定义,示例如下:
yamlservice: extraPorts: - name: extraPort port: *** targetPort: ***
注意:本Helm图表已包含Prometheus导出器的sidecar容器(如适用)。可在部署时添加
--enable-metrics=true参数激活。因此,sidecars参数仅应用于额外的sidecar容器。
如需在同一Pod中添加额外init容器,可使用 initContainers 参数定义。示例:
yamlinitContainers: - name: your-image-name image: your-image imagePullPolicy: Always ports: - name: portname containerPort: 1234
了解更多关于sidecar容器和init容器的信息。
如需部署额外对象(如包含应用配置的ConfigMap或应用使用的微服务的额外部署),图表允许使用 extraDeploy 参数添加其他对象的完整规范。
本图表允许使用 server.affinity 和 agent.affinity 参数设置自定义亲和性。有关Pod亲和性的更多信息,请参见kubernetes文档。
作为替代,可使用bitnami/common图表中预设的Pod亲和性、Pod反亲和性和节点亲和性配置。为此,设置 server.podAffinityPreset、agent.podAffinityPreset、server.podAntiAffinityPreset、agent.podAntiAffinityPreset 或 server.nodeAffinityPreset、agent.nodeAffinityPreset 参数。
本图表将简化TLS密钥的创建以供kiam使用。常见场景有三种:
默认应用第一种场景。第二种场景需提供证书和密钥。
证书文件示例如下。如有证书链,可能包含多个证书:
console-----BEGIN CERTIFICATE----- MIID6TCCAtGgAwIBAgIJAIaCwivkeB5EMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV ... jScrvkiBO65F46KioCL9h5tDvomdU1aqpI/CBzhvZn1c0ZTf87tGQR8NK7v7 -----END CERTIFICATE-----
证书密钥示例如下:
console-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAvLYcyu8f3skuRyUgeeNpeDvYBCDcgq+LsWap6zbX5f8oLqp4 ... wrj2wDbCDCFmfqnSJ+dKI3vFLlEz44sAV8jX/kd4Y6ZTQhlLbYc= -----END RSA PRIVATE KEY-----
如使用值文件管理证书,将上述值分别复制到 server.tlsFiles.cert、server.tlsFiles.ca、server.tlsFiles.key 或 agent.tlsFiles.cert、agent.tlsFiles.ca、agent.tlsFiles.key 参数中。
如在Helm外部管理TLS密钥,可创建TLS密钥(例如命名为 kiam.local-tls),并使用 server.tlsSecret 或 agent.tlsSecret 参数设置。
| 名称 | 描述 | 值 |
|---|---|---|
global.imageRegistry | 全局Docker镜像仓库 | "" |
global.imagePullSecrets | 全局Docker仓库密钥名称数组 | [] |
global.defaultStorageClass | 持久卷的全局默认存储类 | "" |
global.storageClass | 已弃用:使用global.defaultStorageClass替代 | "" |
global.security.allowInsecureImages | 允许跳过镜像验证 | false |
global.compatibility.openshift.adaptSecurityContext | 调整部署的securityContext部分以兼容OpenShift restricted-v2 SCC:移除runAsUser、runAsGroup和fsGroup,让平台使用允许的默认ID。可能值:auto(如检测到运行集群为OpenShift则应用)、force(始终执行调整)、disabled(不执行调整) | auto |
| 名称 | 描述 | 值 |
|---|---|---|
kubeVersion | 强制目标Kubernetes版本(未设置则使用Helm能力) | "" |
nameOverride | 发布名称覆盖 | "" |
fullnameOverride | 发布完整名称覆盖 | "" |
commonLabels | 添加到所有部署对象的标签 | {} |
commonAnnotations | 添加到所有部署对象的注解 | {} |
extraDeploy | 随发布部署的额外对象数组 | [] |
diagnosticMode.enabled | 启用诊断模式(所有探针将被禁用,命令将被覆盖) | false |
diagnosticMode.command | 覆盖部署/有状态集中所有容器的命令 | ["sleep"] |
diagnosticMode.args | 覆盖部署/有状态集中所有容器的参数 | ["infinity"] |
| 名称 | 描述 | 值 |
|---|---|---|
image.registry | kiam镜像仓库 | REGISTRY_NAME |
image.repository | kiam镜像名称 | REPOSITORY_NAME/kiam |
image.digest | kiam镜像摘要(格式sha256:aa....,如设置将覆盖标签) | "" |
image.pullPolicy | kiam镜像拉取策略 | IfNotPresent |
image.pullSecrets | 镜像拉取密钥名称数组 | [] |
| 名称 | 描述 | 值 |
|---|---|---|
server.enabled | 部署kiam服务器 | true |
server.containerPort | 容器级暴露的HTTPS端口 | 8443 |
server.resourceType | 指定服务器部署方式(允许值:daemonset 和 deployment) | daemonset |
server.automountServiceAccountToken | 在Pod中挂载服务账户令牌 | true |
server.hostAliases | 添加部署主机别名 | [] |
server.useHostNetwork | 使用主机网络(端口将直接暴露在主机上) | false |
server.replicaCount | 部署副本数(当server.resourceType为daemonset时) | 1 |
server.logJsonOutput | 使用JSON格式日志 | true |
server.logLevel | 日志级别 | info |
server.sslCertHostPath | 主机系统SSL证书路径(用于联系AWS元数据服务器) | /etc/ssl/certs |
server.podSecurityPolicy.create | 是否创建PodSecurityPolicy。警告:PodSecurityPolicy在Kubernetes v1.21及更高版本中已弃用,在v1.25及更高版本中不可用 | true |
server.podSecurityPolicy.allowedHostPaths | PodSecurityPolicy中允许的额外主机路径 | [] |
server.priorityClassName | 服务器优先级类名称 | "" |
server.schedulerName | k8s调度器名称(非默认) | "" |
server.topologySpreadConstraints | Pod分配的拓扑扩展约束 | [] |
server.startupProbe.enabled | 启用启动探针 | false |
server.startupProbe.initialDelaySeconds | 启动探针初始延迟秒数 | 5 |
server.startupProbe.periodSeconds | 启动探针周期秒数 | 30 |
server.startupProbe.timeoutSeconds | 启动探针超时秒数 | 5 |
server.startupProbe.failureThreshold | 启动探针失败阈值 | 5 |
server.startupProbe.successThreshold | 启动探针成功阈值 | 1 |
注意:本图表的README因超出DockerHub 25000字符限制已被截断。完整README可在[***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务