cert-manager
cert-manager を使い、RustFS の Helm デプロイ向け TLS 証明書を発行し、更新します。
cert-manager を使い、RustFS の Ingress が参照する証明書を発行します。公開する S3 API と Console のエンドポイントで HTTPS を提供し、cert-manager が証明書を更新できます。
要件
- cert-manager がインストールされ、コントローラーの Pod が準備完了である。
IssuerまたはClusterIssuerが準備完了である。- RustFS のホスト名が Ingress コントローラーへ解決される。
RustFS をインストールする前に、Issuer を確認します。
kubectl get clusterissuer letsencrypt-prod
kubectl -n cert-manager get podsIngress の TLS を設定する
スタンドアロン用または分散用の values ファイルに、Ingress と証明書の設定を追加します。
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- host: s3.example.com
paths:
- path: /
pathType: Prefix
tls:
enabled: true
certManager:
enabled: true
existingSecret:
enabled: false
name: ""クラスターに合わせて、Ingress クラス、Issuer、ホスト名を置き換えます。名前空間スコープの Issuer には、cert-manager.io/issuer アノテーションを使います。
設定を適用する
helm upgrade rustfs ./helm/rustfs \
--namespace rustfs \
-f values.yamlリリース名が rustfs の場合、Ingress は rustfs-tls Secret を参照します。cert-manager の ingress-shim は Issuer のアノテーションを読み取り、この Secret へ書き込む Certificate を作成します。
証明書を確認する
kubectl -n rustfs get ingress,certificate,certificaterequest
kubectl -n rustfs describe certificate rustfs-tls
kubectl -n rustfs get secret rustfs-tlsCertificate が Ready=True を報告するまで待ち、その後 https://s3.example.com を開きます。
mTLS で cert-manager を使う
mtls.enabled=true のとき、チャートはサーバー証明書とクライアント証明書の発行にも cert-manager を使います。チャートが管理する CA、または既存の Issuer の参照については、mTLS を参照します。