プロダクション ノート
のAtlas Kubernetes Operator プロジェクトにアクセスできます。Github
Atlas アカウント
Atlas Kubernetes Operator を配置する前に、Atlas アカウントを作成する必要があります。 詳細については、「新しい Atlas アカウントの登録 」を参照してください。
API キー
Atlas Kubernetes Operator から Atlas へのアクセスを構成するには、次の公開 API キー、プライベート API キー、および組織 ID 情報が必要です。
Atlas Kubernetes Operator で新しい Atlasプロジェクトを作成する場合は、 組織へのプログラムによるアクセスの付与 。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。
重要
API キーには、 Organization Project Creator以上の組織ロールを割り当てる必要があります。
既存の Atlasプロジェクトを操作する場合は、 プロジェクトからプロジェクト アクセスを追加 します。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。
重要
Project Ownerプロジェクト ロールに API キーを割り当てる必要があります。
詳しくは、 「 Atlas へのアクセス設定」を参照してください。
名前空間
Atlas Kubernetes Operator を配置して、すべての 名前空間 を監視できます Kubernetes クラスター内、またはその 名前空間 のみ 。
Amazon Web Servicesセキュリティ グループ
セキュリティグループをアクセスリストに追加する前に、プロジェクトの VPCピアリングを設定Amazon Web Services する必要があります。Amazon Web Servicesのセキュリティ グループを一時的なアクセスリスト エントリとして設定することはできません。
非推奨の構成パラメーター
次のパラメータは Atlas APIでは非推奨となり、Atlas Kubernetes Operator はそれらをサポートしていません。
replicationSpec
replicationFactor
クラスターの作成
新しいクラスターの作成には最大 10 分かかります。
接続文字列
接続 URL を直接使用することはできません。 Atlas クラスターには認証が必要です。 Kubernetes クラスター内のアプリケーションが Atlas クラスターに接続する前に、少なくとも 1 つのAtlasDatabaseUser
カスタム リソースを作成する必要があります。 Atlas Kubernetes Operator が特別な シークレット を作成 プロジェクト内の各クラスターとデータベースユーザーの組み合わせに対して 。Kubernetes クラスター内のアプリケーションは、この シークレット を使用できます Atlas クラスターに接続するためにAtlasDatabaseUser
カスタム リソースのspec.scopes
パラメータは、データベースユーザーを作成するクラスターを制限します。
接続情報
Atlas Administration API に接続するために、Atlas Kubernetes Operator は次のいずれかのロケーションから組織 ID とAPIキーを読み取ります。
spec.connectionSecretRef.name
(AtlasProject
カスタム リソースで指定されている場合)デフォルトでは、Atlas Kubernetes Operator は同じ 名前空間 に接続シークレットを保持します
AtlasProject
カスタム リソース として。別の 名前空間 でシークレットを保存するには で、spec.connectionSecretRef.namespace
パラメータを指定します。global
Atlas Kubernetes Operator secret<operator-deployment-name>-api-key
(spec.connectionSecretRef.name
が指定されていない場合)
Atlas でリソースを作成または更新するために、Atlas Kubernetes Operator は接続情報を使用して Atlas へのAPI呼び出しを行います。
注意
場合によっては、Atlas Kubernetes Operator が カスタム リソースの調整中に Atlas で複数のAPI呼び出しを実行する場合があります。 たとえば、 には、一致するAtlasProject
API を呼び出すための IP アクセス リスト 構成があります。
調整中にエラーが発生した場合、 status.conditions
はエラーを反映するようにアップデートします。
例
- lastTransitionTime: "2021-03-15T14:26:44Z" message: 'POST https://cloud.mongodb.com/api/atlas/v1.0/groups/604a47de73cd8cag77239021/accessList: 400 (request "INVALID_IP_ADDRESS_OR_CIDR_NOTATION") The address 192.0.2.1dfdfd5 must be in valid IP address or CIDR notation.' reason: ProjectIPAccessListNotCreatedInAtlas status: "False" type: IPAccessListReady
サポートされている配置フラグ
を配置する場合。 kubectl
を使用する Atlas Kubernetes Operator には、次のフラグを追加して構成をカスタマイズできます。
Flag | 説明 | デフォルト値 |
---|---|---|
atlas-domain | スラッシュで終わる Atlas URL ドメイン名。 | https://cloud.mongodb.com/ |
metrics-bind-address | メトリクスエンドポイントがバインドするアドレス。 | :8080 |
health-probe-bind-address | プロバイダーエンドポイントがバインドするアドレス。 | :8081 |
global-api-secret-name | Atlas API キーを含むシークレットの名前。 Atlas Kubernetes Operator は、 AtlasProject 構成に API キー参照が含まれていない場合に、このパラメータを使用します。 | <deployment_name>-api-key 。ここで、 <deployment-name> は Atlas Kubernetes Operator 配置の名前です。 |
leader-elect | コントローラー マネージャーのリーダー選挙を有効にするかどうかを示すフラグ。 リーダー選挙により、一度に 1 つのコントローラー マネージャーのみがアクティブになります。 | false |
log-level | ログ エントリの重要性または緊急性のレベル。 次のいずれかのレベルを指定できます。
| info |
log-encoder | ログ レコードの形式。 次のいずれかの形式を指定できます。
| json |
例
次のコマンドは、ログ レベル がerror
で、ポート:8084
のメトリクス エンドポイントで Atlas Kubernetes Operator 1.8.2 の配置を設定します。
kubectl apply --metrics-bind-address :8084 \ --log-level error \ -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/1.8.2/deploy/all-in-one.yaml