$ oc delete machine.machine.openshift.io <machine_name>
使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围。 |
使用本节中的信息来了解和恢复您可能遇到的问题。通常,集群 API 问题的故障排除步骤与机器 API 问题的故障排除步骤类似。
集群 CAPI 运算符及其操作数在openshift-cluster-api
命名空间中进行配置,而机器 API 使用openshift-machine-api
命名空间。当使用引用命名空间的oc
命令时,请确保引用正确的命名空间。
对于使用集群 API 的集群,OpenShift CLI (oc
) 命令优先处理集群 API 对象而不是机器 API 对象。
此行为会影响作用于集群 API 和机器 API 中都表示的任何对象的任何oc
命令。本说明使用删除机器的oc delete machine
命令为例。
运行oc
命令时,oc
会与 Kube API 服务器通信以确定要作用于哪些对象。当运行oc
命令时,Kube API 服务器会按字母顺序使用遇到的第一个已安装的自定义资源定义 (CRD)。
集群 API 对象的 CRD 位于cluster.x-k8s.io
组中,而机器 API 对象的 CRD 位于machine.openshift.io
组中。由于字母“c”在字母“m”之前,因此 Kube API 服务器与集群 API 对象 CRD 匹配。因此,oc
命令会作用于集群 API 对象。
由于此行为,在使用集群 API 的集群上可能会出现以下意外结果:
对于包含两种类型对象的命名空间,例如oc get machine
的命令只会返回集群 API 对象。
对于仅包含机器 API 对象的命名空间,例如oc get machine
的命令不会返回任何结果。
您可以通过使用相应的完全限定名称来确保oc
命令作用于您打算使用的对象类型。
您可以使用具有cluster-admin
权限的帐户访问集群。
您已安装 OpenShift CLI (oc
)。
要删除机器 API 机器,请在运行oc delete machine
命令时使用完全限定名称machine.machine.openshift.io
$ oc delete machine.machine.openshift.io <machine_name>
要删除集群 API 机器,请在运行oc delete machine
命令时使用完全限定名称machine.cluster.x-k8s.io
$ oc delete machine.cluster.x-k8s.io <machine_name>