KubernetesクラスタにHetznerCloudVolumes CSIをデプロイ
KubernetesクラスタをHetznerCloudに秒で作ることができるようになったので、次は、Hetznerの永続ボリュームをプロビジョニングできるようにします。
Secretの登録
HetznerのAPI Tokenを払い出して以下のようなsecretリソースのマニフェストを書いてapplyします。
apiVersion: v1
kind: Secret
metadata:
name: hcloud-csi
namespace: kube-system
stringData:
token: Token
Kubernetesバージョンに適合したCSIドライバーのデプロイ
対象のKubernetesクラスタのバージョンにあったCSIドライバーをデプロイします (適合票はGithubリポジトリ参照)
kubectl apply -f https://raw.githubusercontent.com/hetznercloud/csi-driver/v1.5.1/deploy/kubernetes/hcloud-csi.yml
StorageClassが作成されたことを確認。
# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
hcloud-volumes (default) csi.hetzner.cloud Delete WaitForFirstConsumer true 2m4s
Podを作成
作成したStorageClassを使ってVolumeをプロビジョニングしてみる。そのボリュームをテスト用のPodにアタッチ。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: csi-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: hcloud-volumes
---
kind: Pod
apiVersion: v1
metadata:
name: my-csi-app
spec:
containers:
- name: my-frontend
image: busybox
volumeMounts:
- mountPath: "/data"
name: my-csi-volume
command: [ "sleep", "1000000" ]
volumes:
- name: my-csi-volume
persistentVolumeClaim:
claimName: csi-pvc
HetznerCloudのコンソールからストレージが作成されたことが確認できます。
Podから状況を見ると/dataにマウントされているのがわかります。
kubectl exec -it my-csi-app -- df -h
Filesystem Size Used Available Use% Mounted on
overlay 37.5G 4.8G 31.2G 13% /
tmpfs 64.0M 0 64.0M 0% /dev
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/disk/by-id/scsi-0HC_Volume_8597277
9.8G 36.0M 9.7G 0% /data
/dev/sda1 37.5G 4.8G 31.2G 13% /dev/termination-log
/dev/sda1 37.5G 4.8G 31.2G 13% /etc/resolv.conf
/dev/sda1 37.5G 4.8G 31.2G 13% /etc/hostname
/dev/sda1 37.5G 4.8G 31.2G 13% /etc/hosts
shm 64.0M 0 64.0M 0% /dev/shm
tmpfs 1.9G 12.0K 1.9G 0% /var/run/secrets/kubernetes.io/serviceaccount
tmpfs 1.9G 0 1.9G 0% /proc/acpi
tmpfs 64.0M 0 64.0M 0% /proc/kcore
tmpfs 64.0M 0 64.0M 0% /proc/keys
tmpfs 64.0M 0 64.0M 0% /proc/timer_list
tmpfs 64.0M 0 64.0M 0% /proc/timer_stats
tmpfs 64.0M 0 64.0M 0% /proc/sched_debug
tmpfs 1.9G 0 1.9G 0% /proc/scsi
tmpfs 1.9G 0 1.9G 0% /sys/firmware
以上