Kubernetes 演算子の認証情報の作成
APIKubernetes KubernetesOperator Cloud ManagerMongoDB Ops ManagerがCloud ManagerまたはMongoDB Ops Managerプロジェクトで オブジェクト を作成または更新するには、 シークレットストレージツールにプログラマティックAPIキーを保存する必要があります。
複数のシークレットが同じ名前空間に存在できます。 各ユーザーには独自のシークレットが必要です。
以下の 手順 に従って、 プログラマティック API キー を Kubernetes secret として手動で保存できます。 。または、次のこともできます。
MongoDB Cloud Manager UIまたはMongoDB Ops Manager UIを使用して、 Kubernetesシークレット YAML ファイルを自動的に生成し、 Kubernetes環境に適用できます。
Vault シークレットを 作成する の手順を使用して、 プログラマティック API キー を Vault シークレットとして保存します。Vault を使用するには、シークレット ストレージも構成する必要があります。
前提条件
Kubernetes Operator の認証情報を作成するには、次の手順を実行する必要があります。
MongoDB Ops Manager組織を または 作成します。
この新しいプログラマティック API キーを付与します。
Kubernetes Operator でプロジェクトを作成し、それらを管理する場合は、組織オーナーまたは
Global Owner
ロール。Kubernetes Operator でプロジェクトのみを管理する場合のプロジェクト オーナーのロール。
注意
プログラマティック API キーには組織オーナーまたは
Global Owner
ロールを付与する必要があります。 プログラマティック API キーにプロジェクト オーナーのロールのみを付与する場合は、まずプロジェクトを作成し、次にプロジェクト オーナーのロールを持つプロジェクトのプログラマティック API キーを作成する必要があります。 プログラマティック API キーにプロジェクトオーナーのロールのみがある場合、Kubernetes 演算子はプロジェクトを作成できません。Kubernetes Operator を提供するホストの IPまたはCIDRブロックをAPI アクセス リストに追加します。
手順
Kubernetes シークレットを作成するには
新しい Kubernetes シークレットを作成する
目的のMongoDB Ops ManagerプログラマティックAPIキーの公開キーと秘密キーがあることを確認してください。
次の Kubernetes コマンドを呼び出してシークレットを作成します。
kubectl -n <metadata.namespace> \ create secret generic <mycredentials> \ --from-literal="publicKey=<publicKey>" \ --from-literal="privateKey=<privateKey>" フラグは 名前空間 を制限します このシークレットが適用される
-n
すべての MongoDB Kubernetes リソースは シークレット と同じ名前空間に存在する必要があります と ConfigMaps 。Kubernetes Operator は、シークレットも ConfigMap も使用しません。注意
このコマンドの非推奨バージョンでは、
publicKey
とprivateKey
ではなく、user
とpublicApiKey
が指定されます。 Kubernetes Operator は認証にどちらのバージョンも受け入れます。
新しい Kubernetes シークレットを確認する
次の Kubernetes コマンドを呼び出して、シークレットを検証します。
kubectl describe secrets/<mycredentials> -n <metadata.namespace>
このコマンドは、shell 内のシークレットの説明を返します。
Name: <mycredentials> Namespace: <metadata.namespace> Labels: <none> Annotations: <none> Type: Opaque Data ==== privateKey: 31 bytes publicKey: 22 bytes