Closed8

rook operator Upgrade(1.6⇒1.8)

t_umet_ume
  • いったん手順通り実施してみる
# 各 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
t_umet_ume
  • 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
  • エラーに・・・
  • 以下の記事を参考に、コメントアウトしてみる

https://github.com/rook/rook/issues/10826#issuecomment-1802140423

common.yaml
# 以下の範囲をコメントアウトする
# OLM: BEGIN CLUSTER POD SECURITY POLICY
...
## OLM: END CLUSTER POD SECURITY POLICY BINDINGS

  • 再度以下を実行し、正常に完了した
$ kubectl apply -f common.yaml -f crds.yaml
t_umet_ume
  • 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
t_umet_ume
  • 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"
t_umet_ume
  • Ceph で PVC 作っていた
    • Harbor で利用
  • Harborのログイン後、プロジェクトがぐるぐるして見れない
  • Harbor の Pod を再起動
    • 一部 Pod が起動しない・・・
    • PV が 二重でマウントされていたのでノード事再起動
  • 上記対応でログイン、プロジェクトの参照まで出来た
    • Cephが正常に使えることを確認
t_umet_ume
  • 同様に1.7か1.8にアップグレードしてみる
    • アップグレード前:1.7.11
    • アップグレード後:1.8.10
  • 手順は以下を参考に。
    • 手順は一緒
    • PodSecurityPolicyのエラーは1.7の時と同様なエラーが発生
    • PodSecurityPolicyの箇所をコメントアウト

https://rook.io/docs/rook/v1.8/ceph-upgrade.html

$ 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
このスクラップは4ヶ月前にクローズされました