3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI File Storage with Lustre に OKE の Pod からアクセスする

Last updated at Posted at 2025-04-30

はじめに

OCI File Storage with Lustre がリリースされました!
Kubernetes用のCSIドライバも提供されていて、OKE用のPV/PVCも作れるようになっていますが、この記事の執筆の時点で、LustreクライアントがインストールされたOKEワーカー・ノード用のイメージが提供されていません。

ということで、LustreクライアントがインストールされたOKEワーカー・ノード用のイメージを作成して、OKEのノード・プールを作成してみたいと思います。そうすればこのノード上にデプロイされたPodはめでたくLustreをマウントできます。

作業手順

  1. ワーカー・ノード用イメージを作成する
  2. OKEのノード・プールを作成する
  3. PV/PVCを作成する
  4. PodからLustreファイル・システムにアクセスする

1. ワーカー・ノード用イメージを作成する

1-1. イメージOCIDの取得

OKEのワーカー・ノード用のイメージはOracleから提供されています。
Linux 8.xのOKE用イメージのOCIDは本来はここで取得可能です。

が、しかしながら最新のOKE 1.32.1用のイメージがまだ掲載されていません!
(近日掲載されるとは思いますが...)

ということで、最新イメージのOCIDを探さないといけないのですが、1.32.1のノード・プールを作成すると、使用しているイメージが出てきます。

image.png

イメージ名のところがリンクになっているので、ここをクリックすると詳細画面に遷移して、ここでこのイメージのOCIDが取得できます。

image.png

※ イメージのOCIDはリージョン毎に異なります。

私が検証した時点では、通常のノード・プールであれば、
Oracle-Linux-8.10-2025.02.28-0-OKE-1.32.1-760
GPUを搭載したノードプールを作成するのであれば、
Oracle-Linux-8.10-Gen2-GPU-2025.02.28-0-OKE-1.32.1-760
が選択肢となります。

1-2. インスタンスの起動 & Lustreクライアントのインストール

このイメージを使って、まずは通常のコンピュート・インスタンスとして起動します。

image.png

起動した後は、sshでログインして、Lustreクライアントをインストールします。
Lustreクライアントのインストールについては、以下のドキュメンテーションやQiitaの記事を参照して下さい。

1-3. カスタム・イメージの作成

Lustreクライアントをインストールしたインスタンスからカスタム・イメージを作成します。
コンソールのインスタンス詳細画面から「アクション」「カスタム・イメージを作成」を選択します。

image.png

ここでは "oke-woker-base-1.32.1" という名前でカスタム・イメージを作成しました。

image.png

カスタム・イメージの詳細画面でこのイメージのOCIDが確認できます。このOCIDを使ってこの後ノード・プールを作成します。

image.png

2. OKEのノード・プールを作成する

コンソールからだと、先ほど作成したカスタム・イメージを選択してノード・プールを作成することができませんが、APIとしてはサポートしていますので、CLIを使ってノード・プールを作成します。

oci ce node-pool create \
  -c ocid1.compartment.oc1..aaaaaaaaxxxxxxxxxxx \
  --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaxxxxxxxxxxxxx \
  --name Lustre_Nodepool \
  --kubernetes-version v1.32.1 \
  --node-shape VM.Standard.E5.Flex \
  --placement-configs '[{"availability-domain": "OcIE:US-ASHBURN-AD-1","subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaaxxxxxxxxxxxxxxx"}]' \
  --size 2 \
  --node-image-id ocid1.image.oc1.iad.aaaaaaaauxxxxxxxxxxxx \
  --node-shape-config '{"ocpus": 1.0, "memoryInGBs": 8.0}'  \
  --ssh-public-key "ssh-rsa AAAABxxxxxxxxxxJHw== rsa-key-yyyymmdd"

OKEのコンソール画面から無事カスタム・イメージを使ってノード・プールが作成されていることを確認して下さい。

image.png

3. PV/PVCを作成する

ドキュメンテーションはこちらにあります。

3-1. PersistentVolume

volumeHandleの部分は、File Storage with Lustre のコンソールに表示されるマウント・コマンドの情報を設定します。

image.png

# lustre-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: lustre-pv
spec:
  capacity:
    storage: 31Ti
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: lustre.csi.oraclecloud.com
    volumeHandle: "10.0.2.66@tcp:/lustrefs"
    fsType: lustre
    volumeAttributes:
      setupLnet: "true”

3-2. PersistentVolumeClaim

# lustre-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: lustre-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  volumeName: lustre-pv
  resources:
    requests:
      storage: 31Ti

4. PodからLustreファイル・システムにアクセスする

前述のPV/PVCをデプロイし、PVCを使ってLustreファイル・システムをマウントしたPodをデプロイします。

# lustre-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: lustre-pod
spec:
  containers:
    - name: busybox
      image: busybox:latest
      command:
      - sleep
      - infinity
      volumeMounts:
        - name: persistent-storage
          mountPath: /data
  volumes:
  - name: persistent-storage
    persistentVolumeClaim:
      claimName: lustre-pvc

では、Podをデプロイして、Lustreファイル・システムにアクセスしてみましょう。

$ kubectl apply -f lustre-pod.yaml 
pod/lustre-pod created

$ kubectl exec lustre-pod -- touch /data/test.txt

$ kubectl exec lustre-pod -- ls -l /data/test.txt
-rw-r--r--    1 root     root             0 Apr 29 13:41 /data/test.txt

$ kubectl exec lustre-pod -- rm  /data/test.txt

$ kubectl delete pod lustre-pod
pod "lustre-pod" deleted

まとめ

カスタム・イメージはエクスポートしておけば、リージョンを超えて複数のプロジェクトで使いまわせます。

OKEのノード・プールをアップグレードしてしまうと、Lustreクライアントがインストールされていないイメージに入れ替わってしまうので注意して下さい。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?