Rook/Ceph v1.15 から v1.16 さらに v1.17 へのアップグレード手順(Helm版)

基本

helmでデプロイされたバージョンの確認

helm list -n rook-ceph

クラスター HEALTH の確認

kubectl -n rook-ceph get cephcluster

rook-ceph-operator podの確認

kubectl -n rook-ceph get pods -l app=rook-ceph-operator

Deploymentのバージョン確認(単発)

kubectl -n rook-ceph get deployments \
  -l rook_cluster=rook-ceph \
  -o jsonpath='{range .items[*]}{.metadata.name}{"  req/upd/avl: "}{.spec.replicas}{"/"}{.status.updatedReplicas}{"/"}{.status.readyReplicas}{"  rook-version="}{.metadata.labels.rook-version}{"\n"}{end}'

Deploymentのバージョン確認(watch)

watch --exec kubectl -n rook-ceph get deployments \
  -l rook_cluster=rook-ceph \
  -o jsonpath='{range .items[*]}{.metadata.name}{"  req/upd/avl: "}{.spec.replicas}{"/"}{.status.updatedReplicas}{"/"}{.status.readyReplicas}{"  rook-version="}{.metadata.labels.rook-version}{"\n"}{end}'

Deploy(Upgrade)

helm upgrade rook-ceph rook-release/rook-ceph \
  --namespace rook-ceph \
  --version v1.x.y

helm upgrade rook-ceph-cluster rook-release/rook-ceph-cluster \
  --namespace rook-ceph \
  --set operatorNamespace=rook-ceph \
  -f cluster-values.yaml \
  --version v1.x.y

cluster-values.yaml

cephClusterSpec:
  storage:
    nodes:
    - devices:
      - name: /dev/nvme0n1p3
      name: k8s-worker1
    - devices:
      - name: /dev/nvme0n1p3
      name: k8s-worker2
    - devices:
      - name: /dev/nvme0n1p3
      name: k8s-worker3
    useAllDevices: false
    useAllNodes: false

Helm repo の更新

helm repo update

利用可能な v1.x チャートのバージョンを確認します。

curl -s https://charts.rook.io/release/index.yaml | grep "version: v1.x"

最新の v1.x.y をデプロイします。

Rook/Ceph v1.15 to v1.16

# 事前確認
kubectl -n rook-ceph get cephcluster
kubectl -n rook-ceph get pods | grep holder  # 何も出ないこと

# バージョン確認
helm repo update
curl -s https://charts.rook.io/release/index.yaml | grep "version: v1.16"

helm upgrade rook-ceph rook-release/rook-ceph \
  --namespace rook-ceph \
  --reset-values \
  --version v1.16.9

“Deploymentのバージョン確認(watch)”で全てバージョンが上がったことを確認して次に進む

helm upgrade rook-ceph-cluster rook-release/rook-ceph-cluster \
  --namespace rook-ceph \
  --set operatorNamespace=rook-ceph \
  -f cluster-values.yaml \
  --version v1.16.9

$ helm list -n rook-ceph
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
rook-ceph               rook-ceph       7               2026-03-07 18:38:29.120698231 +0900 JST deployed        rook-ceph-v1.16.9               v1.16.9    
rook-ceph-cluster       rook-ceph       5               2026-03-07 18:46:51.587038792 +0900 JST deployed        rook-ceph-cluster-v1.16.9       v1.16.9    
$ kubectl -n rook-ceph get cephcluster
NAME        DATADIRHOSTPATH   MONCOUNT   AGE    PHASE   MESSAGE                        HEALTH      EXTERNAL   FSID
rook-ceph   /var/lib/rook     3          608d   Ready   Cluster created successfully   HEALTH_OK              18be74a6-d73c-4f2f-b5c6-267d7e2b43c9
$ kubectl -n rook-ceph get pods -l app=rook-ceph-operator
NAME                                  READY   STATUS    RESTARTS   AGE
rook-ceph-operator-8545c779d8-xg52s   1/1     Running   0          14m
$ kubectl -n rook-ceph get deployments   -l rook_cluster=rook-ceph   -o jsonpath='{range .items[*]}{.metadata.name}{"  req/upd/avl: "}{.spec.replicas}{"/"}{.status.updatedReplicas}{"/"}{.status.readyReplicas}{"  rook-version="}{.metadata.labels.rook-version}{"\n"}{end}'
rook-ceph-crashcollector-k8s-worker1  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-crashcollector-k8s-worker2  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-crashcollector-k8s-worker3  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-exporter-k8s-worker1  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-exporter-k8s-worker2  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-exporter-k8s-worker3  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-mds-ceph-filesystem-a  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-mds-ceph-filesystem-b  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-mgr-a  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-mgr-b  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-mon-a  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-mon-b  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-mon-c  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-osd-0  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-osd-1  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-osd-2  req/upd/avl: 1/1/1  rook-version=v1.16.9
rook-ceph-rgw-ceph-objectstore-a  req/upd/avl: 1/1/1  rook-version=v1.16.9

Rook/Ceph v1.16 to v1.17

K8Sはv1.27以上であること → OK

$ kubectl version
Client Version: v1.33.9
Kustomize Version: v5.6.0
Server Version: v1.33.9

# 事前確認
kubectl -n rook-ceph get cephcluster
kubectl -n rook-ceph get pods | grep holder  # 何も出ないこと

# バージョン確認
helm repo update
curl -s https://charts.rook.io/release/index.yaml | grep "version: v1.17"

helm upgrade rook-ceph rook-release/rook-ceph \
  --namespace rook-ceph \
  --reset-values \
  --version v1.17.9

“Deploymentのバージョン確認(watch)”で全てバージョンが上がったことを確認して次に進む

helm upgrade rook-ceph-cluster rook-release/rook-ceph-cluster \
  --namespace rook-ceph \
  --set operatorNamespace=rook-ceph \
  -f cluster-values.yaml \
  --version v1.17.9
Copied title and URL