TopoLVM
https://raw.githubusercontent.com/topolvm/topolvm/main/docs/img/TopoLVM_logo.svg
QNAPで逃がす
TS-230からポチポチしてiSCSIターゲット機能enable and LUN作成 iSCSIでマウント
code:bash
$ sudo iscsiadm -m discovery -t sendtargets -p <QNAP FQDN>
$ sudo iscsiadm -m node --login -p <QNAP FQDN>
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3G 0 disk /var/lib/kubelet/pods/6a54867f-3cf7-447d-8cf0-d0c6d9e4b707/volumes/kubernetes.io~csi/pvc-ea1697f9-fad5-46c7-8ede-19a68444f332/mount
sdb 8:16 0 260G 0 disk
/dev/sdb に見えるようになる
code:bash
$ sudo apt install lvm2
$ sudo pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
$ sudo vgcreate iscsi-renjo-vg /dev/sdb
Volume group "iscsi-renjo-vg" successfully created
lvmd
やる、とりあえず逃げなので直入れ
kube-scheduler
kubeadm 環境だと /etc/kubernetes/manifests/kube-scheduler.yaml とかをいじる
topolvm
code:bash
$ helm install topolvm ./topolvm/charts/topolvm/ -f ./topolvm-values.yaml -n topolvm-system
topolvm-values.yaml のオリジナルは ここ lvmdをfalse
scheduler は topolvm-scheduler のこと、新しいkube-schedulerを入れるわけではない
なのでenable
node.volumes は [] だと虚無になるので全部コメントアウト
controller.replicaCount はsingle nodeなので1
code:bash
$ kubectl get pod -n topolvm-system
NAME READY STATUS RESTARTS AGE
topolvm-controller-64bfff66f6-c6dh6 4/4 Running 0 6m24s
topolvm-node-jqpjm 3/3 Running 0 6m24s
topolvm-scheduler-clmw6 1/1 Running 0 6m24s
code:podpvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: topolvm-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: topolvm-provisioner
---
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app.kubernetes.io/name: my-pod
spec:
containers:
- name: ubuntu
image: quay.io/cybozu/ubuntu:20.04
volumeMounts:
- mountPath: /test1
name: my-volume
volumes:
- name: my-volume
persistentVolumeClaim:
claimName: topolvm-pvc
これでLVMを切り出すデバイスが生まれるのでそのPVCを使ってCeph OSDを構築する