生产说明
在此页面上
您可以访问 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-domain | Atlas URL 域名,以斜线结尾。 | https://cloud.mongodb.com/ |
metrics-bind-address | 指标端点绑定的地址。 | :8080 |
health-probe-bind-address | 探针端点绑定的地址。 | :8081 |
global-api-secret-name | 包含 Atlas API 密钥的密钥名称。 如果您的 AtlasProject 配置不包含 API 密钥引用,Atlas Kubernetes Operator 会使用此参数。 | <deployment_name>-api-key ,其中<deployment-name> 是Atlas Kubernetes Operator部署的名称。 |
leader-elect | 指示是否为控制器经理启用领导者选举的标志。领导者选举可确保一次只有一个控制经理处于活动状态。 | false |
log-level | 日志条目的重要性或紧急程度。 您可以指定以下级别之一:
| info |
log-encoder | 日志记录的格式。 您可以指定以下格式之一:
| json |
例子
以下命令设置 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