はじめに

共有k3sのshare-anchorに分散ストレージであるlonghornを導入したところ,PVの割り当てに失敗したため原因の調査と対応にあたりました.

TL;DR

【原因その1】 PV, PVCのマニフェストファイルについての知識が不足していた →【対策】longhornのUIからボリュームを作成した 【原因その2】仮想マシンのCPUが不足していた →【対策】vCPUのcore数を1増やした

Share-anchorの構成

https://cdsl-tut.esa.io/wiki/615 スクリーンショット 2022-02-17 180538.png (63.5 kB)

Volumeの状態がFaultに...

longhorn自体は2021年の12月に導入したのですが,ingressでブラウザに画面を表示するだけで満足していました. スクリーンショット 2021-12-02 153217.png (111.6 kB) ところが実際にPVを作成してマウントしようとするとFaultと表示されてしまうことがわかりました...

kubernetes完全に理解した(理解してない)

なにが起こっているのかわからなかったのでとりあえず自分でもやってみることにしました. まあさすがに導入した当人ですし,ドキュメントとかQiitaとか参照してテンプレ通りやればできるでしょうと高を括っていたのですが,kubernetesのPVとPVCについて,マニフェストファイルについてよくわかっていなかったので結局できませんでした.(恥ずかしいので今回作ったマニフェストファイルは載せません.勘弁してください.) https://longhorn.io/

UIで簡単に作れることが判明

longhornのドキュメントに書いてあるのに見落としていました... 早速VolumeタブからCreate Volumeを選択 スクリーンショット 2022-02-17 144004.png (66.1 kB) Nameはとりあえずlonghornにしました その後作成したVolumeのプルダウンメニュー(Operation)からCreate PV/PVCを選択 スクリーンショット 2022-02-17 144729.png (65.9 kB) PV Nameをlonghorn-pv,PVC Nameをlonghorn-pvcとしました. スクリーンショット 2022-02-17 145152.png (69.7 kB) するとなんということでしょう, あっという間にPVとPVCができあがりました!!! スクリーンショット 2022-02-17 145551.png (23.5 kB)

新たな壁

Podを立てようとしたところ,ステータスがContainerCreatingで止まっていることがわかりました... 原因調査のためにまずは現状の全てのPodの状態を調べてみました. スクリーンショット 2022-02-17 153154.png (38.8 kB) するとlonghorn-systemのinstance-managerの中にPending状態のPodが一部確認できました.

不覚のイージーミス...

このPodをkubectl describeコマンドで調べてみると... スクリーンショット 2022-02-17 155731.png (14.4 kB) あら スクリーンショット 2022-02-17 155756.png (14.3 kB) あらら CPUが足りていませんでした...! しかも同等の性能 (2vCPU, 50GB) にしたはずのanchor-2のがなぜか1vCPUになっていました... 完全に私のミスです

とりあえず増やしてみた

1 coreずつ増やしました. | VM | before | after | | -------- | -------- | --------| | anchor-s1 | 2 core | 3 core| | anchor-2 | 1 core | 2 core|

できた!!!

解決です. ようやくHealthyの文字を拝むことができました(健康大事!!!) スクリーンショット 2022-02-17 161147.png (15.6 kB)

まとめ

  • 公式ドキュメントをよく読みましょう
  • VMの設定は見直しましょう
  • Podが立たないときは詳細 (describe) を確認しましょう