10.5.2. SPIRE Server のデプロイ


SpireServer カスタムリソース (CR) を設定して、SPIRE サーバーをデプロイします。これにより、クラスター内のワークロードを管理し、ID を発行する中央機関が確立されます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • クラスターに Zero Trust Workload Identity Manager をインストールした。

手順

  1. SpireServer CR を作成します。

    1. SpireServer CR を定義する YAML ファイル (例: SpireServer.yaml) を作成します。

      SpireServer.yaml の例

      apiVersion: operator.openshift.io/v1alpha1
      kind: SpireServer
      metadata:
       name: cluster
      spec:
        logLevel: "info"
        logFormat: "text"
        jwtIssuer: "https://oidc-discovery.apps.cluster.example.com"
        caValidity: "24h"
        defaultX509Validity: "1h"
        defaultJWTValidity: "5m"
        jwtKeyType: "rsa-2048"
        caSubject:
          country: "US"
          organization: "Example Corporation"
          commonName: "SPIRE Server CA"
        persistence:
          size: "5Gi"
          accessMode: "ReadWriteOnce"
          storageClass: "gp3-csi"
        datastore:
          databaseType: "sqlite3"
          connectionString: "/run/spire/data/datastore.sqlite3"
          tlsSecretName: ""
          maxOpenConns: 100
          maxIdleConns: 10
          connMaxLifetime: 0
          disableMigration: "false"

      ここでは、以下のようになります。

      metadata.name
      値が クラスター でなければならないことを指定します。
      spec.logLevel
      SPIRE サーバーのログレベルを指定します。有効なオプションは、debuginfowarnerror です。
      spec.logFormat
      SPIRE サーバーのログ記録フォーマットを指定します。有効なオプションは、textjson です。
      spec.jwtIssuer
      JWT 発行者の URL を指定します。有効な HTTPS または HTTP URL である必要があり、最大長は 512 文字です。
      spec.ca の有効性
      SPIRE サーバーの CA 証明書の有効期間 (有効期限 (TTL)) を指定します。これは、サーバーのルート証明書または中間証明書の有効期間を決定します。形式は期間を表す文字列です (例: 24h168h)。
      spec.defaultX509 有効性
      ワークロードに発行される X.509 SVID のデフォルトの有効期間 (TTL) を指定します。この値は、登録エントリーに対して特定の TTL が設定されていない場合に使用されます。
      spec.defaultJWTValidity
      ワークロードに発行される JWT SVID のデフォルトの有効期間 (TTL) を指定します。この値は、登録エントリーに対して特定の TTL が設定されていない場合に使用されます。
      spec.wtKeyType
      JWT 署名に使用するキーの種類を指定します。有効なオプションは、rsa-2048rsa-4096ec-p256、および ec-p384 です。このフィールドは任意です。
      spec.caSubject.country
      SPIRE サーバーの認証局 (CA) の国を指定します。ISO 3166-1 alpha-2 国コード (2 文字) である必要があります。
      spec.caSubject.organization
      SPIRE サーバー CA の組織を指定します。最大文字数は 64 文字です。
      spec.caSubject.commonName
      SPIRE サーバー CA の共通名を指定します。最大文字数は 255 文字です。
      仕様の永続性サイズ
      永続ボリュームのサイズを指定します (例: 1Gi5Gi)。一度設定されると、このフィールドは変更できません。
      spec.persistence.accessMode
      永続ボリュームのアクセスモードを指定します。有効なオプションは ReadWriteOnceReadWriteOncePodReadWriteMany です。一度設定されると、このフィールドは変更できません。
      spec.persistence.storageClass
      PVC に使用するストレージクラスを指定します。一度設定されると、このフィールドは変更できません。
      spec.datastore.databaseType
      データストアに使用するデータベースの種類を指定します。有効なオプションは、sqlsqlite3postgresmysqlaws_postgresql、および aws_mysql です。
      spec.datastore.connectionString
      データベースへの接続文字列を指定します。SSL を使用する PostgreSQL の場合は、sslmode と証明書のパスを含めます (例: dbname=spire user=spire host=postgres.example.com sslmode=verify-full)。
      spec.datastore.tlsSecretName
      データベース接続用の TLS 証明書を含む Kubernetes Secret の名前を指定します。シークレットは /run/spire/db/certs にマウントされます。このフィールドは任意です。
      spec.datastore.maxOpenConns
      開いているデータベース接続の最大数を指定します。1 から 10000 までの値でなければなりません。
      spec.datastore.maxIdleConns
      プール内のアイドル状態のデータベース接続の最大数を指定します。0 から 10000 までの値でなければなりません。
      spec.datastore.connMaxLifetime
      データベース接続の最大有効期間を秒単位で指定します。値が 0 の場合は、接続が経過年数によって切断されていないことを意味します。
      spec.datastore.disableMigration
      自動データベース移行を無効にするかどうかを指定します。有効なオプションは truefalse です。
    2. 以下のコマンドを実行して設定を適用します。

      $ oc apply -f SpireServer.yaml

検証

  • 次のコマンドを実行して、SPIRE Server のステートフルセットが準備完了状態であり、利用可能であることを確認します。

    $ oc get statefulset -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager

    出力例

    NAME            READY   AGE
    spire-server    1/1     65s

  • 次のコマンドを実行して、SPIRE Server Pod のステータスが Running であることを確認します。

    $ oc get po -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager

    出力例

    NAME               READY   STATUS    RESTARTS        AGE
    spire-server-0     2/2     Running   1 (108s ago)    111s

  • 次のコマンドを実行して、永続ボリューム要求 (PVC) がバインドされていることを確認します。

    $ oc get pvc -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager

    出力例

    NAME                        STATUS    VOLUME                                     CAPACITY   ACCESS MODES  STORAGECLASS  VOLUMEATTRIBUTECLASS  AGE
    spire-data-spire-server-0   Bound     pvc-27a36535-18a1-4fde-ab6d-e7ee7d3c2744   5Gi        RW0           gp3-csi       <unset>               22m

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る