OpenShift での Service Registry のインストールおよびデプロイ
Service Registry 2.5 のインストール、デプロイ、および設定
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック
Red Hat ドキュメントに関するご意見やご感想をお寄せください。
改善を提案するには、Jira 課題を作成し、変更案を説明してください。ご要望に迅速に対応できるよう、できるだけ詳細にご記入ください。
前提条件
-
Red Hat カスタマーポータルのアカウントがある。このアカウントを使用すると、Red Hat Jira Software インスタンスにログインできます。
アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- Create issue にアクセスします。
- Summary テキストボックスに、問題の簡単な説明を入力します。
Description テキストボックスに、次の情報を入力します。
- 問題が見つかったページの URL
-
問題の詳細情報
他のフィールドの情報はデフォルト値のままにすることができます。
- Create をクリックして、Jira 課題をドキュメントチームに送信します。
フィードバックをご提供いただきありがとうございました。
第1章 Service Registry Operator クイックスタート リンクのコピーリンクがクリップボードにコピーされました!
カスタムリソース定義 (CRD) を使用して、コマンドラインで Service Registry Operator を迅速にインストールできます。
クイックスタートの例では、SQL データベースにストレージを持つ Service Registry インスタンスをデプロイします。
実稼働環境で推奨されるインストールオプションは OpenShift OperatorHub です。推奨されるストレージオプションは、パフォーマンス、安定性、およびデータ管理のための SQL データベースです。
1.1. Quickstart Service Registry Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Service Registry Operator は、ダウンロードしたインストールファイルとサンプル CRD のセットを使用して、Operator Lifecycle Manager を使用せずにコマンドラインで迅速にインストールおよびデプロイできます。
前提条件
- アクセス権を持つ管理者として OpenShift クラスターにログインしている。
-
OpenShift
ocコマンドラインクライアントがインストールされている。詳細は、OpenShift CLI のドキュメント を参照してください。
手順
-
Red Hat Software Downloads に移動し、製品バージョンを選択して、Service Registry CRD
.zipファイルの例をダウンロードします。 -
ダウンロードした CRD
.zipファイルを展開して、apicurio-registry-install-examplesディレクトリーに移動します。 Service Registry Operator インストールの OpenShift プロジェクトを作成します。以下に例を示します。
export NAMESPACE="apicurio-registry" oc new-project "$NAMESPACE"以下のコマンドを実行して、
install/install.yamlファイルにサンプル CRD を適用します。cat install/install.yaml | sed "s/apicurio-registry-operator-namespace/$NAMESPACE/g" | oc apply -f -oc get deploymentと入力し、Service Registry Operator の readiness (準備状態) を確認します。たとえば、出力は以下のようになります。NAME READY UP-TO-DATE AVAILABLE AGE apicurio-registry-operator 1/1 1 1 XmYs
1.2. Quickstart Service Registry インスタンスのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
Service Registry インスタンスのデプロイメントを作成するには、SQL データベースストレージオプションを使用して、既存の PostgreSQL データベースに接続します。
前提条件
- Service Registry Operator がインストールされていることを確認している。
- OpenShift クラスターからアクセス可能な PostgreSQL データベースがある。
手順
エディターで
examples/apicurioregistry_sql_cr.yamlファイルを開き、ApicurioRegistryカスタムリソース (CR) を表示します。SQL ストレージの CR の例
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-sql spec: configuration: persistence: "sql" sql: dataSource: url: "jdbc:postgresql://<service name>.<namespace>.svc:5432/<database name>" userName: "postgres" password: "<password>" # OptionaldataSourceセクションで、設定例をデータベース接続の詳細に置き換えます。以下に例を示します。dataSource: url: "jdbc:postgresql://postgresql.apicurio-registry.svc:5432/registry" userName: "pgadmin" password: "pgpass"以下のコマンドを入力し、Service Registry Operator を使用して namespace に更新された
ApicurioRegistryCR を適用し、Service Registry インスタンスがデプロイするまで待機します。oc project "$NAMESPACE" oc apply -f ./examples/apicurioregistry_sql_cr.yamloc get deploymentと入力し、Service Registry インスタンスの readiness (準備状態) を確認します。たとえば、出力は以下のようになります。NAME READY UP-TO-DATE AVAILABLE AGE example-apicurioregistry-sql-deployment 1/1 1 1 XmYsoc get routesと入力してHOST/PORTURL を取得し、ブラウザーで Service Registry Web コンソールを起動します。以下に例を示します。example-apicurioregistry-sql.apicurio-registry.router-default.apps.mycluster.myorg.mycompany.com
第2章 OpenShift での Service Registry のインストール リンクのコピーリンクがクリップボードにコピーされました!
この章では、OpenShift Container Platform に Service Registry をインストールする方法を説明します。
前提条件
- Service Registry ユーザーガイド の概要を確認する。
2.1. OpenShift OperatorHub からの Service Registry のインストール リンクのコピーリンクがクリップボードにコピーされました!
OperatorHub から OpenShift クラスターに Service Registry Operator をインストールできます。OperatorHub は OpenShift Container Platform Web コンソールから使用でき、クラスター管理者が Operator を検出およびインストールするためのインターフェイスを提供します。詳細は、OperatorHub について を参照してください。
環境に応じて、複数の Service Registry インスタンスをインストールできます。インスタンス数は、Service Registry に保存されているアーティファクトの数および種類と、選択したストレージオプションによって異なります。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
手順
- OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
新しい OpenShift プロジェクトを作成します。
- 左側のナビゲーションメニューで、Home、Project、Create Project と順にクリックします。
-
プロジェクト名 (
my-projectなど) を入力し、Create をクリックします。
- 左側のナビゲーションメニューで、Operators をクリックした後、OperatorHub をクリックします。
-
Filter by keyword テキストボックスに
registryを入力し、Red Hat Integration - Service Registry Operator を見つけます。 - Operator に関する情報を読み、Install をクリックして Operator サブスクリプションページを表示します。
サブスクリプション設定を選択します。以下に例を示します。
Update Channel: 以下のいずれかを選択します。
- 2.x: 2.3.0 や 2.0.3 などのすべてのマイナーおよびパッチの更新が含まれます。たとえば、2.0.x へのインストールは 2.3.x にアップグレードされます。
- 2.0.x: 2.0.1 や 2.0.2 などのパッチの更新のみが含まれます。たとえば、2.0.x へのインストールは 2.3.x を無視します。
Installation Mode: 以下のいずれかを選択します。
- All namespaces on the cluster (default)
- A specific namespace on the cluster および my-project
- Approval Strategy: Automatic または Manual を選択します。
- Install をクリックし、Operator が使用できるようになるまでしばらく待ちます。
第3章 AMQ Streams での Service Registry ストレージのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この章では、AMQ Streams で Service Registry データストレージをインストールおよび設定する方法を説明します。
3.1. OpenShift OperatorHub からの AMQ Streams のインストール: リンクのコピーリンクがクリップボードにコピーされました!
AMQ Streams がインストールされていない場合は、OperatorHub から OpenShift クラスターに AMQ Streams Operator をインストールできます。OperatorHub は OpenShift Container Platform Web コンソールから使用でき、クラスター管理者が Operator を検出およびインストールするためのインターフェイスを提供します。詳細は、OperatorHub について を参照してください。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
- AMQ Streams のインストールの詳細は、OpenShift での AMQ Streams のデプロイと管理 を参照してください。ここでは、OpenShift OperatorHub を使用したインストールの簡単な例を示します。
手順
- OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
-
AMQ Streams をインストールする OpenShift プロジェクトに切り替えます。たとえば、Project ドロップダウンから、
my-projectを選択します。 - 左側のナビゲーションメニューで、Operators をクリックした後、OperatorHub をクリックします。
-
Filter by keyword テキストボックスに
AMQ Streamsを入力し、Red Hat Integration - AMQ Streams を見つけます。 - Operator に関する情報を読み、Install をクリックして Operator サブスクリプションページを表示します。
サブスクリプション設定を選択します。以下に例を示します。
- Update Channel を選択してから amq-streams-2.5.x を選択します。
Installation Mode: 以下のいずれかを選択します。
- All namespaces on the cluster (default)
- A specific namespace on the cluster > my-project
- Approval Strategy: Automatic または Manual を選択します。
- Install をクリックし、Operator が使用できるようになるまでしばらく待ちます。
3.2. OpenShift での Kafka ストレージを使用した Service Registry の設定 リンクのコピーリンクがクリップボードにコピーされました!
ここでは、AMQ Streams on OpenShift を使用して Service Registry に Kafka ベースのストレージを設定する方法を説明します。kafkasql ストレージオプションは、キャッシュにインメモリー H2 データベースを備えた Kafka ストレージを使用します。このストレージオプションは、OpenShift の Kafka クラスターに persistent ストレージが設定されている実稼働環境に適しています。
既存の Kafka クラスターに Service Registry をインストールするか、環境に応じて新しい Kafka クラスターを作成できます。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
- Service Registry がすでにインストールされている。2章OpenShift での Service Registry のインストール を参照してください。
- AMQ Streams がすでにインストールされている。「OpenShift OperatorHub からの AMQ Streams のインストール:」 を参照してください。
手順
- OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
Kafka クラスターがまだ設定されていない場合は、AMQ Streams を使用して新しい Kafka クラスターを作成します。たとえば、OpenShift OperatorHub では以下を実行します。
- Installed Operators をクリックしてから Red Hat Integration - AMQ Streams をクリックします。
- Provided APIs、Kafka と選択し、Create Instance をクリックして新しい Kafka クラスターを作成します。
適切にカスタムリソース定義を編集し、Create をクリックします。
警告デフォルトの例では、3 つの Zookeeper ノード、および、
ephemeralストレージを持つ 3 つの Kafka ノードを持つクラスターが作成されます。この一時ストレージは開発およびテストにのみ適しており、実稼働には適していません。詳細は、OpenShift での AMQ Streams のデプロイと管理 を参照してください。
- クラスターの準備ができたら、Provided APIs > Kafka > my-cluster > YAML をクリックします。
statusブロックで、bootstrapServers値のコピーを作成します。これは、後で Service Registry をデプロイするために使用します。以下に例を示します。status: ... conditions: ... listeners: - addresses: - host: my-cluster-kafka-bootstrap.my-project.svc port: 9092 bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092' type: plain ...- Installed Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry をクリックします。
次のカスタムリソース定義を貼り付けますが、前にコピーした
bootstrapServers値を使用します。apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql spec: configuration: persistence: 'kafkasql' kafkasql: bootstrapServers: 'my-cluster-kafka-bootstrap.my-project.svc:9092'- Create をクリックし、OpenShift で Service Registry ルートが作成されるまで待機します。
Networking > Route をクリックして、Service Registry Web コンソールの新規ルートにアクセスします。以下に例を示します。
http://example-apicurioregistry-kafkasql.my-project.my-domain-name.com/Service Registry がデータの保存に使用する Kafka トピックを設定するには、Installed Operators > Red Hat Integration - AMQ Streams > Provided APIs > Kafka Topic > kafkasql-journal > YAML をクリックします。以下に例を示します。
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: kafkasql-journal labels: strimzi.io/cluster: my-cluster namespace: ... spec: partitions: 3 replicas: 3 config: cleanup.policy: compact警告Service Registry で使用される Kafka トピック (デフォルトでは
kafkasql-journalという名前) を圧縮クリーンアップポリシーで設定する必要があります。そうしないと、データ損失が発生する可能性があります。
3.3. TLS セキュリティーでの Kafka ストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
AMQ Streams Operator および Service Registry Operator を、暗号化された Transport Layer Security (TLS) 接続を使用するように設定できます。
前提条件
- OperatorHub またはコマンドラインを使用して Service Registry Operator をインストールしている。
- AMQ Streams Operator がインストールされているか、Kafka が OpenShift クラスターからアクセスできる。
ここでは、AMQ Streams Operator が利用可能であることを前提としていますが、任意の Kafka デプロイメントを使用できます。この場合、Service Registry Operator が想定する Openshift シークレットを手動で作成する必要があります。
手順
- OpenShift Web コンソールで Installed Operators をクリックし、AMQ Streams Operator の詳細を選択してから、Kafka タブをクリックします。
- Create Kafka をクリックし、Service Registry ストレージの新しい Kafka クラスターをプロビジョニングします。
Kafka クラスターに TLS 認証を使用するように、
authorizationフィールドとtlsフィールドを設定します。次に例を示します。apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: registry-example-kafkasql-tls # Change or remove the explicit namespace spec: kafka: config: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 log.message.format.version: '2.7' inter.broker.protocol.version: '2.7' version: 2.7.0 storage: type: ephemeral replicas: 3 listeners: - name: tls port: 9093 type: internal tls: true authentication: type: tls authorization: type: simple entityOperator: topicOperator: {} userOperator: {} zookeeper: storage: type: ephemeral replicas: 3データを保存するために Service Registry によって自動作成されるデフォルトの Kafka トピック名は
kafkasql-journalです。環境変数を設定することで、この動作またはデフォルトのトピック名をオーバーライドできます。デフォルト値は以下のとおりです。-
REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true -
REGISTRY_KAFKASQL_TOPIC=kafkasql-journal
Kafka トピックを手動で作成しない場合は、次の手順を省略します。
-
Kafka Topic タブをクリックし、Create Kafka Topic をクリックして、
kafkasql-journalトピックを作成します。apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaTopic metadata: name: kafkasql-journal labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-tls spec: partitions: 2 replicas: 1 config: cleanup.policy: compactKafka User リソースを作成し、Service Registry ユーザーの認証および承認を設定します。
metadataセクションでユーザー名を指定するか、デフォルトのmy-userを使用できます。apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaUser metadata: name: my-user labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-tls spec: authentication: type: tls authorization: acls: - operation: All resource: name: '*' patternType: literal type: topic - operation: All resource: name: '*' patternType: literal type: cluster - operation: All resource: name: '*' patternType: literal type: transactionalId - operation: All resource: name: '*' patternType: literal type: group type: simple注記このシンプルな例では、admin パーミッションを前提とし、Kafka トピックを自動的に作成します。Service Registry が必要とするトピックおよびリソースに合わせて
authorizationを設定する必要があります。次の例は、Kafka トピックを手動で作成する場合に必要な最小設定を示しています。
... authorization: acls: - operations: - Read - Write resource: name: kafkasql-journal patternType: literal type: topic - operations: - Read - Write resource: name: apicurio-registry- patternType: prefix type: group type: simpleWorkloads をクリックしてから Secrets をクリックし、Service Registry が Kafka クラスターに接続するために AMQ Streams によって作成される 2 つのシークレットを見つけます。
-
my-cluster-cluster-ca-cert- Kafka クラスターの PKCS12 トラストストアが含まれています my-user- ユーザーのキーストアが含まれます注記シークレットの名前は、クラスターまたはユーザー名によって異なります。
-
シークレットを手動で作成する場合は、以下のキーと値のペアを含める必要があります。
my-cluster-ca-cert
-
ca.p12- PKCS12 形式のトラストストア -
ca.password- truststore password
-
my-user
-
user.p12- PKCS12 形式のキーストア -
user.password- keystore password
-
Service Registry をデプロイするように、以下の設定例を設定します。
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql-tls spec: configuration: persistence: "kafkasql" kafkasql: bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-kafkasql-tls.svc:9093" security: tls: keystoreSecretName: my-user truststoreSecretName: my-cluster-cluster-ca-cert
プレーンでセキュアでないユースケースとは別の bootstrapServers アドレスを使用する必要があります。アドレスは TLS 接続をサポートする必要があり、指定された Kafka リソースの type:tls フィールドにあります。
3.4. SCRAM セキュリティーでの Kafka ストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Kafka クラスターの Salted Challenge Response Authentication Mechanism (SCRAM-SHA-512) を使用するように AMQ Streams Operator および Service Registry Operator を設定できます。
前提条件
- OperatorHub またはコマンドラインを使用して Service Registry Operator をインストールしている。
- AMQ Streams Operator がインストールされているか、Kafka が OpenShift クラスターからアクセスできる。
ここでは、AMQ Streams Operator が利用可能であることを前提としていますが、任意の Kafka デプロイメントを使用できます。この場合、Service Registry Operator が想定する Openshift シークレットを手動で作成する必要があります。
手順
- OpenShift Web コンソールで Installed Operators をクリックし、AMQ Streams Operator の詳細を選択してから、Kafka タブをクリックします。
- Create Kafka をクリックし、Service Registry ストレージの新しい Kafka クラスターをプロビジョニングします。
Kafka クラスターに SCRAM-SHA-512 認証を使用するように、
authorizationフィールドとtlsフィールドを設定します。次に例を示します。apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: registry-example-kafkasql-scram # Change or remove the explicit namespace spec: kafka: config: offsets.topic.replication.factor: 3 transaction.state.log.replication.factor: 3 transaction.state.log.min.isr: 2 log.message.format.version: '2.7' inter.broker.protocol.version: '2.7' version: 2.7.0 storage: type: ephemeral replicas: 3 listeners: - name: tls port: 9093 type: internal tls: true authentication: type: scram-sha-512 authorization: type: simple entityOperator: topicOperator: {} userOperator: {} zookeeper: storage: type: ephemeral replicas: 3データを保存するために Service Registry によって自動作成されるデフォルトの Kafka トピック名は
kafkasql-journalです。環境変数を設定することで、この動作またはデフォルトのトピック名をオーバーライドできます。デフォルト値は以下のとおりです。-
REGISTRY_KAFKASQL_TOPIC_AUTO_CREATE=true -
REGISTRY_KAFKASQL_TOPIC=kafkasql-journal
Kafka トピックを手動で作成しない場合は、次の手順を省略します。
-
Kafka Topic タブをクリックし、Create Kafka Topic をクリックして、
kafkasql-journalトピックを作成します。apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaTopic metadata: name: kafkasql-journal labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-scram spec: partitions: 2 replicas: 1 config: cleanup.policy: compactKafka User リソースを作成し、Service Registry ユーザーの SCRAM 認証および承認を設定します。
metadataセクションでユーザー名を指定するか、デフォルトのmy-userを使用できます。apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaUser metadata: name: my-user labels: strimzi.io/cluster: my-cluster namespace: registry-example-kafkasql-scram spec: authentication: type: scram-sha-512 authorization: acls: - operation: All resource: name: '*' patternType: literal type: topic - operation: All resource: name: '*' patternType: literal type: cluster - operation: All resource: name: '*' patternType: literal type: transactionalId - operation: All resource: name: '*' patternType: literal type: group type: simple注記このシンプルな例では、admin パーミッションを前提とし、Kafka トピックを自動的に作成します。Service Registry が必要とするトピックおよびリソースに合わせて
authorizationを設定する必要があります。次の例は、Kafka トピックを手動で作成する場合に必要な最小設定を示しています。
... authorization: acls: - operations: - Read - Write resource: name: kafkasql-journal patternType: literal type: topic - operations: - Read - Write resource: name: apicurio-registry- patternType: prefix type: group type: simpleWorkloads をクリックしてから Secrets をクリックし、Service Registry が Kafka クラスターに接続するために AMQ Streams によって作成される 2 つのシークレットを見つけます。
-
my-cluster-cluster-ca-cert- Kafka クラスターの PKCS12 トラストストアが含まれています my-user- ユーザーのキーストアが含まれます注記シークレットの名前は、クラスターまたはユーザー名によって異なります。
-
シークレットを手動で作成する場合は、以下のキーと値のペアを含める必要があります。
my-cluster-ca-cert
-
ca.p12-PKCS12 形式のトラストストア -
ca.password- truststore password
-
my-user
-
パスワード- ユーザーパスワード
-
Service Registry をデプロイするように、以下の設定例を設定します。
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql-scram spec: configuration: persistence: "kafkasql" kafkasql: bootstrapServers: "my-cluster-kafka-bootstrap.registry-example-kafkasql-scram.svc:9093" security: scram: truststoreSecretName: my-cluster-cluster-ca-cert user: my-user passwordSecretName: my-user
プレーンでセキュアでないユースケースとは別の bootstrapServers アドレスを使用する必要があります。アドレスは TLS 接続をサポートする必要があり、指定された Kafka リソースの type:tls フィールドにあります。
3.5. Kafka ストレージの OAuth 認証の設定 リンクのコピーリンクがクリップボードにコピーされました!
AMQ ストリームで Kafka-based のストレージを使用する場合、Service Registry は OAuth 認証を必要とする Kafka クラスターへのアクセスをサポートします。このサポートを有効にするには、Service Registry デプロイメントでいくつかの環境変数を設定する必要があります。
これらの環境変数を設定すると、Service Registry の Kafka プロデューサーおよびコンシューマーアプリケーションはこの設定を使用して、OAuth を介して Kafka クラスターに対して認証します。
前提条件
- AMQ ストリームでのサービスレジストリーデータの Kafka-based のストレージはすでに設定されている必要があります。「OpenShift での Kafka ストレージを使用した Service Registry の設定」 を参照してください。
手順
Service Registry デプロイメントで次の環境変数を設定します。
Expand 環境変数 説明 デフォルト値 ENABLE_KAFKA_SASLKafka の Service Registry ストレージの SASL OAuth 認証を有効にします。他の変数を有効にするには、この変数を
trueに設定する必要があります。falseCLIENT_IDKafka への認証に使用されるクライアント ID。
-CLIENT_SECRETKafka への認証に使用されるクライアントシークレット。
-OAUTH_TOKEN_ENDPOINT_URIOAuth ID サーバーの URL。
http://localhost:8090
関連情報
- OpenShift で Service Registry 環境変数を設定する方法の例については、以下を参照してください。「OpenShift での Service Registry ヘルスチェックの設定」
第4章 PostgreSQL データベースでの Service Registry ストレージのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この章では、PostgreSQL データベースで Service Registry データストレージをインストール、設定、および管理する方法を説明します。
4.1. OpenShift OperatorHub からの PostgreSQL データベースのインストール リンクのコピーリンクがクリップボードにコピーされました!
PostgreSQL データベース Operator がインストールされていない場合は、OperatorHub から OpenShift クラスターに PostgreSQL Operator をインストールできます。OperatorHub は OpenShift Container Platform Web コンソールから使用でき、クラスター管理者が Operator を検出およびインストールするためのインターフェイスを提供します。詳細は、OperatorHub について を参照してください。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
手順
- OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
-
PostgreSQL Operator をインストールする OpenShift プロジェクトに切り替えます。たとえば、Project ドロップダウンから、
my-projectを選択します。 - 左側のナビゲーションメニューで、Operators をクリックした後、OperatorHub をクリックします。
-
Filter by keyword テキストボックスに
PostgreSQLと入力して、環境に適した Operator を見つけます (例: Crunchy PostgreSQL for OpenShift)。 - Operator に関する情報を読み、Install をクリックして Operator サブスクリプションページを表示します。
サブスクリプション設定を選択します。以下に例を示します。
- Update Channel: stable
- Installation Mode: A specific namespace on the cluster および my-project
- Approval Strategy: Automatic または Manual を選択します。
Install をクリックし、Operator が使用できるようになるまでしばらく待ちます。
重要データベースの作成と管理方法の詳細は、選択したPostgreSQL Operator のドキュメントを読む必要があります。
4.2. OpenShift での PostgreSQL データベースストレージを使用した Service Registry の設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、PostgreSQL データベース Operator を使用して、OpenShift の Service Registry のストレージを設定する方法を説明します。既存のデータベースに Service Registry をインストールするか、環境に応じて新規データベースを作成することができます。このセクションでは、Dev4Ddevs.com による PostgreSQL Operator を使用する簡単な例を紹介します。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
- Service Registry がすでにインストールされている。2章OpenShift での Service Registry のインストール を参照してください。
- OpenShift に PostgreSQL Operator がすでにインストールされている。たとえば、「OpenShift OperatorHub からの PostgreSQL データベースのインストール」 を参照してください。
手順
- OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
-
Service Registry および PostgreSQL Operator がインストールされている OpenShift プロジェクトに切り替えます。たとえば、Project ドロップダウンから、
my-projectを選択します。 - Service Registry ストレージの PostgreSQL データベースを作成します。たとえば、Installed Operators、PostgreSQL Operator by Dev4Ddevs.com の順にクリックした後、Create database をクリックします。
YAML をクリックし、以下のようにデータベース設定を編集します。
-
name: 値をregistryに変更します -
image: 値をcentos/postgresql-12-centos7に変更します
-
実際の環境に応じて、必要に応じてその他のデータベース設定を編集します。以下に例を示します。
apiVersion: postgresql.dev4devs.com/v1alpha1 kind: Database metadata: name: registry namespace: my-project spec: databaseCpu: 30m databaseCpuLimit: 60m databaseMemoryLimit: 512Mi databaseMemoryRequest: 128Mi databaseName: example databaseNameKeyEnvVar: POSTGRESQL_DATABASE databasePassword: postgres databasePasswordKeyEnvVar: POSTGRESQL_PASSWORD databaseStorageRequest: 1Gi databaseUser: postgres databaseUserKeyEnvVar: POSTGRESQL_USER image: centos/postgresql-12-centos7 size: 1- Create をクリックし、データベースが作成されるまで待ちます。
- Installed Operators > Red Hat Integration - Service Registry > ApicurioRegistry > Create ApicurioRegistry をクリックします。
以下のカスタムリソース定義に貼り付け、データベース
urlおよびクレデンシャルの値を編集して環境と一致するようにします。apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-sql spec: configuration: persistence: 'sql' sql: dataSource: url: 'jdbc:postgresql://<service name>.<namespace>.svc:5432/<database name>' # e.g. url: 'jdbc:postgresql://acid-minimal-cluster.my-project.svc:5432/registry' userName: 'postgres' password: '<password>' # Optional- Create をクリックし、OpenShift で Service Registry ルートが作成されるまで待機します。
Networking > Route をクリックして、Service Registry Web コンソールの新規ルートにアクセスします。以下に例を示します。
http://example-apicurioregistry-sql.my-project.my-domain-name.com/
4.3. Service Registry PostgreSQL ストレージのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
PostgreSQL データベースでストレージを使用する場合は、Service Registry に保存されているデータを定期的にバックアップする必要があります。
SQL Dump は、どのような PostgreSQL インストールでも動作するシンプルな手順です。これは pg_dump ユーティリティーを使用して、ダンプ時と同じ状態でデータベースを再作成するために使用できる SQL コマンドでファイルを生成します。
pg_dump は通常の PostgreSQL クライアントアプリケーションで、データベースにアクセスできる任意のリモートホストから実行することができます。他のクライアントと同様に、実行できる操作はユーザーの権限によって制限されます。
手順
pg_dumpコマンドを使用して、出力をファイルにリダイレクトします。$ pg_dump dbname > dumpfile-h hostおよび-p portオプションを使用して、pg_dumpが接続するデータベースサーバーを指定できます。gzip などの圧縮ツールを使用して大きなダンプファイルを減らすことができます。以下に例を示します。
$ pg_dump dbname | gzip > filename.gz
関連情報
- クライアント認証の詳細は、PostgreSQL のドキュメント を参照してください。
- レジストリーコンテンツのインポートとエクスポートの詳細は、REST API を使用した Service Registry コンテンツの管理 を参照してください。
4.4. Service Registry PostgreSQL ストレージの復元 リンクのコピーリンクがクリップボードにコピーされました!
psql ユーティリティーを使用して、pg_dump によって作成された SQL Dump ファイルを復元できます。
前提条件
-
pg_dumpを使用して、PostgreSQL データベースをすでにバックアップしている。「Service Registry PostgreSQL ストレージのバックアップ」を参照してください。 - オブジェクトを所有するユーザー、またはダンプされたデータベースのオブジェクトに対する権限があるユーザーがすべて存在している。
手順
以下のコマンドを入力して、データベースを作成します。
$ createdb -T template0 dbname以下のコマンドを入力して SQL ダンプを復元します
$ psql dbname < dumpfile- クエリーオプティマイザーが便利な統計を持つように、各データベースで ANALYZE を実行します。
第5章 Service Registry デプロイメントのセキュリティー保護 リンクのコピーリンクがクリップボードにコピーされました!
この章では、OpenShift での Service Registry デプロイメントのセキュリティー設定を説明します。
Service Registry は、OpenID Connect (OIDC) または HTTP Basic に基づいて Red Hat Single Sign-On を使用して認証および承認を行います。Red Hat Single Sign-On Operator を使用して必要な設定を自動的に設定するか、Red Hat Single Sign-On および Service Registry で手動で設定する必要があります。
Service Registry は、Red Hat Single Sign-On を使用して Service Registry Web コンソールおよびコア REST API のロールベースの認証および承認を提供します。Service Registry は、アーティファクト作成者のみが書き込みアクセスを持つスキーマまたは API レベルでコンテンツベースの承認も提供します。OpenShift クラスターの内部または外部から Service Registry への HTTPS 接続を設定することもできます。
5.1. Red Hat Single Sign-On Operator を使用した Service Registry のセキュリティー保護 リンクのコピーリンクがクリップボードにコピーされました!
次の手順は、Red Hat Single Sign-On によって保護されるように Service Registry REST API と Web コンソールを設定する方法を示しています。
Service Registry は以下のユーザーロールをサポートします。
| 名前 | ケイパビリティー |
|---|---|
|
| 完全なアクセス。制限はありません。 |
|
|
アーティファクトを作成し、アーティファクトルールを設定します。グローバルルールの変更、インポート/エクスポートの実行、 |
|
|
表示と検索のみ。アーテファクトやルールの変更、インポート/エクスポートの実行、 |
ApicurioRegistry CRD には、Web コンソールを読み取り専用モードに設定するために使用できる関連する設定オプションがあります。ただし、この設定は REST API には影響しません。
前提条件
- Service Registry Operator がインストールされている。
- Red Hat Single Sign-On Operator をインストールするか、OpenShift クラスターからアクセスできる Red Hat Single Sign-On が必要です。
この手順の設定例は、開発およびテストのみを目的としています。手順を単純にするために、実稼働環境で推奨される HTTPS やその他のセキュリティーは使用しません。詳細は、Red Hat Single Sign-On のドキュメントを参照してください。
手順
- OpenShift Web コンソールで、Installed Operators および Red Hat Single Sign-On Operator をクリックし、Keycloak タブをクリックします。
Create Keycloak をクリックし、Service Registry デプロイメントのセキュリティーを保護するために、新しい Red Hat Single Sign-On インスタンスをプロビジョニングします。デフォルト値を使用できます。以下に例を示します。
apiVersion: keycloak.org/v1alpha1 kind: Keycloak metadata: name: example-keycloak labels: app: sso spec: instances: 1 externalAccess: enabled: True podDisruptionBudget: enabled: True- インスタンスが作成されるまで待ち、Networking をクリックした後に Routes をクリックし、keycloak インスタンスの新規ルートにアクセスします。
- Location URL をクリックし、後で Service Registry のデプロイ時に使用する、表示された URL 値をコピーします。
Installed Operators および Red Hat Single Sign-On Operator をクリックし、Keycloak Realm タブをクリックした後、Create Keycloak Realm をクリックして
registryのサンプルレルムを作成します。apiVersion: keycloak.org/v1alpha1 kind: KeycloakRealm metadata: name: registry-keycloakrealm labels: app: registry spec: instanceSelector: matchLabels: app: sso realm: displayName: Registry enabled: true id: registry realm: registry sslRequired: none roles: realm: - name: sr-admin - name: sr-developer - name: sr-readonly clients: - clientId: registry-client-ui implicitFlowEnabled: true redirectUris: - '*' standardFlowEnabled: true webOrigins: - '*' publicClient: true - clientId: registry-client-api implicitFlowEnabled: true redirectUris: - '*' standardFlowEnabled: true webOrigins: - '*' publicClient: true users: - credentials: - temporary: false type: password value: changeme enabled: true realmRoles: - sr-admin username: registry-admin - credentials: - temporary: false type: password value: changeme enabled: true realmRoles: - sr-developer username: registry-developer - credentials: - temporary: false type: password value: changeme enabled: true realmRoles: - sr-readonly username: registry-user重要実稼働環境にデプロイする場合は、ご使用の環境に適した値でこの
KeycloakRealmリソースをカスタマイズする必要があります。Red Hat Single Sign-On Web コンソールを使用してレルムを作成および管理することもできます。クラスターに有効な HTTPS 証明書が設定されていない場合は、一時的な回避策として次の HTTP
ServiceおよびIngressリソースを作成できます。Networking をクリックしてから Services をクリックし、以下の例を使用して Create Service をクリックします。
apiVersion: v1 kind: Service metadata: name: keycloak-http labels: app: keycloak spec: ports: - name: keycloak-http protocol: TCP port: 8080 targetPort: 8080 selector: app: keycloak component: keycloak type: ClusterIP sessionAffinity: None status: loadBalancer: {}Networking をクリックしてから Ingresses をクリックし、以下の例を使用して Create Ingress をクリックします。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: keycloak-http labels: app: keycloak spec: rules: - host: KEYCLOAK_HTTP_HOST http: paths: - path: / pathType: ImplementationSpecific backend: service: name: keycloak-http port: number: 8080hostの値を変更して、Service Registry ユーザーがアクセスできるルートを作成し、Red Hat Single Sign-On Operator によって作成された HTTPS ルートの代わりにこれを使用します。
Service Registry Operator をクリックし、以下の例のように ApicurioRegistry タブをクリックして Create ApicurioRegistry をクリックしますが、
keycloakセクションの値を置き換えます。apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry-kafkasql-keycloak spec: configuration: security: keycloak: url: "http://keycloak-http-<namespace>.apps.<cluster host>" # ^ Required # Use an HTTP URL in development. realm: "registry" # apiClientId: "registry-client-api" # ^ Optional (default value) # uiClientId: "registry-client-ui" # ^ Optional (default value) persistence: 'kafkasql' kafkasql: bootstrapServers: '<my-cluster>-kafka-bootstrap.<my-namespace>.svc:9092'
5.2. Red Hat Single Sign-On での Service Registry の認証および承認の設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Single Sign-On を使用して Service Registry の認証および承認オプションを手作業で設定する方法を説明します。
また、これらの設定を自動的に設定する方法の詳細は、「Red Hat Single Sign-On Operator を使用した Service Registry のセキュリティー保護」 を参照してください。
OpenID Connect (OIDC) 使用して OAuth をベースとした Red Hat Single Sign-On を使用して、Service Registry Web コンソールおよびコア REST API の認証を有効にすることができます。同じ Red Hat Single Sign-On レルムとユーザーは OpenID Connect を使用して Service Registry Web コンソールとコア REST API で連携されるため、必要なクレデンシャルは 1 セットのみです。
Service Registry は、デフォルトの admin、write、および read-only ユーザーロールのロールベースの承認を提供します。Service Registry は、スキーマまたは API レベルでコンテンツベースの承認を提供し、レジストリーアーティファクトの作成者のみが更新または削除できます。Service Registry の認証および承認設定は、デフォルトでは無効になっています。
前提条件
- Red Hat Single Sign-On がインストールされ、実行中である。詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。
- Service Registry がインストールされ、稼働中である。
手順
-
Red Hat Single Sign-On 管理コンソールで、Service Registry の Red Hat Single Sign-On レルムを作成します。デフォルトでは、Service Registry はレルム名
registryを想定します。レルムの作成に関する詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。 Service Registry API 向けに Red Hat Single Sign-On クライアントを作成します。デフォルトでは、Service Registry は次の設定を想定しています。
-
Client ID:
registry-api -
Client Protocol:
openid-connect Access Type:
bearer-only他のクライアント設定にはデフォルト値を使用できます。
注記Red Hat Single Sign-On サービスアカウントを使用している場合、クライアントの Access Type は、
bearer-onlyではなくconfidentialである必要があります。
-
Client ID:
Service Registry Web コンソール向けに Red Hat Single Sign-On クライアントを作成します。デフォルトでは、Service Registry は次の設定を想定しています。
-
Client ID:
apicurio-registry -
Client Protocol:
openid-connect -
Access Type:
public -
Valid Redirect URLs:
http://my-registry-url:8080/* Web Origins:
+他のクライアント設定にはデフォルト値を使用できます。
-
Client ID:
OpenShift での Service Registry デプロイメントで、以下の Service Registry 環境変数を設定し、Red Hat Single Sign-On を使用して認証を設定します。
Expand 表5.2 Red Hat Single Sign-On を使用した Service Registry 認証の設定 環境変数 説明 型 デフォルト AUTH_ENABLEDService Registry の認証を有効にします。
trueに設定する場合は、以下の環境変数が Red Hat Single Sign-On の認証に必要です。String
falseKEYCLOAK_URLRed Hat Single Sign-On 認証サーバーの URL。たとえば、
http://localhost:8080です。String
-
KEYCLOAK_REALM認証用の Red Hat Single Sign-On レルム。たとえば、
registryです。String
-
KEYCLOAK_API_CLIENT_IDService Registry REST API のクライアント ID。
String
registry-apiKEYCLOAK_UI_CLIENT_IDService Registry Web コンソールのクライアント ID。
String
apicurio-registryヒントOpenShift に環境変数を設定する例については、「OpenShift での Service Registry ヘルスチェックの設定」 を参照してください。
Red Hat Single Sign-On で Service Registry ユーザーロールを有効にするため、以下のオプションを
trueに設定します。Expand 表5.3 Service Registry のロールベースの承認の設定 環境変数 Java システムプロパティー 型 デフォルト値 ROLE_BASED_AUTHZ_ENABLEDregistry.auth.role-based-authorizationブール値
falseService Registry のユーザーロールが有効になっている場合は、Red Hat Single Sign-On レルムで Service Registry ユーザーを以下のデフォルトユーザーロールの 1 つ以上に割り当てる必要があります。
Expand 表5.4 レジストリーの認証および認可のデフォルトユーザーロール ロール アーティファクトの読み取り アーティファクトの書き込み グローバルルール Summary sr-adminはい
はい
はい
すべての作成、読み取り、更新、および削除操作へのフルアクセス。
sr-developerはい
はい
いいえ
グローバルルールの設定を除く、作成、読み取り、更新、および削除操作へのアクセス。このロールは、アーティファクト固有のルールを設定できます。
sr-readonlyはい
いいえ
いいえ
読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。
以下を
trueに設定し、Service Registry のスキーマおよび API アーティファクトへの更新に対する所有者のみの承認を有効にします。Expand 表5.5 所有者のみの認可の設定 環境変数 Java システムプロパティー 型 デフォルト値 REGISTRY_AUTH_OBAC_ENABLEDregistry.auth.owner-only-authorizationブール値
false
5.3. Service Registry の認証および承認の設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Service Registry は、Red Hat Single Sign-On および HTTP Basic 認証を使用した OpenID Connect の認証オプションを提供します。
Service Registry には、ロールベースおよびコンテンツベースのアプローチの承認オプションが用意されています。
- デフォルトの管理者、書き込み、および読み取り専用のユーザーロールに対するロールベースの承認。
- アーティファクトまたはアーティファクトグループの所有者のみがアーティファクトを更新または削除できるスキーマまたは API アーティファクトのコンテンツベースの認可。
Service Registry のすべての認証および承認オプションはデフォルトで無効になっています。これらのオプションのいずれかを有効にする前に、まず AUTH_ENABLED オプションを true に設定する必要があります。
この章では、次の設定オプションの詳細を説明します。
Red Hat Single Sign-On で OpenID Connect を使用した Service Registry 認証
以下の環境変数を設定して、Red Hat Single Sign-On を使用した Service Registry Web コンソールおよび API の認証を設定できます。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
|
Service Registry の認証を有効にします。 | String |
|
|
|
Red Hat Single Sign-On 認証サーバーの URL。たとえば、 | String | - |
|
|
認証用の Red Hat Single Sign-On レルム。たとえば、 | String | - |
|
| Service Registry REST API のクライアント ID。 | String |
|
|
| Service Registry Web コンソールのクライアント ID。 | String |
|
HTTP Basic を使用した Service Registry 認証
デフォルトでは、Service Registry は OpenID Connect を使用した認証をサポートしています。ユーザーまたは API クライアントは、Service Registry REST API への認証された呼び出しを行うためにアクセストークンを取得する必要があります。ただし、一部のツールは OpenID Connect をサポートしないため、次の設定オプションを true に設定することで、HTTP Basic 認証をサポートするように Service Registry を設定することもできます。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
Service Registry HTTP Basic クライアント認証情報キャッシュの有効期限
HTTP Basic クライアント認証情報キャッシュの有効期限を設定することもできます。デフォルトでは、HTTP Basic 認証を使用する場合、Service Registry は JWT トークンをキャッシュし、不要なときに新しいトークンを発行しません。JWT トークンのキャッシュ有効期限を設定できます。このトークンは、デフォルトで 10 分に設定されます。
Red Hat Single Sign-On を使用する場合は、この設定を Red Hat Single Sign-On JWT の有効期限から 1 分引いた値に設定することが推奨されます。たとえば、Red Hat Single Sign-On で有効期限を 5 分に設定する場合は、以下の設定オプションを 4 分に設定する必要があります。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| 整数 |
|
Service Registry のロールベースの承認
次のオプションを true に設定して、Service Registry でロールベースの承認を有効にすることができます。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
次に、ユーザーの認証トークンに含まれるロール (Red Hat Single Sign-On を使用した認証時に付与されるロールなど) を使用するか、Service Registry によって内部的に管理されるロールマッピングを使用するように、ロールベースの承認を設定できます。
Red Hat Single Sign-On で割り当てられたロールを使用する
Red Hat Single Sign-On によって割り当てられたロールを使用できるようにするには、以下の環境変数を設定します。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
|
| String |
|
|
| ユーザーが管理者であることを示すロールの名前。 | String |
|
|
| ユーザーが開発者であることを示すロールの名前。 | String |
|
|
| ユーザーが読み取り専用アクセス権を持っていることを示すロールの名前。 | String |
|
Service Registry が Red Hat Single Sign-On のロールを使用するように設定されている場合は、Service Registry ユーザーを Red Hat Single Sign-On の以下のユーザーロールの少なくとも 1 つに割り当てる必要があります。ただし、表5.10「Red Hat Single Sign-On を使用した Service Registry ロールベース認証の設定」 の環境変数を使用して別のユーザーロール名を設定できます。
| ロール名 | アーティファクトの読み取り | アーティファクトの書き込み | グローバルルール | 説明 |
|---|---|---|---|---|
|
| はい | はい | はい | すべての作成、読み取り、更新、および削除操作へのフルアクセス。 |
|
| はい | はい | いいえ | グローバルルールの設定およびインポート/エクスポートを除く、操作の作成、読み取り、更新、および削除へのアクセス。このロールは、アーティファクト固有のルールのみを設定できます。 |
|
| はい | いいえ | いいえ | 読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。 |
Service Registry でロールを直接管理する
Service Registry によって内部的に管理されるロールの使用を有効にするには、次の環境変数を設定します。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
|
| String |
|
内部てkに管理されたロールマッピングを使用する場合は、Service Registry REST API の /admin/roleMappings エンドポイントを使用して、ユーザーにロールを割り当てることができます。詳細は、Apicurio Registry REST API のドキュメント を参照してください。
ユーザーに付与できるロールは、ADMIN、DEVELOPER、または READ_ONLY のいずれかだけです。管理者権限を持つユーザーのみが、他のユーザーにアクセス権を付与できます。
Service Registry の管理者オーバーライド設定
Service Registry にはデフォルトの管理者ユーザーがいないため、通常、ユーザーが管理者として識別されるように別の方法を設定すると便利です。次の環境変数を使用して、この管理オーバーライド機能を設定できます。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
| 管理オーバーライド機能を有効にします。 | String |
|
|
|
管理オーバーライド情報を探す場所。現在 | String |
|
|
|
ユーザーが管理者かどうかを判断するために使用される情報の種類。値は FROM 変数の値によって異なります。たとえば、FROM が | String |
|
|
| ユーザーが管理者であることを示すロールの名前。 | String |
|
|
| 管理オーバーライドを決定するために使用する JWT トークンクレームの名前。 | String |
|
|
| CLAIM 変数によって示される JWT トークンクレームの値は、ユーザーが管理オーバーライドを付与されるためのものでなければなりません。 | String |
|
たとえば、この管理オーバーライド機能を使用して、sr-admin ロールを Red Hat Single Sign-On の 1 人のユーザーに割り当て、そのユーザーに admin ロールを付与できます。そのユーザーは、/admin/roleMappings REST API (または関連する UI) を使用して、追加のユーザー (追加の管理者を含む) にロールを付与できます。
Service Registry の所有者のみの承認
以下のオプションを true に設定して、Service Registry 内のアーティファクトまたはアーティファクトグループの更新に対して所有者のみの許可を有効にすることができます。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
所有者のみの許可が有効になっている場合は、アーティファクトを作成したユーザーのみがそのアーティファクトを変更または削除できます。
所有者のみの許可とグループの所有者のみの許可の両方が有効になっている場合は、アーティファクトグループを作成したユーザーのみが、そのアーティファクトグループへの書き込みアクセス権 (そのグループのアーティファクトを追加または削除するなど) を持ちます。
Service Registry の認証済み読み取りアクセス
認証済み読み取りアクセスオプションが有効になっている場合、Service Registry は、ユーザーロールに関係なく、同じ組織内の認証済みユーザーからのリクエストに対して、少なくとも読み取り専用アクセスを許可します。
認証された読み取りアクセスを有効にするには、まずロールベースの承認を有効にしてから、次のオプションが true に設定されていることを確認する必要があります。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
詳細は、「Service Registry のロールベースの承認」 を参照してください。
Service Registry の匿名読み取り専用アクセス
2 つの主要な認証タイプ (ロールベースの認証と所有者ベースの認証) に加えて、Service Registry は匿名の読み取り専用アクセスオプションをサポートしています。
認証認証情報のない REST API 呼び出しなどの匿名ユーザーが REST API への読み取り専用呼び出しを行うことを許可するには、次のオプションを true に設定します。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
5.4. OpenShift クラスター内からの Service Registry への HTTPS 接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、OpenShift クラスター内から HTTPS 接続のポートを公開するように Service Registry デプロイメントを設定する方法を説明します。
このような接続は、クラスター外部で直接利用できません。ルーティングはホスト名に基づいており、HTTPS 接続の場合はエンコードされます。そのため、エッジターミネーションまたはその他の設定は必要です。「OpenShift クラスター外から Service Registry への HTTPS 接続の設定」 を参照してください。
前提条件
- Service Registry Operator がインストールされている。
手順
自己署名証明書を使用して
keystoreを生成します。独自の証明書を使用している場合は、この手順を省略できます。openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tls.key -out tls.crt証明書と秘密鍵を保持する新しいシークレットを作成します。
- OpenShift Web コンソールの左側のナビゲーションメニューで、Workloads > Secrets > Create Key/Value Secret とクリックします。
-
次の値を使用します。
名前:https-cert-secret
キー 1:tls.key
値 1: tls.key (アップロードされたファイル)
キー 2:tls.crt
値 2: tls.crt (アップロードされたファイル)
または、次のコマンドを使用してシークレットを作成します。
oc create secret generic https-cert-secret --from-file=tls.key --from-file=tls.crtService Registry デプロイメントの
ApicurioRegistryCR のspec.configuration.security.httpsセクションを編集します。次に例を示します。apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry spec: configuration: # ... security: https: secretName: https-cert-secret接続が機能していることを確認します。
SSH を使用してクラスターの Pod に接続します (Service Registry Pod を使用できます)。
oc rsh example-apicurioregistry-deployment-6f788db977-2wzpwServiceリソースから Service Registry Pod のクラスター IP を見つけます (Web コンソールの Location 列を参照)。その後、テスト要求を実行します (自己署名証明書を使用するので、セキュアでないフラグが必要になります)。
curl -k https://172.30.230.78:8443/health
HTTPS 証明書とキーを含む Kubernetes シークレットでは、指定された値に tls.crt および tls.key という名前を使用する必要があります。これは現在設定できません。
HTTP の無効化
このセクションの手順を使用して HTTPS を有効にした場合は、spec.security.https.disableHttp を true に設定することで、デフォルトの HTTP 接続を無効にすることもできます。これにより、Service Registry Pod コンテナー、Service、および NetworkPolicy (存在する場合) から HTTP ポート 8080 が削除されます。
重要なのは、Service Registry Operator が現在 Ingress での HTTPS の設定をサポートしていないため、Ingress も削除されることです。ユーザーは HTTPS 接続用の Ingress を手動で作成する必要があります。
5.5. OpenShift クラスター外から Service Registry への HTTPS 接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、OpenShift クラスター外からの接続に対して HTTPS エッジターミネーションを使用したルートを公開するために Service Registry デプロイメントを設定する方法を説明します。
前提条件
- Service Registry Operator がインストールされている。
- セキュアなルートを作成するための OpenShift ドキュメント を読む。
手順
Service Registry Operator によって作成される HTTP ルートの他に、2 つ目の Route を追加します。以下に例を示します。
kind: Route apiVersion: route.openshift.io/v1 metadata: [...] labels: app: example-apicurioregistry [...] spec: host: example-apicurioregistry-default.apps.example.com to: kind: Service name: example-apicurioregistry-service-9whd7 weight: 100 port: targetPort: 8080 tls: termination: edge insecureEdgeTerminationPolicy: Redirect wildcardPolicy: None注記insecureEdgeTerminationPolicy: Redirect設定プロパティーが設定されていることを確認してください。証明書を指定しない場合、OpenShift はデフォルトを使用します。または、以下のコマンドを使用して、カスタムの自己署名証明書を生成することもできます。
openssl genrsa 2048 > tls.key && openssl req -new -x509 -nodes -sha256 -days 365 -key tls.key -out tls.crt次に、OpenShift CLI を使用してルートを作成します。
oc create route edge \ --service=example-apicurioregistry-service-9whd7 \ --cert=tls.crt --key=tls.key \ --hostname=example-apicurioregistry-default.apps.example.com \ --insecure-policy=Redirect \ -n default
第6章 Service Registry デプロイメントの設定および管理 リンクのコピーリンクがクリップボードにコピーされました!
この章では、OpenShift での Service Registry デプロイメントのオプションの設定および管理方法を説明します。
6.1. OpenShift での Service Registry ヘルスチェックの設定 リンクのコピーリンクがクリップボードにコピーされました!
liveness および readiness プローブのオプションの環境変数を設定して、OpenShift の Service Registry サーバーの健全性を監視できます。
- アプリケーションが進行可能な場合は liveness プローブ のテスト。アプリケーションが進行不可能な場合、OpenShift は障害のある Pod を自動的に再起動します。
- アプリケーションが要求を処理する準備ができている場合はreadiness プローブ のテスト。アプリケーションが準備できていない場合、リクエストに圧倒されてしまい、プローブが失敗した期間は OpenShift がリクエストの送信を停止します。他の Pod が OK の場合は、引き続き要求を受け取ります。
liveness および readiness 環境変数のデフォルト値はほとんどの場合を想定して設計されており、環境で必要とされる場合にのみ変更する必要があります。デフォルトへの変更は、ハードウェア、ネットワーク、および保存されたデータ量によって異なります。これらの値は、不要なオーバーヘッドを回避するために、できるだけ低く抑える必要があります。
前提条件
- クラスター管理者として OpenShift クラスターにアクセスできる。
- OpenShift に Service Registry がインストールされている。
- AMQ Streams または PostgreSQL で選択した Service Registry ストレージがインストールされ、設定されている。
手順
- OpenShift Container Platform Web コンソールで、クラスター管理者権限を持つアカウントを使用してログインします。
- Installed Operators > Red Hat Integration - Service Registry Operator をクリックします。
- ApicurioRegistry タブで、example-apicurioregistry などのデプロイメントの Operator カスタムリソースをクリックします。
-
メインの概要ページで、Deployment Name セクションと Service Registry デプロイメントの対応する
DeploymentConfig名を見つけます (例: example-apicurioregistry)。 -
左側のナビゲーションメニューで Workloads > Deployment Configs をクリックし、
DeploymentConfig名を選択します。 Environment タブをクリックして、Single values env セクションに環境変数を入力します。以下に例を示します。
-
NAME:
LIVENESS_STATUS_RESET -
VALUE:
350
-
NAME:
下部にある Save をクリックします。
代わりに、OpenShift
ocコマンドを使用して、これらの手順を実行することもできます。詳細は、OpenShift CLI のドキュメント を参照してください。
6.2. Service Registry ヘルスチェックの環境変数 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、OpenShift の Service Registry ヘルスチェックに使用できる環境変数を説明します。これには、OpenShift 上の Service Registry サーバーの健全性を監視する liveness および readiness プローブが含まれます。手順の例は、「OpenShift での Service Registry ヘルスチェックの設定」 を参照してください。
以下の環境変数は参考としてのみ提供されます。デフォルト値はほとんどの場合を想定して設計されており、環境に必要な場合のみ変更する必要があります。デフォルトへの変更は、ハードウェア、ネットワーク、および保存されたデータ量によって異なります。これらの値は、不要なオーバーヘッドを回避するために、できるだけ低く抑える必要があります。
liveness 環境変数
| 名前 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
| liveness プローブが失敗するまでに発生する可能性のある liveness の問題またはエラーの数。 | 整数 |
|
|
| しきい値となる数のエラーが発生する期間。たとえば、この値が 60 でしきい値が 1 の場合、1 分間に 2 件のエラーが発生するとチェックが失敗します。 | 秒 |
|
|
| liveness プローブが OK ステータスにリセットされるために、エラーなしで経過する必要のある秒数。 | 秒 |
|
|
| 無視された liveness 例外のコンマ区切りリスト。 | String |
|
OpenShift は liveness チェックに失敗した Pod を自動的に再起動するため、liveness 設定は readiness 設定とは異なり、OpenShift 上の Service Registry の動作に直接影響を与えません。
readiness 環境変数
| 名前 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
| readiness プローブが失敗するまでに発生する可能性のある readiness の問題またはエラーの数。 | 整数 |
|
|
| しきい値となる数のエラーが発生する期間。たとえば、この値が 60 でしきい値が 1 の場合、1 分間に 2 件のエラーが発生するとチェックが失敗します。 | 秒 |
|
|
| liveness プローブが OK ステータスにリセットされるために、エラーなしで経過する必要のある秒数。ここでは、Pod が通常の動作に戻るまでの準備ができていない状態の期間を意味します。 | 秒 |
|
|
| readiness は 2 つの操作のタイムアウトを追跡します。
これらの操作に設定されたタイムアウトよりも時間がかかった場合、これは readiness 問題またはエラーとしてカウントされます。この値は、両方の操作のタイムアウトを制御します。 | 秒 |
|
6.3. Service Registry 環境変数の管理 リンクのコピーリンクがクリップボードにコピーされました!
Service Registry Operator は最も一般的な Service Registry 設定を管理しますが、まだサポートされていないオプションがいくつかあります。ApicurioRegistry CR で高レベル設定オプションを使用できない場合は、環境変数を使用して調整できます。これらを更新するには、spec.configuration.env フィールドの ApicurioRegistry CR に環境変数を直接設定します。続いてこれらは、Service Registry の Deployment リソースに転送されます。
手順
Service Registry 環境変数は、OpenShift Web コンソールまたは CLI を使用して管理できます。
- OpenShift Web コンソール
- Installed Operators タブを選択してから、Red Hat Integration - Service Registry Operator を選択します。
-
Apicurio Registry タブで、Service Registry デプロイメントの
ApicurioRegistryCR をクリックします。 YAML タブをクリックし、必要に応じて
spec.configuration.envセクションを編集します。次の例は、デフォルトのグローバルコンテンツルールを設定する方法を示しています。apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry spec: configuration: # ... env: - name: REGISTRY_RULES_GLOBAL_VALIDITY value: FULL # One of: NONE, SYNTAX_ONLY, FULL - name: REGISTRY_RULES_GLOBAL_COMPATIBILITY value: FULL # One of: NONE, BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE
- OpenShift CLI
- Service Registry がインストールされているプロジェクトを選択します。
-
oc get apicurioregistryを実行して、ApicurioRegistryCR のリストを取得します -
設定する Service Registry インスタンスを表す CR で
oc edit apicurioregistryを実行します。 spec.configuration.envセクションで、環境変数を追加または変更します。Service Registry Operator は、
spec.configuration.envフィールドですでに明示的に指定されている環境変数を設定しようとする場合があります。環境変数設定に競合する値がある場合、Service Registry Operator によって設定された値が優先されます。この競合を回避するには、機能の高レベル設定を使用するか、明示的に指定された環境変数のみを使用します。以下は、競合する設定の例です。
apiVersion: registry.apicur.io/v1 kind: ApicurioRegistry metadata: name: example-apicurioregistry spec: configuration: # ... ui: readOnly: true env: - name: REGISTRY_UI_FEATURES_READONLY value: falseこの設定により、Service Registry Web コンソールが読み取り専用モードになります。
6.4. PodTemplate を使用した Service Registry デプロイメントの設定 リンクのコピーリンクがクリップボードにコピーされました!
これは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。
テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
ApicurioRegistry CRD には spec.deployment.podTemplateSpecPreview フィールドが含まれており、このフィールドは Kubernetes Deployment リソースの spec.template フィールドと同じ構造体 (PodTemplateSpec 構造体) を持っています。
いくつかの制限がありますが、Service Registry Operator はこのフィールドのデータを Service Registry デプロイメント内の対応するフィールドに転送します。これにより、Service Registry Operator が各ユースケースをネイティブにサポートする必要がなく、設定の柔軟性が向上します。
次の表には、Service Registry Operator によって受け入れられず、設定エラーが発生するサブフィールドのリストが含まれています。
podTemplateSpecPreview サブフィールド | Status | 詳細 |
|---|---|---|
|
| alternative exists |
|
|
| alternative exists |
|
|
| alternative exists |
|
|
| warning |
Service Registry コンテナーを設定するには、 |
|
| alternative exists |
|
|
| reserved | - |
|
| alternative exists |
|
|
| alternative exists |
|
podTemplateSpecPreview でフィールドを設定する場合は、Service Registry Deployment で直接設定したかのように、その値が有効である必要があります。Service Registry Operator は、指定された値を変更する可能性がありますが、無効な値を修正したり、デフォルト値が存在することを確認したりすることはありません。
6.5. Service Registry Web コンソールの設定 リンクのコピーリンクがクリップボードにコピーされました!
オプションの環境変数を設定して、デプロイメント環境専用に Service Registry Web コンソールを設定したり、その動作をカスタマイズしたりできます。
前提条件
- Service Registry はすでにインストールされています。
Web コンソールのデプロイメント環境の設定
ブラウザーで Service Registry Web コンソールにアクセスすると、いくつかの初期設定が読み込まれます。次の設定が重要です。
- コア Service Registry サーバー REST API の URL
- Service Registry Web コンソールクライアントの URL
通常、Service Registry はこれらの設定を自動的に検出して生成しますが、、一部のデプロイメント環境ではこの自動検出が失敗する場合があります。その場合には、環境のこれらの URL を明示的に設定するように環境変数を設定できます。
手順
以下の環境変数を設定し、デフォルトの URL を上書きします。
-
REGISTRY_UI_CONFIG_APIURL: コア Service Registry サーバー REST API の URL を指定します。例:https://registry.my-domain.com/apis/registry -
REGISTRY_UI_CONFIG_UIURL: Service Registry Web コンソールクライアントの URL を指定します。たとえば、https://registry.my-domain.com/ui
読み取り専用モードでの Web コンソールの設定
オプション機能として、Service Registry の Web コンソールを読み取り専用モードに設定することができます。このモードでは、Service Registry Web コンソールでユーザーが登録されたアーティファクトを変更できる機能がすべて無効になります。たとえば、これには以下が含まれます。
- アーティファクトの作成
- 新しいアーティファクトバージョンのアップロード
- アーティファクトメタデータの更新
- アーティファクトの削除
手順
次の環境変数を設定します。
-
REGISTRY_UI_FEATURES_READONLY:trueに設定すると、読み取り専用モードが有効になります。デフォルトはfalseです。
6.6. Service Registry ロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
実行時に Service Registry のログを設定できます。Service Registry は、詳細なロギングのために特定のロガーのログレベルを設定する REST エンドポイントを提供します。このセクションでは、Service Registry /admin REST API を使用して、実行時に Service Registry ログレベルを表示および設定する方法を説明します。
前提条件
-
Service Registry インスタンスにアクセスするための URL を取得するか、OpenShift にデプロイした場合に Service Registry ルートを取得します。この簡単な例では、
localhost:8080の URL を使用しています。
手順
この
curlコマンドを使用して、ロガーio.apicurio.registry.storageの現在のログレベルを取得します。$ curl -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}この
curlコマンドを使用して、ロガーio.apicurio.registry.storageのログレベルをDEBUGに変更します。$ curl -X PUT -i -H "Content-Type: application/json" --data '{"level":"DEBUG"}' localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"DEBUG"}この
curlコマンドを使用して、ロガーio.apicurio.registry.storageのログレベルをデフォルト値に戻します。$ curl -X DELETE -i localhost:8080/apis/registry/v2/admin/loggers/io.apicurio.registry.storage HTTP/1.1 200 OK [...] Content-Type: application/json {"name":"io.apicurio.registry.storage","level":"INFO"}
6.7. Service Registry イベントソーシングの設定 リンクのコピーリンクがクリップボードにコピーされました!
これは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。
テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Service Registry は、変更がレジストリーコンテンツに加えられたときにイベントを送信するように設定できます。たとえば、Service Registry は、スキーマまたは API アーティファクト、グループ、コンテンツルールが作成、更新、削除されたときにイベントをトリガーできます。この種の変更については、アプリケーションやサードパーティーのインテグレーションにイベントを送信するように Service Registry を設定できます。
イベントの転送に使用できるさまざまなプロトコルがあります。現在実装されているプロトコルは HTTP および Apache Kafka です。ただし、プロトコルに関係なく、イベントは CNCF CloudEvents 仕様を使用して送信されます。Java システムプロパティーまたは同等の環境変数を使用して、Service Registry イベントソーシングを設定できます。
Service Registry イベントタイプ
すべてのイベントタイプは、io.apicurio.registry.events.dto.RegistryEventType で定義されています。たとえば、これらには以下のイベントタイプが含まれます。
-
io.apicurio.registry.artifact-created -
io.apicurio.registry.artifact-updated -
io.apicurio.registry.artifact-state-changed -
io.apicurio.registry.artifact-rule-created -
io.apicurio.registry.global-rule-created -
io.apicurio.registry.group-created
前提条件
- Service Registry クラウドイベントの送信先となるアプリケーションが必要です。たとえば、カスタムアプリケーションやサードパーティーアプリケーションなどです。
HTTP を使用した Service Registry イベントソーシングの設定
このセクションの例は、http://my-app-host:8888/events で実行されているカスタムアプリケーションを示しています。
手順
HTTP プロトコルを使用する場合は、以下のようにイベントをアプリケーションに送信するように Service Registry を設定します。
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events
-
必要に応じて、複数のイベントコンシューマーを以下のように設定できます。
-
registry.events.sink.my-custom-consumer=http://my-app-host:8888/events -
registry.events.sink.other-consumer=http://my-consumer.com/events
-
Apache Kafka を使用した Service Registry イベントソーシングの設定
このセクションの例では、my-registry-events という名前の Kafka トピックが my-kafka-host:9092 で動作していることを示します。
手順
Kafka プロトコルを使用する場合、以下のように Kafka トピックを設定します。
-
registry.events.kafka.topic=my-registry-events
-
KAFKA_BOOTSTRAP_SERVERS環境変数を使用して、Kafka プロデューサーを設定できます。KAFKA_BOOTSTRAP_SERVERS=my-kafka-host:9092または、
registry.events.kafka.config接頭辞を使用して kafka プロデューサーのプロパティーを設定できます。例:registry.events.kafka.config.bootstrap.servers=my-kafka-host:9092
必要に応じて、イベントの生成に使用する Kafka トピックパーティションを設定することもできます。
-
registry.events.kafka.topic-partition=1
-
第7章 Service Registry Operator の設定リファレンス リンクのコピーリンクがクリップボードにコピーされました!
この章では、Service Registry Operator をデプロイするように Service Registry を設定するために使用されるカスタムリソースの詳細情報を提供します。
7.1. Service Registry カスタムリソース リンクのコピーリンクがクリップボードにコピーされました!
Service Registry Operator は、OpenShift 上の Service Registry の単一デプロイメントを表す ApicurioRegistry カスタムリソース (CR) を定義します。
これらのリソースオブジェクトはユーザーによって作成および維持され、Service Registry のデプロイおよび設定方法を Service Registry Operator に指示します。
ApicurioRegistry CR の例
次のコマンドは、ApicurioRegistry リソースを表示します。
oc get apicurioregistry
oc edit apicurioregistry example-apicurioregistry
apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
name: example-apicurioregistry
namespace: demo-kafka
# ...
spec:
configuration:
persistence: kafkasql
kafkasql:
bootstrapServers: 'my-cluster-kafka-bootstrap.demo-kafka.svc:9092'
deployment:
host: >-
example-apicurioregistry.demo-kafka.example.com
status:
conditions:
- lastTransitionTime: "2021-05-03T10:47:11Z"
message: ""
reason: Reconciled
status: "True"
type: Ready
info:
host: example-apicurioregistry.demo-kafka.example.com
managedResources:
- kind: Deployment
name: example-apicurioregistry-deployment
namespace: demo-kafka
- kind: Service
name: example-apicurioregistry-service
namespace: demo-kafka
- kind: Ingress
name: example-apicurioregistry-ingress
namespace: demo-kafka
デフォルトで、Service Registry Operator は独自のプロジェクト namespace のみを監視します。したがって、Operator を手動でデプロイする場合は、同じ namespace に ApicurioRegistry CR を作成する必要があります。Operator Deployment リソースの WATCH_NAMESPACE 環境変数を更新することで、この動作を修正することができます。
7.2. Service Registry CR 仕様 リンクのコピーリンクがクリップボードにコピーされました!
spec は、オペレーターがアーカイブするための望ましい状態または設定を提供するために使用される ApicurioRegistry CR の一部です。
ApicurioRegistry CR 仕様コンテンツ
以下のブロック例には、可能な spec 設定オプションの完全なツリーが含まれます。フィールドによっては、必須ではないものや、同時に定義してはいけないものもあります。
spec:
configuration:
persistence: <string>
sql:
dataSource:
url: <string>
userName: <string>
password: <string>
kafkasql:
bootstrapServers: <string>
security:
tls:
truststoreSecretName: <string>
keystoreSecretName: <string>
scram:
mechanism: <string>
truststoreSecretName: <string>
user: <string>
passwordSecretName: <string>
ui:
readOnly: <string>
logLevel: <string>
registryLogLevel: <string>
security:
keycloak:
url: <string>
realm: <string>
apiClientId: <string>
uiClientId: <string>
https:
disableHttp: <bool>
secretName: <string>
env: <k8s.io/api/core/v1 []EnvVar>
deployment:
replicas: <int32>
host: <string>
affinity: <k8s.io/api/core/v1 Affinity>
tolerations: <k8s.io/api/core/v1 []Toleration>
imagePullSecrets: <k8s.io/api/core/v1 []LocalObjectReference>
metadata:
annotations: <map[string]string>
labels: <map[string]string>
managedResources:
disableIngress: <bool>
disableNetworkPolicy: <bool>
disablePodDisruptionBudget: <bool>
podTemplateSpecPreview: <k8s.io/api/core/v1 PodTemplateSpec>
以下の表は、各設定オプションを説明しています。
| 設定オプション | 型 | デフォルト値 | 説明 |
|---|---|---|---|
|
| - | - | Service Registry アプリケーションの設定セクション |
|
| string | required |
ストレージバックエンド。 |
|
| - | - | SQL ストレージバックエンドの設定 |
|
| - | - | SQL ストレージバックエンドのデータベース接続設定 |
|
| string | required | データベース接続 URL 文字列 |
|
| string | required | データベースコネクションユーザー |
|
| string | empty | データベース接続パスワード |
|
| - | - | Kafka ストレージバックエンドの設定 |
|
| string | required | Streams ストレージバックエンドの Kafka ブートストラップサーバー URL。 |
|
| - | - | Kafka ストレージバックエンドの TLS 認証を設定するセクション。 |
|
| string | required | Kafka の TLS トラストストアが含まれるシークレットの名前 |
|
| string | required | ユーザー TLS キーストアを含むシークレットの名前 |
|
| string | required | Kafka の TLS トラストストアが含まれるシークレットの名前 |
|
| string | required | SCRAM ユーザー名 |
|
| string | required | SCRAM ユーザーパスワードが含まれるシークレットの名前 |
|
| string |
| SASL メカニズム |
|
| - | - | Service Registry Web コンソール設定 |
|
| string |
| Service Registry Web コンソールを読み取り専用モードに設定します。 |
|
| string |
|
Apicurio 以外のコンポーネントおよびライブラリーのサービスレジストリーログレベル。 |
|
| string |
|
Apicurio アプリケーションコンポーネントの Service Registry ログレベル (Apicurio 以外のコンポーネントおよびライブラリーを除く)。 |
|
| - | - | Service Registry Web コンソールおよび REST API セキュリティー設定 |
|
| - | - | Red Hat Single Sign-On を使用した Web コンソールと REST API のセキュリティー設定 |
|
| string | required | Red Hat Single Sign-On URL |
|
| string | required | Red Hat Single Sign-On レルム |
|
| string |
| REST API 用の Red Hat Single Sign-On クライアント |
|
| string |
| Web コンソール用の Red Hat Single Sign-On クライアント |
|
| - | - | HTTPS の設定。詳細は、OpenShift クラスター内からの Service Registry への HTTPS 接続の設定 を参照してください。 |
|
| string | empty |
HTTPS 証明書とキーを含む Kubernetes シークレットの名前。それぞれ |
|
| bool |
| HTTP ポートと Ingress を無効にします。前提条件として HTTPS を有効にする必要があります。 |
|
| k8s.io/api/core/v1 []EnvVar | empty | Service Registry Pod に提供される環境変数のリストを設定します。詳細は、Service Registry 環境変数の管理 を参照してください。 |
|
| - | - | Service Registry デプロイメント設定のセクション |
|
| 正の整数 |
| デプロイする Service Registry Pod 数 |
|
| string | 自動生成 | Service Registry コンソールおよび API が利用できるホスト/URL。可能な場合は、Service Registry Operator はクラスタールーターの設定に基づいて正しい値を判別しようとします。値は一度だけ自動生成されるため、ユーザーは後で上書きすることができます。 |
|
| k8s.io/api/core/v1 Affinity | empty | Service Registry デプロイメントのアフィニティー設定 |
|
| k8s.io/api/core/v1 []Toleration | empty | Service Registry のデプロイメント許容の設定 |
|
| k8s.io/api/core/v1 []LocalObjectReference | empty | Service Registry デプロイメント用のイメージプルシークレットを設定する |
|
| - | - | Service Registry Pod のラベルまたはアノテーションのセットを設定する |
|
| map[string]string | empty | Service Registry Pod のラベルのセットを設定する |
|
| map[string]string | empty | Service Registry Pod のアノテーションセットを設定する |
|
| - | - | Service Registry Operator が Kubernetes リソースを管理する方法を設定するセクション。詳細は、Service Registry 管理リソース を参照してください。 |
|
| bool |
|
設定されている場合、Operator は Service Registry デプロイメント用の |
|
| bool |
|
設定されている場合、Operator は Service Registry デプロイメント用の |
|
| bool |
|
設定されている場合、Operator は Service Registry デプロイメント用の |
|
| k8s.io/api/core/v1 PodTemplateSpec | empty | Service Registry デプロイメントリソースの一部を設定します。詳細は、PodTemplate を使用した Service Registry デプロイメントの設定 を参照してください。 |
オプションが 必須 とされている場合は、有効になっている他の設定オプションの条件である可能性があります。空の値は受け入れられる可能性がありますが、Operator は指定されたアクションを実行しません。
7.3. Service Registry CR のステータス リンクのコピーリンクがクリップボードにコピーされました!
status は、Service Registry Operator によって管理される CR のセクションであり、現在のデプロイメントとアプリケーションの状態の説明が含まれています。
ApicurioRegistry CR ステータスのコンテンツ
status セクションには、次のフィールドが含まれています。
status:
info:
host: <string>
conditions: <list of:>
- type: <string>
status: <string, one of: True, False, Unknown>
reason: <string>
message: <string>
lastTransitionTime: <string, RFC-3339 timestamp>
managedResources: <list of:>
- kind: <string>
namespace: <string>
name: <string>
| status フィールド | 型 | 説明 |
|---|---|---|
|
| - | デプロイされた Service Registry に関する情報が含まれるセクション。 |
|
| string | Service Registry UI および REST API にアクセスできる URL。 |
|
| - | Service Registry のステータス、またはそのデプロイメントに関連した Operator のステータスを報告する条件のリスト。 |
|
| string | 条件の型。 |
|
| string |
状態のステータス、 |
|
| string | 条件の最後の遷移の理由を示すプログラムによる識別子。 |
|
| string | 遷移の詳細を示す人が判読できるメッセージ。 |
|
| string | 最後にある状態から別の状態に遷移した時間。 |
|
| - | Service Registry Operator によって管理される OpenShift リソースのリスト |
|
| string | リソースの種類。 |
|
| string | リソースの namespace。 |
|
| string | リソース名。 |
7.4. Service Registry 管理リソース リンクのコピーリンクがクリップボードにコピーされました!
Service Registry のデプロイ時に Service Registry Operator によって管理されるリソースは以下のとおりです。
-
Deployment -
Ingress(およびRoute) -
NetworkPolicy -
PodDisruptionBudget -
サービス
Service Registry Operator による一部のリソースの作成と管理を無効にして、手動で設定可能にすることができます。これにより、Service Registry Operator が現在サポートしていない機能を使用する際の柔軟性が向上します。
リソースタイプを無効にすると、その既存のインスタンスは削除されます。リソースを有効にすると、Service Registry Operator は、app ラベル (例: app=example-apicurioregistry) を使用してリソースの検索を試み、その管理を開始します。それ以外の場合、Operator は新しいインスタンスを作成します。
この方法で、次のリソースタイプを無効にすることができます。
-
Ingress(およびRoute) -
NetworkPolicy -
PodDisruptionBudget
以下に例を示します。
apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
name: example-apicurioregistry
spec:
deployment:
managedResources:
disableIngress: true
disableNetworkPolicy: true
disablePodDisruptionBudget: false # Can be omitted
7.5. Service Registry Operator ラベル リンクのコピーリンクがクリップボードにコピーされました!
通常 Service Registry Operator によって管理されるリソースには、以下のようにラベルが付けられます。
| ラベル | 説明 |
|---|---|
|
|
指定された |
|
|
デプロイメントのタイプ: |
|
|
デプロイの名前: |
|
| Service Registry または Service Registry Operator のバージョン |
|
| アプリケーションのデプロイメントに推奨される Kubernetes ラベルのセット。 |
|
| Red Hat 製品のメータリングラベル。 |
カスタムラベルとアノテーション
spec.deployment.metadata.labels と spec.deployment.metadata.annotationsフィールドを使用して、Service Registry Pod にカスタムラベルとアノテーションを提供できます。次に例を示します。
apiVersion: registry.apicur.io/v1
kind: ApicurioRegistry
metadata:
name: example-apicurioregistry
spec:
configuration:
# ...
deployment:
metadata:
labels:
example.com/environment: staging
annotations:
example.com/owner: my-team
第8章 Service Registry 設定リファレンス リンクのコピーリンクがクリップボードにコピーされました!
この章では、Service Registry で利用可能な設定オプションに関する参考情報を提供します。
関連情報
-
Core Registry API を使用して設定オプションを設定する方法の詳細は、Apicurio Registry REST API ドキュメント の
/admin/config/propertiesエンドポイントを参照してください。 - Kafka シリアライザーおよびデシリアライザーのクライアント設定オプションの詳細は、Service Registry ユーザーガイド を参照してください。
8.1. Service Registry 設定オプション リンクのコピーリンクがクリップボードにコピーされました!
次の Service Registry 設定オプションは、コンポーネントカテゴリーごとに利用できます。
8.1.1. api リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| エラー応答にスタックトレースを含める |
|
|
|
| API の無効化 |
8.1.2. auth リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| 認証管理者オーバーライドクレーム |
|
|
|
|
| 認証管理者オーバーライドクレーム値 |
|
|
|
|
| 有効化されている認証管理者オーバーライド |
|
|
|
|
| 認証管理者オーバーライド: |
|
|
|
|
| 認証管理者オーバーライドロール |
|
|
|
|
| 認証管理者オーバーライドタイプ |
|
|
|
|
| 匿名の読み取りアクセス |
|
|
|
|
| アプリケーション監査ロギングに使用される接頭辞。 |
|
|
|
|
| 認証された読み取りアクセス |
|
|
|
|
| クライアントクレデンシャルトークンの有効期限。 |
|
|
|
|
| Basic 認証クライアント認証情報の有効化。 |
|
|
|
| クライアント認証情報のスコープ。 | |
|
|
|
| サーバーが認証に使用するクライアント ID。 | |
|
|
|
| サーバーが認証に使用するクライアントシークレット。 | |
|
|
|
|
| 認証を有効にします。 |
|
|
|
|
| アーティファクト所有者のみの認可 |
|
|
|
|
| アーティファクトグループ所有者のみの認可 |
|
|
|
|
| ロールベース認可の有効化 |
|
|
|
|
| 認証ロールソース |
|
|
|
| ヘッダー認可名 | |
|
|
|
|
| 認証ロール管理者 |
|
|
|
|
| 認証ロール開発者 |
|
|
|
|
| 認証ロール読み取り専用 |
|
|
|
|
| 有効化されている auth テナントオーナー admin |
|
|
|
| 認証サーバーの URL。 |
8.1.3. cache リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| 有効化されているレジストリーキャッシュ |
8.1.4. ccompat リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| レガシー ID モード (互換 API) |
|
|
|
|
| 返されるサブジェクトの最大数 (互換性 API) |
|
|
|
|
| 正規ハッシュモード (互換性 API) |
8.1.5. ダウンロード リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| ダウンロードリンクの有効期限 |
8.1.6. events リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
| 有効化されているイベント Kafka シンク |
8.1.7. health リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
| 無視された liveness エラー | |
|
|
|
|
| 永続性 liveness チェックのカウンターリセットウィンドウの期間 |
|
|
|
|
| 永続性の liveness チェックのロギングの無効化 |
|
|
|
|
| 永続性の liveness チェックのエラーしきい値 |
|
|
|
|
| 永続 liveness チェックのステータスリセットウィンドウの期間 |
|
|
|
|
| 永続性の readiness チェックのカウンターリセットウィンドウの期間 |
|
|
|
|
| 永続性 readiness チェックのエラーしきい値 |
|
|
|
|
| 永続性 readiness チェックのステータスリセットウィンドウの期間 |
|
|
|
|
| 永続性 readiness チェックのタイムアウト |
|
|
|
|
| 応答 liveness チェックのカウンターリセットウィンドウの期間 |
|
|
|
|
| 応答 liveness チェックのロギングの無効化 |
|
|
|
|
| 応答 liveness チェックのエラーしきい値 |
|
|
|
|
| 応答 liveness チェックのステータスリセットウィンドウの期間 |
|
|
|
|
| 応答 readiness チェックのカウンターリセットウィンドウの期間 |
|
|
|
|
| 応答 readiness チェックのエラーしきい値 |
|
|
|
|
| 応答 readiness チェックのステータスリセットウィンドウの期間 |
|
|
|
|
| 応答 readiness チェックのタイムアウト |
|
|
|
|
| ストレージメトリクスキャッシュチェック期間 |
8.1.8. import リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
| インポート URL |
8.1.9. kafka リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
| Events Kafka トピック | |
|
|
|
| イベント Kafka トピックパーティション |
8.1.10. limits リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| 最大アーティファクトラベル |
|
|
|
|
| 最大アーティファクトプロパティー |
|
|
|
|
| 最大アーティファクト |
|
|
|
|
| 最大アーティファクトの説明の長さ |
|
|
|
|
| 最大アーティファクトラベルサイズ |
|
|
|
|
| 最大アーティファクト名の長さ |
|
|
|
|
| 最大アーティファクトプロパティーのキーサイズ |
|
|
|
|
| 最大アーティファクトプロパティー値のサイズ |
|
|
|
|
| 1 秒あたりの最大アーティファクトリクエスト |
|
|
|
|
| 最大スキーマサイズ (バイト) |
|
|
|
|
| 最大合計スキーマ |
|
|
|
|
| アーティファクトごとの最大バージョン |
|
|
|
|
| ストレージメトリクスキャッシュの最大サイズ |
8.1.11. log リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
| ログレベル |
8.1.12. リダイレクト リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
| リダイレクトの有効化 | |
|
|
|
| レジストリーのリダイレクト | |
|
|
|
| 外部からアクセス可能な URL の生成に使用されるホスト名をオーバーライドします。ホストとポートのオーバーライドは、HTTPS パススルー Ingress または Route を使用してレジストリーをデプロイするときに役立ちます。このような場合、リクエストはプロキシーされるため、リダイレクトに再利用されるリクエスト URL (およびポート) は、クライアントが使用する実際の外部 URL には属しません。ターゲット URL に到達できないため、リダイレクトは失敗します。 | |
|
|
|
| 外部からアクセス可能な URL の生成に使用されるポートを上書きします。 |
8.1.13. rest リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| アーティファクトバージョンの削除を有効化する |
|
|
|
|
| URL からダウンロードできるアーティファクトの最大サイズ |
|
|
|
|
| URL からアーティファクトをダウンロードする際に SSL 検証をスキップする |
8.1.14. store リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| 最新のアーティファクトバージョンを取得する際の DISABLED 状態のアーティファクトバージョンをスキップする |
|
|
|
|
| データソース Db の種類 |
|
|
|
| データソース jdbc URL | |
|
|
|
|
| SQL init |
8.1.15. ui リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 | デフォルト | 利用可能: | 説明 |
|---|---|---|---|---|
|
|
|
|
| 有効化されている UI OIDC テナント |
|
|
|
| UI APIs URL | |
|
|
|
|
| UI 認証 OIDC クライアント ID |
|
|
|
|
| UI 認証 OIDC リダイレクト URL |
|
|
|
|
| UI 認証 OIDC URL |
|
|
|
|
| UI 認証タイプ |
|
|
|
|
| 有効化されている UI codegen |
|
|
|
|
| UI コンテキストパス |
|
|
|
|
| UI 読み取り専用モード |
|
|
|
|
| UI 機能設定 |
|
|
|
| UI root コンテキストをオーバーライドします (インバウンドプロキシーを使用して UI コンテキストを再配置する場合に便利です) |
付録A サブスクリプションの使用 リンクのコピーリンクがクリップボードにコピーされました!
Service Registry は、ソフトウェアサブスクリプションを通じて提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。
アカウントへのアクセス
- access.redhat.com に移動します。
- アカウントがない場合は作成します。
- アカウントにログインします。
サブスクリプションのアクティベート
- access.redhat.com に移動します。
- My Subscriptions に移動します。
- Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。
ZIP および TAR ファイルのダウンロード
ZIP または TAR ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合、この手順は必要ありません。
- ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
- Integration and Automation カテゴリーで Red Hat Integration エントリーを見つけます。
- 必要な Service Registry 製品を選択します。Software Downloads ページが開きます。
- コンポーネントの Download リンクをクリックします。
改訂日時: 2024-01-26