3.9 KiB
cert-manager
minio
Table of Contents
TLS certificate management with cert-manager
This guide shows you how to install cert-manager for TLS certificate management. The guide assumes a new or fresh MinIO Operator installation.
Note
This guide uses a self-signed Cluster Issuer
. You can
also use other Issuers
supported by cert-manager.
The main difference is that you must provide that Issuer
CA certificate to MinIO, instead of the CA's mentioned in this
guide.
Refer to the cert-manager documentation and your own organization's certificate requirements for more advanced configurations.
cert-manager manages certificates within Kubernetes clusters. The MinIO Operator supports using cert-manager for managing and provisioning certificates as an alternative to the MinIO Operator managing certificates for itself and its tenants.
cert-manager obtains valid certificates from an Issuer
or ClusterIssuer
and can automatically renew certificates
prior to expiration.
A ClusterIssuer
issues certificates for multiple
namespaces. An Issuer
only mints certificates for its own
namespace.
The following graphic depicts how cert-manager provides certificates in namespaces across a Kubernetes cluster.
- A
ClusterIssuer
exists at the root level of the Kubernetes cluster, typically thedefault
namespace, to provide certificates to all other namespaces. - The
minio-operator
namespace receives its own, localIssuer
. - Each tenant's namespace receives its own, local
Issuer
. - The certificates issued by each tenant namespace must be made known to and trusted by the MinIO Operator.
Prerequisites
- A supported version of Kubernetes.
- kustomize installed
kubectl
access to yourk8s
cluster
Setup cert-manager
Install cert-manager
The following command installs version 1.12.13 using
kubectl
.
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.13/cert-manager.yaml
Release 1.12.X LTS is preferred, but you may install the latest version. For more details on installing cert-manager, see their installation instructions.
Create a self-signed Cluster Issuer for the cluster
The Cluster Issuer
is the top level Issuer from which
all other certificates in the cluster derive.
Request cert-manager to generate this by creating a
ClusterIssuer
resource.Create a file called
selfsigned-root-clusterissuer.yaml
with the following contents:# selfsigned-root-clusterissuer.yaml apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: selfsigned-root spec: selfSigned: {}
Apply the resource to the cluster:
kubectl apply -f selfsigned-root-clusterissuer.yaml
Next steps
Set up cert-manager for the MinIO Operator <minio-certmanager-operator>
.
/operations/cert-manager/cert-manager-operator /operations/cert-manager/cert-manager-tenants