本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

请求追踪边车注入的证书

当使用`--set httpHeaderInjectorWebhook.enabled=true`安装代理时启用的边车注入机制会创建一个自签名证书,并使用一个`ClusterRole`,该授予对Kubernetes集群中`Secret`和`MutatingWebhookConfiguration`对象的写入访问权限。

如果出于安全原因不希望创建授予集群范围写入权限的`ClusterRoles`,或者有其他方式提供证书:

  1. 生成一个自签名证书本地

  2. 使用k8s cert-manager(如果它已经在集群中)与一个`ClusterIssuer`

在本地生成证书

要在本地生成证书,请执行以下步骤:

  1. 下载证书生成脚本并运行它,以生成一个具有正确证书的helm值(tls_values.yaml)文件:

    wget https://raw.githubusercontent.com/StackVista/http-header-injector/main/scripts/generate_ca_cert.sh
    chmod +x generate_ca_cert.sh
    ./generate_ca_cert.sh <helm-agent-release-name> <helm-agent-namespace>

    确保使用将在 helm 命令中使用的发布名称和名称空间,否则证书将无效。

  2. 安装代理,通过将`--set httpHeaderInjectorWebhook.enabled=true -f tls_values.yaml`添加到helm调用命令来添加额外配置

使用cert-manager生成证书

如果您的集群中安装了https://cert-manager.io/[cert-manager],并且配置了`ClusterIssuer`,则可以在代理中使用`ClusterIssuer`颁发的证书用于边车注入器。为此,请将以下命令行参数添加到安装代理中:--set httpHeaderInjectorWebhook.enabled=true --set-string httpHeaderInjectorWebhook.webhook.tls.mode="cert-manager" --set-string httpHeaderInjectorWebhook.webhook.tls.certManager.issuer="<my-cluster-issuer>"。确保将my-cluster-issuer替换为您集群中颁发者的名称。