Openshift は、プラットフォーム全体をライブで更新する更新方法を提供します。私は(おそらく他の人も)特定のコンポーネントを更新する必要があります。
コンソール、openshift-apiserver などのコンポーネントを新しいコンテナー イメージで更新するには、オペレーターを管理し、それに応じてイメージを設定することで問題ありません。たとえば、openshift-apiservercomponent を更新するには、以下の手順が機能します。
- openshift apiserver オペレーターの管理を無効にする
#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 ロールアウト ステータス -w deploy/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)$' と一致する必要があります
次に、デプロイメントではなく、kube-apiserver にポッドが使用されているようです。特定のポッド/コンテナのイメージを設定する方法はありますが、設定を適用する方法がわかりません。
#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 を手動で更新する方法を見つけるのを手伝ってくれる人はいますか? 情報をありがとう。