0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OKE Virtual Nodesのクラスタバージョンアップ手順を確認する

Posted at

はじめに

OKEのWorker NodeとしてサーバレスのVirtual Nodesを使った時のクラスタバージョンアップ手順を確認します。

2つのVirtual Nodeでクラスタを準備しました。

$ k get node
NAME         STATUS   ROLES          AGE   VERSION
10.0.1.150   Ready    virtual-node   67m   v1.26.2
10.0.1.191   Ready    virtual-node   67m   v1.26.2

Deploymentで各ノードにPodを一つずつデプロイしています。

$ k get pod -o wide -w
NAME                     READY   STATUS    RESTARTS   AGE     IP           NODE         NOMINATED NODE   READINESS GATES
nginx-748c667d99-ccx7q   1/1     Running   0          3m11s   10.0.5.198   10.0.1.150   <none>           <none>
nginx-748c667d99-jnr4z   1/1     Running   0          3m11s   10.0.5.2     10.0.1.191   <none>           <none>

バージョンアップ可否の確認

OCIコンソールでバージョンアップ可能であることを確認します。

スクリーンショット 2023-09-13 12.37.28.png

同様にノードプールにも!マークが付いています。

スクリーンショット 2023-09-13 12.39.28.png

バージョンアップ

コンソールのKubernetesの新バージョンを使用できますをクリックすると以下の画面になり、バージョンアップするバージョンを選択して、アップグレードをクリックします。

スクリーンショット 2023-09-13 12.40.00.png

操作はこれだけです。

コントロールプレーンのバージョンアップを実行すると、コントロールプレーン → ノードプル → ノードとバージョンアップしてくれます。

バージョンアップ中はこのような画面になります。

スクリーンショット 2023-09-13 12.40.37.png

バージョンアップが終わると、アイコンがグリーンに戻ります。

スクリーンショット 2023-09-13 13.01.19.png

ノードプールもバージョンアップしています。

スクリーンショット 2023-09-13 15.29.51.png

バージョンアップ時の動作

バージョンアップ時のクラスタの様子を確認しました。

ノード

従来のManaged Nodeの場合は、新しいバージョンのノードを追加して古いバージョンのノードを削除する動きでしたが、Virtual Nodeの場合はそのノードのままバージョンアップをしているようです。

$ k get node -w
NAME         STATUS   ROLES          AGE   VERSION
10.0.1.150   Ready    virtual-node   72m   v1.26.2
10.0.1.191   Ready    virtual-node   72m   v1.26.2
10.0.1.150   Ready    virtual-node   73m   v1.26.2
10.0.1.191   Ready    virtual-node   73m   v1.27.2
10.0.1.191   Ready    virtual-node   73m   v1.27.2
10.0.1.150   Ready    virtual-node   74m   v1.27.2
10.0.1.150   Ready    virtual-node   74m   v1.27.2
10.0.1.191   Ready    virtual-node   74m   v1.27.2

(Virtual)kubeletのバージョンも上がっています。

$ k describe node 10.0.1.150 |grep "Kubelet Version"
  Kubelet Version:            v1.27.2

なお、STATUSは常にReadyとなっていますが、何度か試してみたところ、NotReadyとなることもありました。
NotReadyの期間が短いため、コマンドで拾えない場合があるのかも知れないですね。

$ k get node -w
NAME         STATUS   ROLES          AGE   VERSION
10.0.1.205   Ready    virtual-node   13m   v1.26.2
10.0.1.220   Ready    virtual-node   14m   v1.26.2
10.0.1.220   Ready    virtual-node   14m   v1.26.2
10.0.1.205   NotReady   virtual-node   14m   v1.26.2
10.0.1.220   Ready      virtual-node   15m   v1.26.7
10.0.1.205   NotReady   virtual-node   14m   v1.26.7
10.0.1.205   Ready      virtual-node   14m   v1.26.7
10.0.1.220   Ready      virtual-node   15m   v1.26.7
10.0.1.205   Ready      virtual-node   17m   v1.26.7
10.0.1.220   Ready      virtual-node   18m   v1.26.7

Pod

わかりづらいのですが、Podが落ちて、同じノードで再作成されています。
2つのPod同時ではありませんが、一つ目のPodの再作成が終わらない状態で2つ目のPodがTerminatingになっているように見えます。
外部から疎通確認まではしていませんが、Virtual Nodeは通常のNodeと比べて、Podが立ち上がるのが遅いので、業務が停止しないようにバージョンアップするには、Node数やReplicasを調整して事前に確認した方が良さそうです。

バージョンアップ時の動きを見ていましたが、クラスタとしてはローリングでバージョンアップしていますが、Podのことまでは考えていないように見えました。

$ k get pod -o wide -w
NAME                     READY   STATUS    RESTARTS   AGE     IP           NODE         NOMINATED NODE   READINESS GATES
nginx-748c667d99-427vj   1/1     Running   0          8m39s   10.0.4.48    10.0.1.220   <none>           <none>
nginx-748c667d99-h2nsd   1/1     Running   0          8m39s   10.0.4.159   10.0.1.205   <none>           <none>
nginx-748c667d99-h2nsd   1/1     Running   0          12m     10.0.4.159   10.0.1.205   <none>           <none>
nginx-748c667d99-427vj   1/1     Running   0          12m     10.0.4.48    10.0.1.220   <none>           <none>
nginx-748c667d99-427vj   1/1     Terminating   0          12m     10.0.4.48    10.0.1.220   <none>           <none>
nginx-748c667d99-xns85   0/1     Pending       0          0s      <none>       <none>       <none>           <none>
nginx-748c667d99-xns85   0/1     ContainerCreating   0          0s      <none>       10.0.1.220   <none>           <none>
nginx-748c667d99-h2nsd   1/1     Running             0          12m     10.0.4.159   10.0.1.205   <none>           <none>
nginx-748c667d99-h2nsd   1/1     Terminating         0          12m     10.0.4.159   10.0.1.205   <none>           <none>
nginx-748c667d99-7vq9v   0/1     Pending             0          0s      <none>       <none>       <none>           <none>
nginx-748c667d99-h2nsd   1/1     Terminating         0          12m     10.0.4.159   10.0.1.205   <none>           <none>
nginx-748c667d99-7vq9v   0/1     Pending             0          0s      <none>       10.0.1.205   <none>           <none>
nginx-748c667d99-h2nsd   1/1     Terminating         0          12m     10.0.4.159   10.0.1.205   <none>           <none>
nginx-748c667d99-7vq9v   0/1     ContainerCreating   0          0s      <none>       10.0.1.205   <none>           <none>
nginx-748c667d99-h2nsd   0/1     Terminating         0          12m     10.0.4.159   10.0.1.205   <none>           <none>
nginx-748c667d99-xns85   0/1     ContainerCreating   0          1s      <none>       10.0.1.220   <none>           <none>
nginx-748c667d99-7vq9v   0/1     ContainerCreating   0          2s      <none>       10.0.1.205   <none>           <none>
nginx-748c667d99-xns85   0/1     ContainerCreating   0          2m19s   <none>       10.0.1.220   <none>           <none>
nginx-748c667d99-7vq9v   0/1     ContainerCreating   0          2m22s   <none>       10.0.1.205   <none>           <none>
nginx-748c667d99-xns85   1/1     Pending             0          2m34s   <none>       10.0.1.220   <none>           <none>
nginx-748c667d99-7vq9v   1/1     Pending             0          2m41s   <none>       10.0.1.205   <none>           <none>
nginx-748c667d99-7vq9v   1/1     Running             0          2m41s   10.0.5.168   10.0.1.205   <none>           <none>
nginx-748c667d99-xns85   1/1     Pending             0          2m49s   <none>       10.0.1.220   <none>           <none>
nginx-748c667d99-xns85   1/1     Running             0          2m51s   10.0.5.101   10.0.1.220   <none>           <none>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?