您可以访问 GitHub 上的 Atlas Kubernetes Operator 项目:
Atlas 帐户
在部署 Atlas Kubernetes Operator 之前,您必须创建一个 Atlas 帐户。 要了解更多信息,请参阅注册新的 Atlas 帐户。
API 密钥
您需要以下公共 API 密钥、私有 API 密钥和组织 ID 信息, 配置 Atlas Kubernetes Operator 对 Atlas 的访问权限。
如果您希望Atlas Kubernetes Operator创建新的Atlas项目,请为组织授予编程访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。
重要
您必须为 API 密钥分配 Organization Project Creator组织角色或更高级别的角色。
如果要使用现有Atlas项目,请从项目添加项目访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。
重要
您必须为 API 密钥分配 Project Owner 项目角色。
要学习;了解详情,请参阅配置对Atlas的访问权限。
namespaces
您可以部署Atlas Kubernetes Operator来监控Kubernetes集群中的所有命名空间,或仅监控其命名空间。
Amazon Web Services 安全群组
您必须先为项目配置VPC对等互连,然后才能将 Amazon Web Services安全群组添加到访问列表。 您无法将Amazon Web Services安全群组设置为临时访问列表条目。
已弃用的配置参数
以下参数在 Atlas API中已弃用,Atlas Kubernetes Operator 不支持这些参数:
replicationSpec
replicationFactor
集群创建
创建新集群最多可能需要 10 分钟。
连接字符串(Connection Strings)
您不能直接使用连接URL 。Atlas集群需要身份验证。您必须创建至少一个AtlasDatabaseUser
自定义资源,Kubernetes集群中的应用程序才能连接到Atlas 集群。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密钥<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
支持的部署标志
当您部署. Atlas Kubernetes Operator 使用kubectl
,您可以添加以下标志来自定义配置:
标记 | 说明 | 默认值 |
---|---|---|
| Atlas URL 域名,以斜线结尾。 |
|
| 指标端点绑定的地址。 |
|
| 探针端点绑定的地址。 |
|
| 包含 Atlas API 密钥的密钥名称。 如果您的 |
|
| 指示是否为控制器经理启用领导者选举的标志。领导者选举可确保一次只有一个控制经理处于活动状态。 |
|
| 日志条目的重要性或紧急程度。 您可以指定以下级别之一:
|
|
| 日志记录的格式。 您可以指定以下格式之一:
|
|
例子
以下命令设置 Atlas Kubernetes Operator 1.8.2 部署,在端口:8084
上使用指标端点,日志级别为error
:
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