Closed8
rook operator Upgrade(1.6⇒1.8)
- KubernetesのUpgradeを行っていたところ以下のエラーが出力され、OperatorがCrashLoopBackとなった
- 対応するために、rookのアップグレードを行う
- とりあえず、公式を確認
- 手順はありそうなので、順次アップグレードしてみる
- 現在の環境は以下の通り
- Kubernetes:v1.25.16
- Rook:rook/ceph:v1.6.1
- バージョンアップ先 Rook:v1.7.11
- いったん手順通り実施してみる
# 各 namespace 名を変数に定義
$ ROOK_CLUSTER_NAMESPACE=rook-ceph
$ ROOK_OPERATOR_NAMESPACE=rook-ceph
# コードダウンロード
$ git clone --single-branch --depth=1 --branch v1.7.11 https://github.com/rook/rook.git
$ cd rook/cluster/examples/kubernetes/ceph
# Namespace の置換
$ sed -i.bak \
-e "s/\(.*\):.*# namespace:operator/\1: $ROOK_OPERATOR_NAMESPACE # namespace:operator/g" \
-e "s/\(.*\):.*# namespace:cluster/\1: $ROOK_CLUSTER_NAMESPACE # namespace:cluster/g" \
common.yaml
- CRDからアップデートしてみる
$ kubectl apply -f common.yaml -f crds.yaml
...
customresourcedefinition.apiextensions.k8s.io/volumes.rook.io configured
error: resource mapping not found for name: "00-rook-privileged" namespace: "" from "common.yaml": no matches for kind "PodSecurityPolicy" in version "policy/v1beta1"
ensure CRDs are installed first
- エラーに・・・
- 以下の記事を参考に、コメントアウトしてみる
common.yaml
# 以下の範囲をコメントアウトする
# OLM: BEGIN CLUSTER POD SECURITY POLICY
...
## OLM: END CLUSTER POD SECURITY POLICY BINDINGS
- 再度以下を実行し、正常に完了した
$ kubectl apply -f common.yaml -f crds.yaml
- CRDの更新が完了したので、rook operatorをアップデーしていく
- 無事にコンテナ群はアップデートされた
- ceph も大部分が更新がかかった
$ kubectl -n $ROOK_OPERATOR_NAMESPACE set image deploy/rook-ceph-operator rook-ceph-operator=rook/ceph:v1.7.11
deployment.apps/rook-ceph-operator image updated
$ kubectl get po
NAME READY STATUS RESTARTS AGE
csi-cephfsplugin-nnnjm 3/3 Running 0 2m33s
csi-cephfsplugin-npms2 3/3 Running 0 2m26s
csi-cephfsplugin-pb6b8 3/3 Running 0 90s
csi-cephfsplugin-provisioner-588b6bb4b9-bhwwh 6/6 Running 0 2m34s
csi-cephfsplugin-provisioner-588b6bb4b9-q8xvj 6/6 Running 0 2m34s
csi-rbdplugin-6ltx6 3/3 Running 0 2m30s
csi-rbdplugin-cbcgd 3/3 Running 0 117s
csi-rbdplugin-p45sj 3/3 Running 0 2m35s
csi-rbdplugin-provisioner-7c6cc897c9-b8zlk 6/6 Running 0 2m35s
csi-rbdplugin-provisioner-7c6cc897c9-qpkjt 6/6 Running 0 2m35s
rook-ceph-crashcollector-nd01-7f98d8b777-vvnz8 1/1 Running 0 3m10s
rook-ceph-crashcollector-nd02-7f48656fcb-zqsc7 1/1 Running 0 3m8s
rook-ceph-crashcollector-nd03-5dfb456b4f-9bfqm 1/1 Running 0 3m6s
rook-ceph-mds-myfs-a-d46b86867-jbzfm 1/1 Running 0 64m
rook-ceph-mds-myfs-b-5cbfb8d4f7-q6qcn 1/1 Running 4 (64m ago) 10d
rook-ceph-mgr-a-75959978b6-pnndw 1/1 Running 0 2m40s
rook-ceph-mon-b-8578d64f8b-7gmv7 1/1 Running 131 (64m ago) 2y195d
rook-ceph-mon-c-7d54fdd95-hsmc5 1/1 Running 22 (64m ago) 353d
rook-ceph-mon-e-579b94b7d6-mcgb2 1/1 Running 5 (63m ago) 13d
rook-ceph-operator-5bdb55bc78-5n5xx 1/1 Running 0 3m34s
rook-ceph-osd-0-86d7f4f9cb-gsrqc 1/1 Running 0 2m19s
rook-ceph-osd-1-68c88f6c8b-x2fxs 1/1 Running 0 117s
rook-ceph-osd-2-7db8bcb459-ns4bb 1/1 Running 0 2m5s
rook-ceph-osd-prepare-nd01-dchbn 0/1 Completed 0 2m28s
rook-ceph-osd-prepare-nd02-8fvdp 0/1 Completed 0 2m25s
rook-ceph-osd-prepare-nd03-dhwvm 0/1 Completed 0 2m22s
rook-ceph-tools-57787758df-cl2kf 1/1 Running 0 64m
- バージョンもアップデートされていた
$ kubectl -n $ROOK_CLUSTER_NAMESPACE get deployment -l rook_cluster=$ROOK_CLUSTER_NAMESPACE -o jsonpath='{range .items[*]}{"rook-version="}{.metadata.labels.rook-version}{"\n"}{end}' | sort | uniq
rook-version=v1.7.11
- operatorのログを確認したところ、CronJobが消せない旨のログあり
- CronJob 事態は無くなっていたので、とりあえずスキップ
$ kubectl logs -f rook-ceph-operator-xxxxxx
2024-01-03 15:41:02.549134 E | ceph-crashcollector-controller: failed to delete CronJob v1beta1 "rook-ceph-crashcollector-pruner": no matches for kind "CronJob" in version "batch/v1beta1"
- Ceph で PVC 作っていた
- Harbor で利用
- Harborのログイン後、プロジェクトがぐるぐるして見れない
- Harbor の Pod を再起動
- 一部 Pod が起動しない・・・
- PV が 二重でマウントされていたのでノード事再起動
- 上記対応でログイン、プロジェクトの参照まで出来た
- Cephが正常に使えることを確認
- 同様に1.7か1.8にアップグレードしてみる
- アップグレード前:1.7.11
- アップグレード後:1.8.10
- 手順は以下を参考に。
- 手順は一緒
-
PodSecurityPolicy
のエラーは1.7の時と同様なエラーが発生 - PodSecurityPolicyの箇所をコメントアウト
$ ROOK_CLUSTER_NAMESPACE=rook-ceph
$ ROOK_OPERATOR_NAMESPACE=rook-ceph
$ git clone --single-branch --depth=1 --branch v1.8.10 https://github.com/rook/rook.git
$ cd rook/deploy/examples
$ sed -i.bak \
-e "s/\(.*\):.*# namespace:operator/\1: $ROOK_OPERATOR_NAMESPACE # namespace:operator/g" \
-e "s/\(.*\):.*# namespace:cluster/\1: $ROOK_CLUSTER_NAMESPACE # namespace:cluster/g" \
common.yaml
$ kubectl apply -f common.yaml -f crds.yaml
$ kubectl -n $ROOK_OPERATOR_NAMESPACE set image deploy/rook-ceph-operator rook-ceph-operator=rook/ceph:v1.8.10
deployment.apps/rook-ceph-operator image updated
- 一部ノードで
DiskPressure
で Evictedに - ノード自体はディスク容量があった為、不具合か?
- Evicted な Pod はノードの状態が解消したのちに削除して再作成した
Warning Evicted 17s kubelet The node had condition: [DiskPressure].
- アップグレードは正常に成功した
$ kubectl get po
NAME READY STATUS RESTARTS AGE
csi-cephfsplugin-2rzjk 3/3 Running 0 19m
csi-cephfsplugin-42sg8 3/3 Running 0 18m
csi-cephfsplugin-p4szb 3/3 Running 0 19m
csi-cephfsplugin-provisioner-765574dfdb-2vkp9 6/6 Running 0 19m
csi-cephfsplugin-provisioner-765574dfdb-ngcpq 6/6 Running 0 19m
csi-rbdplugin-mpsw5 3/3 Running 0 19m
csi-rbdplugin-nh444 3/3 Running 0 12m
csi-rbdplugin-provisioner-dc85dcc5d-lwgp4 6/6 Running 0 19m
csi-rbdplugin-provisioner-dc85dcc5d-rlcp7 6/6 Running 0 19m
csi-rbdplugin-vb4xz 3/3 Running 0 18m
rook-ceph-crashcollector-nd01-75dd89856f-r67jl 1/1 Running 0 18m
rook-ceph-crashcollector-nd02-ccbbcd7c8-ws5q7 1/1 Running 0 18m
rook-ceph-crashcollector-nd03-9784dc56c-8bjvx 1/1 Running 0 19m
rook-ceph-mds-myfs-a-c46bdd98c-gh2dn 1/1 Running 0 19m
rook-ceph-mds-myfs-b-557999ddf9-8pvtb 1/1 Running 0 18m
rook-ceph-mgr-a-7d8468c44f-pb8gb 1/1 Running 0 3m13s
rook-ceph-mon-b-5dc496c8f5-fmrs4 1/1 Running 0 19m
rook-ceph-mon-c-7d54fdd95-hsmc5 1/1 Running 23 (79m ago) 353d
rook-ceph-mon-e-794d9698df-qcvc6 1/1 Running 0 18m
rook-ceph-operator-56dc99c7c4-t7kcf 1/1 Running 0 20m
rook-ceph-osd-0-784798f8fd-4p27z 1/1 Running 0 2m36s
rook-ceph-osd-1-77cd785688-7vxhp 1/1 Running 0 2m12s
rook-ceph-osd-2-85df6f7bd7-pcztz 1/1 Running 0 109s
rook-ceph-osd-prepare-nd01-vpgtv 0/1 Completed 0 2m47s
rook-ceph-osd-prepare-nd02-5lssm 0/1 Completed 0 2m44s
rook-ceph-osd-prepare-nd03-gknlv 0/1 Completed 0 2m41s
rook-ceph-tools-57787758df-cl2kf 1/1 Running 1 (79m ago) 157m
$ kubectl -n $ROOK_CLUSTER_NAMESPACE get deployment -l rook_cluster=$ROOK_CLUSTER_NAMESPACE -o jsonpath='{range .items[*]}{"rook-version="}{.metadata.labels.rook-version}{"\n"}{end}' | sort | uniq
rook-version=v1.8.10
このスクラップは2024/01/04にクローズされました