【发布时间】:2020-12-13 17:30:54
【问题描述】:
Openshift 提供更新方式,实时更新整个平台。而我(也许其他人也)只需要更新一些特定的组件。
通过管理operator和设置镜像,可以用新的容器镜像更新console、openshift-apiserver等组件。 例如,要更新 openshift-apiserver 组件,可以执行以下步骤:
- 禁用对openshift apiserver operator的管理
#oc patch openshiftapiservers.operator.openshift.io cluster --patch '{ "spec": { "managementState": "Unmanaged" } }' --type=merge
- 为 openshift apiserver 部署设置新的容器映像
#oc set image deploy apiserver openshift-apiserver=registry.somecorp.com:5000/ocp4/openshift4:openshfit-apiserver-4.4.4-t1 -n openshift-apiserverb
- 检查并等待推出状态
#oc rollout status -w deploy/apiserver -n openshift-apiserver
对于基本的 kube-apiserver 组件,情况有所不同。 首先,禁用相关算子的方法不起作用,kubeapiserver算子似乎不支持“非托管”功能。
#oc patch kubeapiserver.operator.openshift.io cluster --patch '{ "spec": b { "managementState": "Unmanaged" } }' --type=merge KubeAPIServer“集群”无效:spec.managementState: Invalid 值:“”:正文中的 spec.managementState 应该匹配 '^(托管|强制)$'
其次,似乎只是 pod 用于 kube-apiserver,而不是部署。虽然有办法为特定的 pod/容器设置图像,但我不知道如何应用设置。
#oc set image 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 的方法?感谢您提供任何信息。
【问题讨论】:
标签: components openshift kube-apiserver