6.6. 替换没有 BMC 凭证的裸机 control plane 节点失败


如果裸机集群中的 control plane 节点失败且无法恢复,但在没有提供基板管理控制器(BMC)凭证的情况下安装集群,则必须执行额外的步骤来将故障节点替换为新节点。

6.6.1. 先决条件

  • 您已找出不健康的裸机 etcd 成员。
  • 您已确认机器没有运行,或者该节点未就绪。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 如果您遇到任何问题,已进行 etcd 备份
  • 您已下载并安装 coreos-installer CLI
  • 您的集群没有 control plane machineset。您可以运行以下命令来 检查 机器集:

    $ oc get machinesets,controlplanemachinesets -n openshift-machine-api
    Copy to Clipboard Toggle word wrap
    重要

    worker 应该只有 一个或者多个 机器集。如果 controlplanemachinesets 存在,请不要使用此流程。

6.6.2. 删除不健康的 etcd 成员

首先删除不健康的 etcd 成员,开始删除失败的 control plane 节点。

流程

  1. 运行以下命令列出 etcd pod,并记录没有在受影响节点上的 pod:

    $ oc -n openshift-etcd get pods -l k8s-app=etcd -o wide
    Copy to Clipboard Toggle word wrap

    输出示例

    etcd-openshift-control-plane-0   5/5   Running   11   3h56m   192.168.10.9    openshift-control-plane-0  <none>           <none>
    etcd-openshift-control-plane-1   5/5   Running   0    3h54m   192.168.10.10   openshift-control-plane-1   <none>           <none>
    etcd-openshift-control-plane-2   5/5   Running   0    3h58m   192.168.10.11   openshift-control-plane-2   <none>           <none>
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令连接到正在运行的 etcd 容器:

    $ oc rsh -n openshift-etcd <etcd_pod>
    Copy to Clipboard Toggle word wrap

    <etcd_pod > 替换为与一个健康节点关联的 etcd pod 的名称。

    示例命令

    $ oc rsh -n openshift-etcd etcd-openshift-control-plane-0
    Copy to Clipboard Toggle word wrap

  3. 运行以下命令来查看 etcd 成员列表。记录不健康的 etcd 成员的 ID 和名称,因为稍后需要这些值。

    sh-4.2# etcdctl member list -w table
    Copy to Clipboard Toggle word wrap

    输出示例

    +------------------+---------+------------------------------+---------------------------+---------------------------+
    |        ID        | STATUS  |             NAME             |        PEER ADDRS         |       CLIENT ADDRS        |
    +------------------+---------+------------------------------+---------------------------+---------------------------+
    | 6fc1e7c9db35841d | started | openshift-control-plane-2    | https://10.0.131.183:2380 | https://10.0.131.183:2379 |
    | 757b6793e2408b6c | started | openshift-control-plane-1    | https://10.0.164.97:2380  | https://10.0.164.97:2379  |
    | ca8c2990a0aa29d1 | started | openshift-control-plane-0    | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
    +------------------+---------+------------------------------+---------------------------+---------------------------+
    Copy to Clipboard Toggle word wrap

    重要

    etcdctl endpoint health 命令将列出已删除的成员,直到完成替换并添加新成员为止。

  4. 运行以下命令来删除不健康的 etcd 成员:

    sh-4.2# etcdctl member remove <unhealthy_member_id>
    Copy to Clipboard Toggle word wrap

    <unhealthy_member_id > 替换为不健康节点上的 etcd 成员的 ID。

    示例命令

    sh-4.2# etcdctl member remove 6fc1e7c9db35841d
    Copy to Clipboard Toggle word wrap

    输出示例

    Member 6fc1e7c9db35841d removed from cluster b23536c33f2cdd1b
    Copy to Clipboard Toggle word wrap

  5. 运行以下命令来再次查看成员列表,并验证成员已被删除:

    sh-4.2# etcdctl member list -w table
    Copy to Clipboard Toggle word wrap

    输出示例

    +------------------+---------+------------------------------+---------------------------+---------------------------+
    |        ID        | STATUS  |             NAME             |        PEER ADDRS         |       CLIENT ADDRS        |
    +------------------+---------+------------------------------+---------------------------+---------------------------+
    | 757b6793e2408b6c | started | openshift-control-plane-1    | https://10.0.164.97:2380  | https://10.0.164.97:2379  |
    | ca8c2990a0aa29d1 | started | openshift-control-plane-0    | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
    +------------------+---------+------------------------------+---------------------------+---------------------------+
    Copy to Clipboard Toggle word wrap

    重要

    删除成员后,在剩余的 etcd 实例重启时,集群可能无法访问。

  6. 运行以下命令,将 rsh 会话退出到 etcd pod 中:

    sh-4.2# exit
    Copy to Clipboard Toggle word wrap
  7. 运行以下命令关闭 etcd 仲裁保护:

    $ oc patch etcd/cluster --type=merge -p '{"spec": {"unsupportedConfigOverrides": {"useUnsupportedUnsafeNonHANonProductionUnstableEtcd": true}}}'
    Copy to Clipboard Toggle word wrap

    此命令可确保您可以成功重新创建机密并推出静态 pod。

  8. 运行以下命令,列出已删除的不健康 etcd 成员的 secret:

    $ oc get secrets -n openshift-etcd | grep <node_name>
    Copy to Clipboard Toggle word wrap

    <node_name > 替换为您删除的 etcd 成员的故障节点的名称。

    示例命令

    $ oc get secrets -n openshift-etcd | grep openshift-control-plane-2
    Copy to Clipboard Toggle word wrap

    输出示例

    etcd-peer-openshift-control-plane-2             kubernetes.io/tls   2   134m
    etcd-serving-metrics-openshift-control-plane-2  kubernetes.io/tls   2   134m
    etcd-serving-openshift-control-plane-2          kubernetes.io/tls   2   134m
    Copy to Clipboard Toggle word wrap

  9. 删除与已删除的受影响节点关联的 secret:

    1. 运行以下命令来删除 peer secret:

      $ oc delete secret -n openshift-etcd etcd-peer-<node_name>
      Copy to Clipboard Toggle word wrap

      <node_name > 替换为受影响节点的名称。

    2. 运行以下命令来删除 serving secret:

      $ oc delete secret -n openshift-etcd etcd-serving-<node_name>
      Copy to Clipboard Toggle word wrap

      <node_name > 替换为受影响节点的名称。

    3. 运行以下命令来删除 metrics secret:

      $ oc delete secret -n openshift-etcd etcd-serving-metrics-<node_name> 
      1
      Copy to Clipboard Toggle word wrap

      <node_name > 替换为受影响节点的名称。

6.6.3. 删除不健康 etcd 成员的机器

通过删除不健康 etcd 成员的机器来完成失败的 control plane 节点。

流程

  1. 运行以下命令,确保 Bare Metal Operator 可用:

    $ oc get clusteroperator baremetal
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME        VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    baremetal   4.20.0    True        False         False      3d15h
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令,将受影响节点的 BareMetalHost 对象保存到文件中,以便稍后使用:

    $ oc get -n openshift-machine-api bmh <node_name> -o yaml > bmh_affected.yaml
    Copy to Clipboard Toggle word wrap

    <node_name > 替换为受影响节点的名称,这通常与关联的 BareMetalHost 名称匹配。

  3. 运行以下命令,查看保存的 BareMetalHost 对象的 YAML 文件,并确保内容正确:

    $ cat bmh_affected.yaml
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令来删除受影响的 BareMetalHost 对象:

    $ oc delete -n openshift-machine-api bmh <node_name>
    Copy to Clipboard Toggle word wrap

    <node_name > 替换为受影响节点的名称。

  5. 运行以下命令列出所有机器,并识别与受影响节点关联的机器:

    $ oc get machines -n openshift-machine-api -o wide
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                            PHASE    TYPE  REGION  ZONE  AGE    NODE                       PROVIDERID                                                                                             STATE
    examplecluster-control-plane-0  Running                      3h11m  openshift-control-plane-0  baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e  externally provisioned
    examplecluster-control-plane-1  Running                      3h11m  openshift-control-plane-1  baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1  externally provisioned
    examplecluster-control-plane-2  Running                      3h11m  openshift-control-plane-2  baremetalhost:///openshift-machine-api/openshift-control-plane-2/3354bdac-61d8-410f-be5b-6a395b056135  externally provisioned
    examplecluster-compute-0        Running                      165m   openshift-compute-0        baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f        provisioned
    examplecluster-compute-1        Running                      165m   openshift-compute-1        baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9        provisioned
    Copy to Clipboard Toggle word wrap

  6. 运行以下命令来删除不健康成员的机器:

    $ oc delete machine -n openshift-machine-api <machine_name>
    Copy to Clipboard Toggle word wrap

    <machine_name > 替换为与受影响节点关联的机器名称。

    示例命令

    $ oc delete machine -n openshift-machine-api examplecluster-control-plane-2
    Copy to Clipboard Toggle word wrap

    注意

    删除 BareMetalHostMachine 对象后,机器控制器会自动删除 Node 对象。

  7. 如果删除机器因任何原因或者命令被模糊而延迟而延迟而延迟,则通过删除机器对象终结器字段来强制删除。

    警告

    不要通过按 Ctrl+c 中断机器删除。您必须允许命令继续完成。打开一个新的终端窗口来编辑并删除 finalizer 字段。

    1. 在新的终端窗口中,运行以下命令来编辑机器配置:

      $ oc edit machine -n openshift-machine-api examplecluster-control-plane-2
      Copy to Clipboard Toggle word wrap
    2. 删除 Machine 自定义资源中的以下字段,然后保存更新的文件:

      finalizers:
      - machine.machine.openshift.io
      Copy to Clipboard Toggle word wrap

      输出示例

      machine.machine.openshift.io/examplecluster-control-plane-2 edited
      Copy to Clipboard Toggle word wrap

6.6.4. 验证失败的节点已被删除

在继续创建替换 control plane 节点前,请验证失败的节点是否已成功删除。

流程

  1. 运行以下命令验证机器是否已删除:

    $ oc get machines -n openshift-machine-api -o wide
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                              PHASE     TYPE   REGION   ZONE   AGE     NODE                                 PROVIDERID                                                                                       STATE
    examplecluster-control-plane-0    Running                          3h11m   openshift-control-plane-0   baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e   externally provisioned
    examplecluster-control-plane-1    Running                          3h11m   openshift-control-plane-1   baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1   externally provisioned
    examplecluster-compute-0          Running                          165m    openshift-compute-0         baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f         provisioned
    examplecluster-compute-1          Running                          165m    openshift-compute-1         baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9         provisioned
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令验证节点是否已删除:

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                     STATUS ROLES   AGE   VERSION
    openshift-control-plane-0 Ready master 3h24m v1.33.4
    openshift-control-plane-1 Ready master 3h24m v1.33.4
    openshift-compute-0       Ready worker 176m v1.33.4
    openshift-compute-1       Ready worker 176m v1.33.4
    Copy to Clipboard Toggle word wrap

  3. 等待所有集群 Operator 完成推出更改。运行以下命令来监控进度:

    $ watch oc get co
    Copy to Clipboard Toggle word wrap

6.6.5. 创建新的 control plane 节点

通过创建 BareMetalHost 对象和节点开始创建新的 control plane 节点。

流程

  1. 编辑之前保存的 bmh_affected.yaml 文件:

    1. 从文件中删除以下元数据项目:

      • creationTimestamp
      • generation
      • resourceVersion
      • uid
    2. 删除文件的 status 部分。

    生成的文件应类似以下示例:

    bmh_affected.yaml 文件示例

    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    metadata:
      labels:
        installer.openshift.io/role: control-plane
      name: openshift-control-plane-2
      namespace: openshift-machine-api
    spec:
      automatedCleaningMode: disabled
      bmc:
        address:
        credentialsName:
        disableCertificateVerification: true
      bootMACAddress: ab:cd:ef:ab:cd:ef
      bootMode: UEFI
      externallyProvisioned: true
      online: true
      rootDeviceHints:
        deviceName: /dev/disk/by-path/pci-0000:04:00.0-nvme-1
      userData:
        name: master-user-data-managed
        namespace: openshift-machine-api
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令,使用 bmh_affected.yaml 文件创建 BareMetalHost 对象:

    $ oc create -f bmh_affected.yaml
    Copy to Clipboard Toggle word wrap

    在创建 BareMetalHost 对象时会出现以下警告:

    Warning: metadata.finalizers: "baremetalhost.metal3.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令来提取 control plane ignition secret:

    $ oc extract secret/master-user-data-managed \
        -n openshift-machine-api \
        --keys=userData \
        --to=- \
        | sed '/^userData/d' > new_controlplane.ign
    Copy to Clipboard Toggle word wrap

    此命令还会删除 ignition secret 的起始 userData 行。

  4. 使用以下示例参考,为新节点的网络配置创建一个名为 new_controlplane_nmstate.yaml 的 Nmstate YAML 文件:

    Nmstate YAML 文件示例

    interfaces:
      - name: eno1
        type: ethernet
        state: up
        mac-address: "ab:cd:ef:01:02:03"
        ipv4:
          enabled: true
          address:
            - ip: 192.168.20.11
              prefix-length: 24
          dhcp: false
        ipv6:
          enabled: false
    dns-resolver:
      config:
        search:
          - iso.sterling.home
        server:
          - 192.168.20.8
    routes:
      config:
      - destination: 0.0.0.0/0
        metric: 100
        next-hop-address: 192.168.20.1
        next-hop-interface: eno1
        table-id: 254
    Copy to Clipboard Toggle word wrap

    注意

    如果使用基于代理的安装程序安装集群,您可以使用原始集群部署的 agent-config.yaml 文件中的故障节点的 networkConfig 部分作为新 control plane 节点的 Nmstate 文件的起点。例如,以下命令提取第一个 control plane 节点的 networkConfig 部分:

    $ cat agent-config-iso.yaml | yq .hosts[0].networkConfig > new_controlplane_nmstate.yaml
    Copy to Clipboard Toggle word wrap
  5. 运行以下命令,创建自定义的 Red Hat Enterprise Linux CoreOS (RHCOS) live ISO:

    $ coreos-installer iso customize rhcos-live.86_64.iso \
        --dest-ignition new_controlplane.ign \
        --network-nmstate new_controlplane_nmstate.yaml \
        --dest-device /dev/disk/by-path/<device_path> \
        -f
    Copy to Clipboard Toggle word wrap

    将 < device_path > 替换为生成 ISO 的目标设备的路径。

  6. 使用自定义 RHCOS live ISO 引导新的 control plane 节点。
  7. 批准证书签名请求(CSR),将新节点加入到集群中。

6.6.6. 将节点、裸机主机和机器连接在一起

通过创建机器,然后将其链接到新的 BareMetalHost 对象和节点,继续创建新的 control plane 节点。

流程

  1. 运行以下命令,获取 control plane 节点的 providerID

    $ oc get -n openshift-machine-api baremetalhost -l installer.openshift.io/role=control-plane -ojson | jq -r '.items[] | "baremetalhost:///openshift-machine-api/" + .metadata.name + "/" + .metadata.uid'
    Copy to Clipboard Toggle word wrap

    输出示例

    baremetalhost:///openshift-machine-api/master-00/6214c5cf-c798-4168-8c78-1ff1a3cd2cb4
    baremetalhost:///openshift-machine-api/master-01/58fb60bd-b2a6-4ff3-a88d-208c33abf954
    baremetalhost:///openshift-machine-api/master-02/dc5a94f3-625b-43f6-ab5a-7cc4fc79f105
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令,获取标签的集群信息:

    $ oc get machine -n openshift-machine-api \
        -l machine.openshift.io/cluster-api-machine-role=master \
        -L machine.openshift.io/cluster-api-cluster
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                           PHASE   TYPE  REGION  ZONE  AGE  CLUSTER-API-CLUSTER
    ci-op-jcp3s7wx-ng5sd-master-0  Running                     10h  ci-op-jcp3s7wx-ng5sd
    ci-op-jcp3s7wx-ng5sd-master-1  Running                     10h  ci-op-jcp3s7wx-ng5sd
    ci-op-jcp3s7wx-ng5sd-master-2  Running                     10h  ci-op-jcp3s7wx-ng5sd
    Copy to Clipboard Toggle word wrap

  3. 通过创建一个类似如下的 yaml 文件,为新 control plane 节点创建 Machine 对象:

    apiVersion: machine.openshift.io/v1beta1
    kind: Machine
    metadata:
      annotations:
        metal3.io/BareMetalHost: openshift-machine-api/<new_control_plane_machine> 
    1
    
      finalizers:
        - machine.machine.openshift.io
      labels:
        machine.openshift.io/cluster-api-cluster: <cluster_api_cluster> 
    2
    
        machine.openshift.io/cluster-api-machine-role: master
        machine.openshift.io/cluster-api-machine-type: master
      name: <new_control_plane_machine> 
    3
    
      namespace: openshift-machine-api
    spec:
      metadata: {}
      providerID: <provider_id> 
    4
    
      providerSpec:
        value:
          apiVersion: baremetal.cluster.k8s.io/v1alpha1
          hostSelector: {}
          image:
            checksum: ""
            url: ""
          kind: BareMetalMachineProviderSpec
          userData:
            name: master-user-data-managed
    Copy to Clipboard Toggle word wrap

    其中:

    <new_control_plane_machine>
    指定新机器的名称,可以与之前删除的机器名称相同。
    <cluster_api_cluster>
    为其他 control plane 机器指定 CLUSTER-API-CLUSTER 值,如上一步的输出中所示。
    <provider_id>
    指定新裸机主机的 providerID 值,如前一步的输出中所示。

    应该会发出以下警告:

    Warning: metadata.finalizers: "machine.machine.openshift.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers
    Copy to Clipboard Toggle word wrap
  4. 通过在单个 bash shell 会话中执行以下步骤,将新的 control plane 节点和 Machine 对象链接到 BareMetalHost 对象:

    1. 运行以下命令来定义 NEW_NODE_NAME 变量:

      $ NEW_NODE_NAME=<new_node_name>
      Copy to Clipboard Toggle word wrap

      <new_node_name > 替换为新 control plane 节点的名称。

    2. 运行以下命令定义 NEW_MACHINE_NAME 变量:

      $ NEW_MACHINE_NAME=<new_machine_name>
      Copy to Clipboard Toggle word wrap

      <new_machine_name > 替换为新机器的名称。

    3. 运行以下命令来定义 BMH_UID,使其从新节点的 BareMetalHost 对象中提取:

      $ BMH_UID=$(oc get -n openshift-machine-api bmh $NEW_NODE_NAME -ojson | jq -r .metadata.uid)
      Copy to Clipboard Toggle word wrap
      $ echo $BMH_UID
      Copy to Clipboard Toggle word wrap
    4. 运行以下命令,将 consumerRef 对象修补到裸机主机中:

      $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --type merge --patch '{"spec":{"consumerRef":{"apiVersion":"machine.openshift.io/v1beta1","kind":"Machine","name":"'$NEW_MACHINE_NAME'","namespace":"openshift-machine-api"}}}'
      Copy to Clipboard Toggle word wrap
    5. 运行以下命令,将 providerID 值修补到新节点:

      $ oc patch node $NEW_NODE_NAME --type merge --patch '{"spec":{"providerID":"baremetalhost:///openshift-machine-api/'$NEW_NODE_NAME'/'$BMH_UID'"}}'
      Copy to Clipboard Toggle word wrap
    6. 运行以下命令,查看 providerID 值:

      $ oc get node -l node-role.kubernetes.io/control-plane -ojson | jq -r '.items[] | .metadata.name + "  " + .spec.providerID'
      Copy to Clipboard Toggle word wrap
  5. 运行以下命令,将 BareMetalHost 对象的 poweredOn 状态设置为 true

    $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --subresource status --type json -p '[{"op":"replace","path":"/status/poweredOn","value":true}]'
    Copy to Clipboard Toggle word wrap
  6. 运行以下命令,查看 BareMetalHost 对象的 poweredOn 状态:

    $ oc get bmh -n openshift-machine-api -ojson | jq -r '.items[] | .metadata.name + "   PoweredOn:" +  (.status.poweredOn | tostring)'
    Copy to Clipboard Toggle word wrap
  7. 运行以下命令,查看 BareMetalHost 对象的置备状态:

    $ oc get bmh -n openshift-machine-api -ojson | jq -r '.items[] | .metadata.name + "   ProvisioningState:" +  .status.provisioning.state'
    Copy to Clipboard Toggle word wrap
    重要

    如果置备状态不是 非受管状态,请运行以下命令来更改置备状态:

    $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --subresource status --type json -p '[{"op":"replace","path":"/status/provisioning/state","value":"unmanaged"}]'
    Copy to Clipboard Toggle word wrap
  8. 运行以下命令,将机器的状态设置为 Provisioned

    $ oc patch -n openshift-machine-api machines $NEW_MACHINE_NAME -n openshift-machine-api --subresource status --type json -p '[{"op":"replace","path":"/status/phase","value":"Provisioned"}]'
    Copy to Clipboard Toggle word wrap

6.6.7. 添加新 etcd 成员

通过向集群添加新 etcd 成员,完成添加新的 control plane 节点。

流程

  1. 通过在单个 bash shell 会话中执行以下步骤来在集群中添加新的 etcd 成员:

    1. 运行以下命令,查找新 control plane 节点的 IP:

      $ oc get nodes -owide -l node-role.kubernetes.io/control-plane
      Copy to Clipboard Toggle word wrap

      记录节点的 IP 地址供以后使用。

    2. 运行以下命令列出 etcd pod:

      $ oc get -n openshift-etcd pods -l k8s-app=etcd -o wide
      Copy to Clipboard Toggle word wrap
    3. 运行以下命令,连接到正在运行的 etcd pod 之一。新节点上的 etcd pod 应处于 CrashLoopBackOff 状态。

      $ oc rsh -n openshift-etcd <running_pod>
      Copy to Clipboard Toggle word wrap

      <running_pod > 替换为上一步中显示的正在运行的 pod 的名称。

    4. 运行以下命令来查看 etcd 成员列表:

      sh-4.2# etcdctl member list -w table
      Copy to Clipboard Toggle word wrap
    5. 运行以下命令添加新的 control plane etcd 成员:

      sh-4.2# etcdctl member add <new_node> --peer-urls="https://<ip_address>:2380"
      Copy to Clipboard Toggle word wrap

      其中:

      <new_node>
      指定新 control plane 节点的名称
      <ip_address>
      指定新节点的 IP 地址。
    6. 运行以下命令退出 rsh shell:

      sh-4.2# exit
      Copy to Clipboard Toggle word wrap
  2. 运行以下命令来强制重新部署 etcd:

    $ oc patch etcd cluster -p='{"spec": {"forceRedeploymentReason": "single-master-recovery-'"$( date --rfc-3339=ns )"'"}}' --type=merge
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令重新打开 etcd 仲裁保护:

    $ oc patch etcd/cluster --type=merge -p '{"spec": {"unsupportedConfigOverrides": null}}'
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令监控集群 Operator 推出部署:

    $ watch oc get co
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat