0

Openshift 提供更新方式,实时更新整个平台。而我(也许其他人也)只需要更新一些特定的组件。

可以通过管理 operator 并相应地设置镜像来更新控制台、openshift-apiserver 等组件与新的容器镜像。例如,要更新 openshift-apiservercomponent,以下步骤确实有效:

  1. 禁用对openshift apiserver operator 的管理

#oc patch openshiftapiservers.operator.openshift.io cluster --patch '{ "spec": { "managementState": "Unmanaged" } }' --type=merge

  1. 为 openshift apiserver 部署设置一个新的容器镜像

#oc set image deploy apiserver openshift-apiserver=registry.somecorp.com:5000/ocp4/openshift4:openshfit-apiserver-4.4.4-t1 -n openshift-apiserverb

  1. 检查并等待推出状态

#oc 推出状态 -w 部署/apiserver -n openshift-apiserver

而对于基本的 kube-apiserver 组件,情况有所不同。首先,禁用相关算子的方法不起作用,似乎 kubeapiserver 算子不支持“非托管”功能。

#oc patch kubeapiserver.operator.openshift.io cluster --patch '{ "spec": b { "managementState": "Unmanaged" } }' --type=merge KubeAPIServer "cluster" 无效:spec.managementState: Invalid值:“”:正文中的 spec.managementState 应匹配 '^(Managed|Force)$'

其次,似乎只是 pod 用于 kube-apiserver,而不是部署。虽然有办法为特定的 pod/容器设置图像,但我不知道如何应用设置。

#oc 设置镜像 pod kube-apiserver-master-0 kube-apiserver=registry.somecorp.com:5000/ocp4/openshift4:hyperkube-t1 -n openshift-kube-apiserver b pod/kube-apiserver-master-0 镜像已更新

有没有人可以帮助我找出在 openshift 系统中手动更新 kube-apiserver 的方法?感谢您提供任何信息。

4

1 回答 1

0

使用此处描述的选项 A(https://github.com/openshift/enhancements/blob/master/enhancements/operator-dev-doc.md),kube-apiserver 组件可以真正为正在运行的集群更新。

于 2020-09-06T13:07:52.193 回答