OSS探訪

Kubernetes内でTLS証明書の発行・更新を自動化し、ACMEやVaultなど複数のIssuerを統一的に扱う

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
14,104
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

cert-managerはKubernetesへCertificateと証明書Issuerのresource typeを追加し、証明書の取得・更新・利用を自動化するcontroller群です。Let's EncryptなどのACME、HashiCorp Vault、CyberArk Certificate Manager、cluster内の発行元などを利用でき、期限前の更新も継続的に処理します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

CertificateとIssuerをKubernetes resourceとして管理する

applicationごとのscriptではなく、CertificateとIssuer/ClusterIssuerを宣言して証明書のdesired stateを管理できます。controllerが発行状況を監視し、必要な処理を継続します。

出典:[1]

ACME・Vaultなど複数の発行元を選ぶ

READMEはLet's Encryptを含むACME、HashiCorp Vault、CyberArk Certificate Manager、cluster内発行を例として挙げています。用途やtrust modelに応じてIssuerを選択できます。

出典:[1]

期限前の証明書更新を自動化する

cert-managerは証明書の有効期限を監視し、期限切れによる停止リスクを抑えるため適切な時点でrenewalを試みます。Ingress向けTLS発行にも公式quick startがあります。

出典:[1]

向いている用途

Kubernetes上のTLS証明書lifecycleを宣言的に管理したい場合に向く

Ingressやserviceで使う証明書を手動更新せず、cluster resourceとcontrollerで発行・更新を統一したいplatform teamに適します。

出典:[1]

導入前の確認

CRD・controller・webhookをcluster componentとして運用する

公式releaseはCRDとcontroller群を含むinstall manifestを提供します。application libraryとして追加するのではなく、cluster-wideなcomponentとしてupgrade・監視・障害時の影響範囲を管理します。

出典:[3]

Issuer credentialと権限境界を発行方式ごとに設計する

外部CAやVault、ACMEを使う場合はIssuerが必要とするcredential・network access・Kubernetes権限を方式ごとに確認します。ClusterIssuerを使う場合はnamespaceをまたぐ利用範囲も考慮します。

出典:[1][3]

Go module APIとして内部packageへ依存しない

READMEはpkg/以下のGo codeについてmodule compatibility guaranteeを提供していないと明記しています。Kubernetes APIのversion保証とは別なので、application codeから内部packageへ直接依存する場合はbreaking changeを前提にします。

出典:[1][2]

参考にした公式資料

  1. [1]cert-manager v1.21.2 README(2026-10-03)
  2. [2]cert-manager v1.21.2 go.mod(2026-10-03)
  3. [3]cert-manager v1.21.2 release(2026-10-03)
  4. [4]cert-manager Apache-2.0 license(2026-10-03)
編集部からの補足

証明書の期限管理をapplicationごとの手作業からKubernetes resourceへ寄せたい場合に有効です。Issuer credentialと証明書Secretへ触れられる権限は広げ過ぎず、namespace境界とClusterIssuerの利用範囲を先に設計してください。

3ステップで試す

  1. 1

    cert-manager v1.21.2をclusterへ適用する

    公式release manifestからCRD、controller、webhook、cainjector等を導入します。既存clusterへの変更なので検証環境で実行してください。

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

    主要deploymentがReadyになるまで待つ

    certificate処理に必要なcontroller群が起動したことを確認します。

    kubectl -n cert-manager rollout status deployment/cert-manager && kubectl -n cert-manager rollout status deployment/cert-manager-webhook && kubectl -n cert-manager rollout status deployment/cert-manager-cainjector
  3. 3

    CertificateとIssuerのCRDを確認する

    API resourceがclusterへ登録済みであることを確認し、その後に環境に合うIssuerを設定します。

    kubectl get crd certificates.cert-manager.io issuers.cert-manager.io clusterissuers.cert-manager.io
公式READMEで確認

成長

成長の推移 · 直近30日

14,104 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
126
Open PR
103

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • kubernetes
  • letsencrypt
  • tls
  • certificate
  • crd
  • hacktoberfest
Stars
14,104
Forks
2,462
Watchers
144
Open Issues
160
Contributors
382
所有者種別
Organization
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?