オラクルクラウド OCI で、OKEっていうサービスを使ってます。
OKEって、kubernetes の SAAS サービスです。
インスタンス代金とブロックボリューム代金以外は、無料のかなりお得なサービスです。
Dockerが大好きな人達なら是非、活用すれば良いと思いますね。
kubernetesのインフラ部分を OKE が、まかなってくれるので、大変、便利ですよ。
と、ここまでは、ほめておきます。
しかし、時々、バージョンアップしないとサポートしないと脅されたりするので、仕方なくUpgrade作業が、1年に2回ぐらい訪れます。
前は、面倒だったのですが、最近は、ノードのインスタンス達をサイクル出来るようになったので、楽になりましたね。
で、本題はここからなんですよね。
ハージョンアップって、クラストとノードのバージョンを更新すれば良いんですけど、ノードは、バージョンを更新しても、動作中のインスタンスは、更新されません。
なので、交換サイクルを行います。
ここで、適当なイメージを選択していると痛い目に合うように出来ています。
イメージって、OracleLinuxのバージョンイメージのことなんですが、kubernetes との互換性がわからないんで、間違うと普通に起動出来なくなります。
しかも、OKE専用イメージってのが用意されたんですが、こいつは、ストレージ容量が更新されないようで、Disk圧迫を食らい、Podが起動出来なくなったりします。<- これって、バグじゃないの
なので、動作中のノードには、サイクルをしないで、別プールを作って、確実に起動するステージを作ってからバージョンアップしましょうね。
現状(2026年4月18日)、情報です。
シェイプ:A1 Flex
バージョン:1.35.0 は、aarch64-2026.02.28-0 で起動しませんでした。
バージョン:1.34.2 を使いましょうね。
ということで、またまた、OKEがアップグレードしたようで、対応しようと作業しました。
やはり、v1.36.1 に対応する node は、起動しませんでしたね。プラットフォーム・イメージ ですよ。
そこで、作成されたインスタンスの状態をcloud shellで、確認してみました。
[ 422.886133] kubelet[44896]: I0711 00:57:54.131951 44896 feature_gate.go:477] "Warning: setting GA feature gate. It will be removed in a future release." featureGate="DynamicResourceAllocation" value=true[ 422.889024] kubelet[44896]: I0711 00:57:54.131996 44896 feature_gate.go:477] "Updated" featureGates={"DynamicResourceAllocation":true}[ 422.890924] kubelet[44896]: E0711 00:57:54.132972 44896 run.go:72] "command failed" err="failed to validate kubelet configuration, error: kubelet is configured to not run on a host using cgroup v1. cgroup v1 support is unsupported and will be removed in a future release, path: &TypeMeta{Kind:,APIVersion:,}"
というような状況でしたね。
これを gemini様に伺うと、ホストOSが、cgroup v1 で、起動している為、新しいバージョンの kubelet が cgroup v1 を拒否する設定になっている(またはすでにサポートを終了している) ためです とのことだった。
そもそも、A1.FLEXの プラットフォームイメージは、8までしか提供されていないので、こんなことになっていると思いますね。
https://docs.oracle.com/cd/F22978_01/boot/cgroups-EnableCGrp2.html#topic_y1v_t1f_svb
つまり、新しい kubenetes の要件にあっていないということですね。
Oracleさん、ちゃんと検証していないですよね。
といことで、対策は、ブート時に、cgroup v2 で、起動するようにする必要がある為、以下のようにカーネルに引数を追加しろとのことです。
grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="systemd.unified_cgroup_hierarchy=1" && reboot
しかし、これを設定する方法なんて無いんですよね。
なぜなら、root で、実行する方法が無いからですね。
whoami -> ocarun
sudo を使おうもんなら、パスワード入れろと言われます。
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required
そもそも、こんな小細工で、ブート出来ても、折角のSaas管理のkubernetesなのに、nodeの増加の度にこんなこと、やってられないですよね。
ということで、OKEワーカー・ノードのイメージ に変更して、ノードを作成すると、起動するんですね。
Oracle-Linux-9.7-aarch64-2026.06.15-0-OKE-1.36.1-1505
OSが9なので調整されているんでしょうね。
しかし、今度は、75GBで、ボリュームを指定したのに、少なすぎるボリュームになってしまいます。
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 8657912 140 8657772 1% /dev/shm
tmpfs 3463168 10388 3452780 1% /run
efivarfs 256 14 243 6% /sys/firmware/efi/efivars
/dev/mapper/ocivolume-root 30867456 8478872 22388584 28% /
/dev/sda2 2031616 414980 1616636 21% /boot
/dev/mapper/ocivolume-oled 15663104 154180 15508924 1% /var/oled
/dev/sda1 102156 7900 94256 8% /boot/efi
tmpfs 1731580 0 1731580 0% /run/user/988
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat FAT16 BBF7-A736 92M 8% /boot/efi
├─sda2 xfs e92cbce5-d8b8-456e-942e-25eb67631fce 1.5G 20% /boot
└─sda3 LVM2_member LVM2 001 z5bAq5-ObV8-7GGK-jlL2-2S6R-w27X-AZM5Nb
├─ocivolume-root xfs 58977eb5-acd1-477b-bdc7-b0eb7b05afa7 21.4G 27% /var/lib/kubelet/pods/9bfaf205-9f25-4607-86d4-2daf4f1d7d76/volume-subpaths/chroot-ip6tables/install-cni-ips/11
│ /var/lib/kubelet/pods/9bfaf205-9f25-4607-86d4-2daf4f1d7d76/volume-subpaths/chroot-iptables/install-cni-ips/10
│ /var/lib/kubelet/pods/892a2ca5-b629-420f-86f6-dedde6a1d55e/volume-subpaths/chroot-iptables/kube-proxy/9
│ /var/lib/kubelet/pods/892a2ca5-b629-420f-86f6-dedde6a1d55e/volume-subpaths/chroot-iptables/kube-proxy/8
│ /var/lib/kubelet/pods/892a2ca5-b629-420f-86f6-dedde6a1d55e/volume-subpaths/chroot-iptables/kube-proxy/7
│ /var/lib/kubelet/pods/892a2ca5-b629-420f-86f6-dedde6a1d55e/volume-subpaths/chroot-iptables/kube-proxy/6
│ /var/lib/kubelet/pods/892a2ca5-b629-420f-86f6-dedde6a1d55e/volume-subpaths/chroot-iptables/kube-proxy/5
│ /var/lib/kubelet/pods/892a2ca5-b629-420f-86f6-dedde6a1d55e/volume-subpaths/chroot-iptables/kube-proxy/4
│ /var/lib/kubelet/pods/6f7e3fcf-60cf-4c77-861e-d499cfe27227/volume-subpaths/fss-driver-mounts/csi-node-driver/10
│ /var/lib/kubelet/pods/6f7e3fcf-60cf-4c77-861e-d499cfe27227/volume-subpaths/fss-driver-mounts/csi-node-driver/9
│ /var/lib/kubelet/pods/6f7e3fcf-60cf-4c77-861e-d499cfe27227/volume-subpaths/fss-driver-mounts/csi-node-driver/8
│ /var/lib/kubelet/pods/6f7e3fcf-60cf-4c77-861e-d499cfe27227/volume-subpaths/chroot-iscsiadm/csi-node-driver/5
│ /var/lib/containers/storage/overlay
│ /
└─ocivolume-oled xfs e392ff56-e796-41c4-82a1-3917935488e2 14.8G 1% /var/oled
折角、お金を払ってボリュームを増やしたのに、使えないとは、Oracleさんは、ボリューム泥棒ですね。
当然、rootが使えないので、ボリューム伸張することも不可能です。

ということで、gemini様に相談したところ、kubectl で、特権 pod を作成して、nodeにコマンドを叩き込む技を教えてもらいました。
kubectl run node-extender --rm -i --tty --restart=Never --image=curlimages/curl --overrides='{"spec":{"nodeName":"10.6.2.190","hostPID":true,"containers":[{"name":"extender","image":"alpine","command":["nsenter","-t","1","-m","-u","-i","-n","sh","-c","echo 1 > /sys/class/block/sda/device/rescan && (command -v growpart >/dev/null 2>&1 || dnf install -y cloud-utils-growpart) && growpart /dev/sda 3 && pvresize /dev/sda3 && lvextend -l +100%FREE /dev/mapper/ocivolume-root && xfs_growfs /"],"securityContext":{"privileged":true}}]}}'
無事、xfsを伸張出来ましたが、Oracleさん、修正してね。





