MongoDB工具 >MongoDB Kubernetes运营商 >参考 > 对Kubernetes运算符进行故障排除
在本页面
要查找使用Kubernetes Operator部署的资源的状态,请调用以下命令之一:
对于Ops Manager资源部署:
status.applicationDatabase.phase
字段显示应用程序数据库资源的部署状态。status.backup.phase
显示备份守护进程的资源部署状态。status.opsManager.phase
字段显示Ops Manager资源部署状态。注意
所述opsManager
控制器手表在以下设置中定义的数据库资源:
spec.backup.opLogStores
spec.backup.s3Stores
spec.backup.blockStores
对于MongoDB资源部署:
该status.phase
字段显示MongoDB资源部署状态。
以下键值对描述了资源部署状态:
键 | 值 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
message |
消息,说明资源为何处于Pending 或
Failed 状态。 |
||||||||||
phase |
|
||||||||||
lastTransition |
上次对帐发生时,采用UTC的ISO 8601日期和时间格式的时间戳。 | ||||||||||
link |
部署URL中的操作管理员。 | ||||||||||
资源特定字段 | 有关这些字段的说明,请参阅 MongoDB数据库资源规范。 |
例
如果你想看看有什么副本的状态组命名
my-replica-set
的developer
命名空间,运行:
如果my-replica-set
正在运行,您应该看到:
如果my-replica-set
未运行,则应看到:
要查看Kubernetes Operator日志,请调用以下命令:
您也可以检查Ops Manager日志,以查看是否有任何问题报告给Ops Manager。
要在提供的名称空间中查看所有MongoDB Kubernetes资源规范 :
例
要阅读有关dublin
独立资源的详细信息,请调用以下命令:
这将返回以下响应:
如果StatefulSet 窗格Pending
在部署期间遇到错误,则可能会挂起,状态为。
Pending
即使您进行并应用配置更改来解决错误,pod也不会自动终止。
要将StatefulSet返回到正常状态,请将配置更改应用于处于该Pending
状态的MongoDB资源,然后删除这些容器。
例
主机系统具有许多正在运行的Pod:
my-replica-set-2
被困在Pending
舞台上。要收集有关错误的更多数据,请运行以下命令:
输出表明内存分配错误。
更新MongoDB资源中的内存分配是不够的,因为在应用配置更新后pod不会自动终止。
要解决此问题,请更新配置,应用配置,然后删除挂起的吊舱:
删除此挂起的Pod之后,其他Pod将以您的新配置重新启动,作为Statefulset滚动升级的一部分。
注意
要了解有关此问题的更多信息,请参见 Kubernetes发行号67250。
如果无法使用kubectl apply命令修改或重新部署已经部署的configMap文件,请调用以下命令:
这将删除并重新创建资源。如果您需要更新初始化后便无法更新的资源文件或想要立即进行递归更改,此命令很有用。
重要
要删除任何组件,您需要以下权限:
集群角色 |
|
---|---|
群集角色绑定 |
|
要删除Kubernetes部署的任何实例,必须使用Kubernetes。
重要
您只能使用Kubernetes运算符删除Kubernetes部署的实例。如果使用Ops Manager删除实例,则Ops Manager会引发错误。
例
要删除您使用Kubernetes创建的单个MongoDB实例:
要删除使用Kubernetes创建的所有MongoDB实例:
通过Kubernetes Operator管理Ops Manager项目时,Kubernetes Operator会将EXTERNALLY_MANAGED_LOCK
功能控制策略
放置在项目上。此策略禁用Ops Manager应用程序中的某些功能,这些功能可能会损害您的Kubernetes Operator配置。如果需要使用这些被阻止的功能,则可以通过功能控件API删除策略,在Ops Manager应用程序中进行更改,然后通过API还原原始策略。
警告
通过以下过程,您可以使用Ops Manager应用程序中的Kubernetes Operator阻止的功能。