Docs Home → Atlas オープン サービス ブロック
Atlas オープン サービス ブロードキャストのインストールと構成
項目一覧
- 前提条件
- Atlas の前提条件
- Kubernetes の前提条件
- Considerations
- Kubernetes の互換性
- Atlas オープン サービス ブロックのスコープ
- 複数の Atlas オープン サービス ブロック インスタンス
- Atlas Open Service Triggers のインストール
- 名前空間 の作成 (Kubernetes 配置用)。
-
DeploymentとServiceのリソース定義を作成します。 - Atlas Open Service ブロックをインストールします。
- Kubernetes シークレットを作成します。
- サービス プロバイダーのリソース定義を作成します。
- Atlas Open Service Blog を サービスカタログ に登録
- サービスカタログ CLI を使用して、Atlas オープン サービス ブロックのステータスを確認します。
- 次のステップ
重要
Atlas Open Service Blog は非推奨です。 MongoDB Atlas 演算子 の使用 ください。
注意
このチュートリアルでは Kubernetes に関するある程度の知識を前提としていますが、可能な場合は Kubernetes の関連ドキュメントにリンクします。 Kubernetes に詳しくない場合は、まず Kubernetes のドキュメント を確認してください。
前提条件
Atlas の前提条件
Atlas Open Service Blog をインストールするには、以下の手順を実行する必要があります。
Atlas 請求の支払い方法を設定します。
クラスターを配置するプロジェクトを作成します。
この新しいプログラマティック API キーにプロジェクト オーナーのロールを付与します。
Atlas Open Service ブロックを提供するホストの IPまたはCIDRブロックをAPI ホワイトリストに追加します。
Kubernetes の前提条件
使用可能な Kubernetes ソリューションを用意します。
Kubernetes ソリューションが必要な場合は 、 適切なソリューションの選択 に関する Kubernetes のドキュメントを参照してください。
Kubernetes サービスカタログ のインストール 。
Kubernetes Service カタログ CLI をインストールします。
Considerations
Kubernetes の互換性
Atlas Open Service Blog は以下と互換性があります。
Kubernetes v1.13 以降
Kubernetes Serviceカタログ v0.2.1 以降
Atlas オープン サービス ブロックのスコープ
Atlas Open Service Blog のインスタンスを作成すると、それをクラスタースコープの clusterServiceBrokerまたは名前空間スコープのserviceBrokerとして Kubernetes に登録します。
クラスタースコープのサーバーと名前空間スコープのサーバーのユースケースの詳細については、 Kubernetes Service カタログのドキュメント を参照してください。
ClusterServiceBroker
ClusterServiceBrokerとして登録されている Atlas Open Service ブロック インスタンスは、Kubernetes クラスター全体で利用できます。 Atlas レプリカセットまたはシャーディングされたクラスターを配置する場合は、関連付けられているclusterServiceClass リソースとclusterServicePlan リソースを使用する必要があります。
ServiceBroker
ServiceBrokerとして登録されている Atlas Open Service ブロック インスタンスは、Kubernetes クラスター内の単一の名前空間でのみ使用できます。 Atlas レプリカセットまたはシャーディングされたクラスターを配置する場合は、同じ名前空間にスコープ設定されたserviceClassとservicePlanリソースを使用する必要があります。
複数の Atlas オープン サービス ブロック インスタンス
Atlas Open Service Blog のインスタンスを作成すると、以下を配置できます。
Kubernetes クラスター全体にスコープが設定された 1 つの Atlas Open Service Blog インスタンス、または
Kubernetes クラスター内の独自の名前空間にスコープ設定された複数の Atlas Open Service Blog インスタンス
重要
複数の Atlas Open Service Blog インスタンスの配置を選択した場合は、 名前空間 ごとに 1 つのインスタンスのみを配置してください 。複数の Atlas Open Service Blog インスタンスは、同じ名前空間内で相互に調整することはできません。
Atlas Open Service Triggers のインストール
Kubernetes に Atlas Open Service Blog を配置するには、次の手順に従います。
名前空間 を作成する (Kubernetes 配置用)。
インストールを簡素化するために、次のatlas kubernetes を使用して というラベルの付いた名前空間を作成することを検討してください コマンド:
kubectl create namespace atlas
atlas名前空間を使用しない場合は、名前空間に次のようにラベルを付けることができます。
kubectl create namespace <NAMESPACE_NAME>
DeploymentとServiceのリソース定義を作成します。
次のリソース定義の例をコピーします。
これは、必要な構成に合わせて変更できるYAMLファイルです。 これには
DeploymentとServiceの両方の仕様が含まれます。注意
この例では、配置名、サービス名、ポッド ラベルとして
atlas-service-brokerを使用しています。 リソース間で一貫している限り、これらのフィールドを他の値で更新できます。# Deployment to run the service broker. apiVersion: apps/v1 kind: Deployment metadata: name: atlas-service-broker labels: app: atlas-service-broker spec: replicas: 1 selector: matchLabels: app: atlas-service-broker template: metadata: labels: app: atlas-service-broker spec: containers: - name: atlas-service-broker image: quay.io/mongodb/mongodb-atlas-service-broker:latest ports: - containerPort: 4000 env: - name: BROKER_HOST value: "0.0.0.0" # Service to expose the service broker inside the cluster. apiVersion: v1 kind: Service metadata: name: atlas-service-broker labels: app: atlas-service-broker spec: selector: # Will match pods deployed by the "atlas-service-broker" deployment. app: atlas-service-broker ports: - protocol: TCP port: 80 targetPort: 4000 テキスト エディターを開き、リソース定義を新しいテキスト ファイルに貼り付けます。
Atlas Open Service Blog サーバーがリッスンするコンテナ ポートを確認または編集します。
Resource環境変数説明defaultDeploymentspec.template.spec.containers.ports.containerPortAtlas Open Service Blog サーバーがリッスンするポート。
Serviceリソース内のtargetPortの値と一致する必要があります。4000Servicespec.ports.targetPortAtlas Open Service Blog サーバーがリッスンするポート。
Deploymentリソース内のcontainerPortの値と一致する必要があります。4000ファイルを
deployment-and-service.yamlとして保存します。
Atlas Open Service ブロックをインストールします。
次の kubernetes を使用します コマンド:
kubectl apply -f deployment-and-service.yaml -n <NAMESPACE>
Kubernetes シークレットを作成します。
Atlas Open Service Blog が オブジェクト を作成または更新するのは、 Atlas プロジェクトでは、プログラマティック API キーとプロジェクト ID を Kubernetes シークレット として保存する必要があります。 。
複数のシークレットが同じ名前空間に存在できます。
Kubernetes シークレットを作成するには
以下があることを確認してください。
目的の Atlas プログラマティック API キーの公開キーと秘密キー。
プログラマティック API キーをお持ちでない場合は、新しいプログラマティック API キーを生成してください。
Atlas プロジェクトのプロジェクト ID 。
次のリソース定義の例をコピーします。
これは、必要な構成に合わせて変更できるYAMLです。
apiVersion: v1 kind: Secret metadata: name: <SECRET_NAME> type: Opaque stringData: username: <PUBLIC_KEY>@<PROJECT_ID> password: <PRIVATE_KEY> 次のフィールドを編集します。
フィールド名説明stringData.usernameAtlas 公開鍵、@とプロジェクト ID が続きます。stringData.passwordAtlas 秘密キー。usernameとpasswordは、Atlas Open Service Blog に対する基本認証に使用されます。例
apiVersion: v1 kind: Secret metadata: name: atlas-service-broker-auth type: Opaque stringData: username: ABCAXNVY@5d49a272ce4bd97b2e1234abc password: 123e8d75-cxfb-x012-bx5c-abc4356e3xyz ファイルを
secret.yamlとして保存します。次の Kubernetes コマンドを呼び出してシークレットを作成します。
kubectl apply -f secret.yaml -n <NAMESPACE> フラグは 名前空間 を制限します このシークレットが適用される
-n次の Kubernetes コマンドを呼び出して、シークレットを検証します。
kubectl describe secrets/<SECRET_NAME> -n <NAMESPACE> このコマンドは、shell 内のシークレットの説明を返します。
Name: <SECRET_NAME> Namespace: <NAMESPACE> Labels: <none> Annotations: Type: Opaque Data ==== password: 36 bytes username: 36 bytes
サービス プロバイダーのリソース定義を作成します。
次のリソース定義の例をコピーします。
これは、必要な構成に合わせて変更できるYAMLファイルです。
apiVersion: servicecatalog.k8s.io/v1beta1 kind: <SERVICE_BROKER_SCOPE> metadata: name: atlas-service-broker spec: url: http://<SERVICE_NAME>.<NAMESPACE> authInfo: basic: secretRef: name: <SECRET_NAME> namespace: <NAMESPACE> 次のフィールドを編集します。
フィールド名説明kindこの値により、Atlas Open Service Blog が Kubernetes クラスター全体で使用できるか、Kubernetes クラスター内の単一の名前空間のみで使用できるかが決まります。 サービス カタログのドキュメントの詳細について は、 サービス カタログのドキュメント を参照してください。
可能な値は次のとおりです。
ServiceBrokerスコープが 1 つの名前空間のみに設定されている Atlas Open Service Blog を配置します。 すべての Atlas クラスターは、Atlas Open Service Blog と同じ名前空間でプロビジョニングする必要があります。ClusterServiceBrokerKubernetes クラスター全体にスコープが設定された Atlas Open Service Blog を配置します。 Atlas クラスターは任意の名前空間でプロビジョニングできます。spec.urlhttp://<SERVICE_NAME>.<NAMESPACE>形式のプロバイダーの URL。<SERVICE_NAME>は、Serviceリソース内のmetadata.nameの値です。例
http://atlas-service-broker.atlas spec.authInfo.basic.secretRef.name前のステップで作成した Kubernetes シークレットの名前。spec.authInfo.basic.secretRef.namespace名前空間。ファイルを
service-broker.yamlとして保存します。
Atlas Open Service Blog を サービスカタログ に登録
次の kubernetes を使用します コマンド:
kubectl apply -f service-broker.yaml -n <NAMESPACE>
サービスカタログ CLI を使用して、Atlas オープン サービス ブロックのステータスを確認します。
svcat get brokers -n <NAMESPACE>
コマンドは、ポートのステータスを返します。 プロバイダーのステータスが表示されない場合は、少し時間待ってからコマンドを再度呼び出します。
例
次の例では、 ClusterServiceBrokerとして定義されたポートのステータスを示しています。 このプロバイダーはクラスター レベルで配置されるため、名前空間はありません。
NAME NAMESPACE URL STATUS +----------------------+-----------+-----------------------------------+--------+ atlas-service-broker http://atlas-service-broker.atlas Ready
エージェントのステータスがReady 以外の場合は、metadata.name からのservice-broker.yaml を次のコマンドに渡して、詳細なエラー メッセージを表示します。
svcat describe broker <METADATA.NAME> -n <NAMESPACE>
次のステップ
Atlas Open Service Blog をインストールすると、次のことが可能になります。
許可されたクラウド サービス プロバイダーとインスタンス サイズのホワイトリストを設定します。