文档

cert-manager

使用 cert-manager 管理 TLS 证书

本指南介绍如何安装 cert-manager 以管理 TLS 证书。本指南假设新安装或全新的 MinIO 运算符安装。

注意

本指南使用自签名 Cluster Issuer。您也可以使用 cert-manager 支持的其他颁发者

主要区别在于您必须将该 Issuer CA 证书提供给 MinIO,而不是本指南中提到的 CA。

有关更高级的配置,请参阅 cert-manager 文档 和您组织的证书要求。

cert-manager 在 Kubernetes 集群中管理证书。MinIO 运算符支持使用 cert-manager 管理和配置证书,作为 MinIO 运算符为自己和其租户管理证书的替代方法。

cert-manager 从 IssuerClusterIssuer 获取有效证书,并且可以在证书过期之前自动续订证书。

ClusterIssuer 为多个命名空间颁发证书。Issuer 仅为其自身命名空间颁发证书。

以下图形描述了 cert-manager 如何在整个 Kubernetes 集群的命名空间中提供证书。

  • ClusterIssuer 存在于 Kubernetes 集群的根级别,通常是 default 命名空间,以便为所有其他命名空间提供证书。

  • minio-operator 命名空间接收它自己的本地 Issuer

  • 每个租户的命名空间都收到它自己的本地 Issuer

  • 每个租户命名空间颁发的证书必须让 MinIO 运算符知道并信任它。

A graph of the namespaces in a Kubernetes cluster showing the relationship between the root level ClusterIssuer and three other namespaces with their own Issuer.

先决条件

  • 支持的 Kubernetes 版本

  • 已安装 kustomize

  • 对您的 k8s 集群有 kubectl 访问权限

设置 cert-manager

安装 cert-manager

以下命令使用 kubectl 安装版本 1.12.13。

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.13/cert-manager.yaml

Release 1.12.X LTS 是首选版本,但您也可以安装最新版本。有关安装 cert-manager 的更多详细信息,请参阅他们的 安装说明

为集群创建自签名集群颁发者

Cluster Issuer 是集群中所有其他证书的顶级颁发者。

  1. 请求 cert-manager 生成此颁发者,方法是创建 ClusterIssuer 资源。

    创建一个名为 selfsigned-root-clusterissuer.yaml 的文件,其中包含以下内容

    # selfsigned-root-clusterissuer.yaml
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: selfsigned-root
    spec:
      selfSigned: {}
    
  2. 将资源应用于集群

    kubectl apply -f selfsigned-root-clusterissuer.yaml
    

下一步

设置 MinIO 运算符的 cert-manager