mirror of
https://github.com/siderolabs/talos.git
synced 2025-10-30 16:01:12 +01:00
docs: add piraeus/drbd to storage documentation
How-To install Piraeus on a Talos cluster Signed-off-by: DJAlPee <DJAlPee@GitHub.com> Signed-off-by: Noel Georgi <git@frezbo.dev>
This commit is contained in:
parent
a982cabe70
commit
adce651034
@ -5,7 +5,7 @@ aliases:
|
|||||||
- ../../guides/storage
|
- ../../guides/storage
|
||||||
---
|
---
|
||||||
|
|
||||||
In Kubernetes, using storage in the right way is well-facilitated by the API.
|
In Kubernetes, using storage in the right way is well-facilitated by the API.
|
||||||
However, unless you are running in a major public cloud, that API may not be hooked up to anything.
|
However, unless you are running in a major public cloud, that API may not be hooked up to anything.
|
||||||
This frequently sends users down a rabbit hole of researching all the various options for storage backends for their platform, for Kubernetes, and for their workloads.
|
This frequently sends users down a rabbit hole of researching all the various options for storage backends for their platform, for Kubernetes, and for their workloads.
|
||||||
There are a _lot_ of options out there, and it can be fairly bewildering.
|
There are a _lot_ of options out there, and it can be fairly bewildering.
|
||||||
@ -107,6 +107,102 @@ talosctl -n <node ip> service kubelet restart
|
|||||||
|
|
||||||
Continue setting up [Mayastor](https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor) using the official documentation.
|
Continue setting up [Mayastor](https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor) using the official documentation.
|
||||||
|
|
||||||
|
### Piraeus / LINSTOR
|
||||||
|
|
||||||
|
* [Piraeus-Operator](https://piraeus.io/)
|
||||||
|
* [LINSTOR](https://linbit.com/drbd/)
|
||||||
|
* [DRBD Extension](https://github.com/siderolabs/extensions#storage)
|
||||||
|
|
||||||
|
#### Install Piraeus Operator V2 (recommended, when starting from scratch!)
|
||||||
|
|
||||||
|
There is already a how-to for Talos: [Link](https://github.com/piraeusdatastore/piraeus-operator/blob/v2/docs/how-to/talos.md)
|
||||||
|
|
||||||
|
#### Install Piraeus Operator V1
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD004 -->
|
||||||
|
<!-- markdownlint-disable MD007 -->
|
||||||
|
<!-- markdownlint-disable MD032 -->
|
||||||
|
<!-- markdownlint-disable MD025 -->
|
||||||
|
|
||||||
|
{{< tabpane lang="yaml" >}}
|
||||||
|
{{< tab header="Strategic merge patch" >}}
|
||||||
|
machine:
|
||||||
|
install:
|
||||||
|
extensions:
|
||||||
|
- image: ghcr.io/siderolabs/drbd:9.2.0-{{< release >}}
|
||||||
|
kernel:
|
||||||
|
modules:
|
||||||
|
- name: drbd
|
||||||
|
- name: drbd_transport_tcp
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< tab header="JSON patch" >}}
|
||||||
|
- op: add
|
||||||
|
path: /machine/install/extensions/-
|
||||||
|
value:
|
||||||
|
- image: ghcr.io/siderolabs/drbd:9.2.0-{{< release >}}
|
||||||
|
- op: add
|
||||||
|
path: /machine/kernel/modules/-
|
||||||
|
value:
|
||||||
|
- name: drbd
|
||||||
|
- name: drbd_transport_tcp
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< /tabpane >}}
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Apply config update on node
|
||||||
|
talosctl patch mc --patch-file install-drbd.yml
|
||||||
|
|
||||||
|
# Start upgrade of Talos with with current installed version to enable the extension
|
||||||
|
talosctl upgrade --image=ghcr.io/siderolabs/installer:{{< release >}}
|
||||||
|
|
||||||
|
# Create dedicated namespace for piraeus
|
||||||
|
kubectl create namespace piraeus
|
||||||
|
kubectl label ns piraeus pod-security.kubernetes.io/enforce=privileged
|
||||||
|
kubectl label ns piraeus pod-security.kubernetes.io/auth=privileged
|
||||||
|
kubectl label ns piraeus pod-security.kubernetes.io/warn=privileged
|
||||||
|
|
||||||
|
# Install Piraeus with Helm chart from GitHub repository
|
||||||
|
git clone --branch master https://github.com/piraeusdatastore/piraeus-operator.git
|
||||||
|
cd piraeus-operator
|
||||||
|
helm install piraeus-op ./charts/piraeus \
|
||||||
|
--namespace piraeus \
|
||||||
|
--set operator.satelliteSet.kernelModuleInjectionMode=None \ # Deprecated, but necessary!
|
||||||
|
--set etcd.enabled=false \
|
||||||
|
--set operator.controller.dbConnectionURL=k8s
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Create first storage pool and PVC
|
||||||
|
|
||||||
|
Before proceeding, install linstor plugin for kubectl:
|
||||||
|
https://github.com/piraeusdatastore/kubectl-linstor
|
||||||
|
|
||||||
|
Or use [krew](https://krew.sigs.k8s.io/): `kubectl krew install linstor`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Create device pool on a blank (no partitation table!) disk on node01
|
||||||
|
kubectl linstor physical-storage create-device-pool --pool-name nvme_lvm_pool LVM node01 /dev/nvme0n1 --storage-pool nvme_pool
|
||||||
|
```
|
||||||
|
|
||||||
|
piraeus-sc.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: simple-nvme
|
||||||
|
parameters:
|
||||||
|
csi.storage.k8s.io/fstype: xfs
|
||||||
|
linstor.csi.linbit.com/autoPlace: "3"
|
||||||
|
linstor.csi.linbit.com/storagePool: nvme_pool
|
||||||
|
provisioner: linstor.csi.linbit.com
|
||||||
|
volumeBindingMode: WaitForFirstConsumer
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Create storage class
|
||||||
|
kubectl apply -f piraeus-sc.yml
|
||||||
|
```
|
||||||
|
|
||||||
## NFS
|
## NFS
|
||||||
|
|
||||||
NFS is an old pack animal long past its prime.
|
NFS is an old pack animal long past its prime.
|
||||||
|
|||||||
@ -4,7 +4,7 @@ no_list: true
|
|||||||
linkTitle: "Documentation"
|
linkTitle: "Documentation"
|
||||||
cascade:
|
cascade:
|
||||||
type: docs
|
type: docs
|
||||||
lastRelease: v1.4.0
|
lastRelease: v1.4.4
|
||||||
kubernetesRelease: "1.27.1"
|
kubernetesRelease: "1.27.1"
|
||||||
prevKubernetesRelease: "1.26.3"
|
prevKubernetesRelease: "1.26.3"
|
||||||
theilaRelease: "v0.2.1"
|
theilaRelease: "v0.2.1"
|
||||||
|
|||||||
@ -120,6 +120,101 @@ talosctl -n <node ip> service kubelet restart
|
|||||||
|
|
||||||
Continue setting up [Mayastor](https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor) using the official documentation.
|
Continue setting up [Mayastor](https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor) using the official documentation.
|
||||||
|
|
||||||
|
### Piraeus / LINSTOR
|
||||||
|
|
||||||
|
* [Piraeus-Operator](https://piraeus.io/)
|
||||||
|
* [LINSTOR](https://linbit.com/drbd/)
|
||||||
|
* [DRBD Extension](https://github.com/siderolabs/extensions#storage)
|
||||||
|
|
||||||
|
#### Install Piraeus Operator V2 (recommended, when starting from scratch!)
|
||||||
|
|
||||||
|
There is already a how-to for Talos: [Link](https://github.com/piraeusdatastore/piraeus-operator/blob/v2/docs/how-to/talos.md)
|
||||||
|
|
||||||
|
#### Install Piraeus Operator V1
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD007 -->
|
||||||
|
<!-- markdownlint-disable MD032 -->
|
||||||
|
<!-- markdownlint-disable MD025 -->
|
||||||
|
|
||||||
|
{{< tabpane lang="yaml" >}}
|
||||||
|
{{< tab header="Strategic merge patch" >}}
|
||||||
|
machine:
|
||||||
|
install:
|
||||||
|
extensions:
|
||||||
|
- image: ghcr.io/siderolabs/drbd:9.2.2-{{< release >}}
|
||||||
|
kernel:
|
||||||
|
modules:
|
||||||
|
- name: drbd
|
||||||
|
- name: drbd_transport_tcp
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< tab header="JSON patch" >}}
|
||||||
|
* op: add
|
||||||
|
path: /machine/install/extensions/-
|
||||||
|
value:
|
||||||
|
* image: ghcr.io/siderolabs/drbd:9.2.2-{{< release >}}
|
||||||
|
* op: add
|
||||||
|
path: /machine/kernel/modules/-
|
||||||
|
value:
|
||||||
|
* name: drbd
|
||||||
|
* name: drbd_transport_tcp
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< /tabpane >}}
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Apply config update on node
|
||||||
|
talosctl patch mc --patch-file install-drbd.yml
|
||||||
|
|
||||||
|
# Start upgrade of Talos with with current installed version to enable the extension
|
||||||
|
talosctl upgrade --image=ghcr.io/siderolabs/installer:{{< release >}}
|
||||||
|
|
||||||
|
# Create dedicated namespace for piraeus
|
||||||
|
kubectl create namespace piraeus
|
||||||
|
kubectl label ns piraeus pod-security.kubernetes.io/enforce=privileged
|
||||||
|
kubectl label ns piraeus pod-security.kubernetes.io/auth=privileged
|
||||||
|
kubectl label ns piraeus pod-security.kubernetes.io/warn=privileged
|
||||||
|
|
||||||
|
# Install Piraeus with Helm chart from GitHub repository
|
||||||
|
git clone --branch master https://github.com/piraeusdatastore/piraeus-operator.git
|
||||||
|
cd piraeus-operator
|
||||||
|
helm install piraeus-op ./charts/piraeus \
|
||||||
|
--namespace piraeus \
|
||||||
|
--set operator.satelliteSet.kernelModuleInjectionMode=None \ # Deprecated, but necessary!
|
||||||
|
--set etcd.enabled=false \
|
||||||
|
--set operator.controller.dbConnectionURL=k8s
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Create first storage pool and PVC
|
||||||
|
|
||||||
|
Before proceeding, install linstor plugin for kubectl:
|
||||||
|
https://github.com/piraeusdatastore/kubectl-linstor
|
||||||
|
|
||||||
|
Or use [krew](https://krew.sigs.k8s.io/): `kubectl krew install linstor`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Create device pool on a blank (no partitation table!) disk on node01
|
||||||
|
kubectl linstor physical-storage create-device-pool --pool-name nvme_lvm_pool LVM node01 /dev/nvme0n1 --storage-pool nvme_pool
|
||||||
|
```
|
||||||
|
|
||||||
|
piraeus-sc.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: simple-nvme
|
||||||
|
parameters:
|
||||||
|
csi.storage.k8s.io/fstype: xfs
|
||||||
|
linstor.csi.linbit.com/autoPlace: "3"
|
||||||
|
linstor.csi.linbit.com/storagePool: nvme_pool
|
||||||
|
provisioner: linstor.csi.linbit.com
|
||||||
|
volumeBindingMode: WaitForFirstConsumer
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Create storage class
|
||||||
|
kubectl apply -f piraeus-sc.yml
|
||||||
|
```
|
||||||
|
|
||||||
## NFS
|
## NFS
|
||||||
|
|
||||||
NFS is an old pack animal long past its prime.
|
NFS is an old pack animal long past its prime.
|
||||||
|
|||||||
@ -120,6 +120,48 @@ talosctl -n <node ip> service kubelet restart
|
|||||||
|
|
||||||
Continue setting up [Mayastor](https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor) using the official documentation.
|
Continue setting up [Mayastor](https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor) using the official documentation.
|
||||||
|
|
||||||
|
### Piraeus / LINSTOR
|
||||||
|
|
||||||
|
* [Piraeus-Operator](https://piraeus.io/)
|
||||||
|
* [LINSTOR](https://linbit.com/drbd/)
|
||||||
|
* [DRBD Extension](https://github.com/siderolabs/extensions#storage)
|
||||||
|
|
||||||
|
#### Install Piraeus Operator V2
|
||||||
|
|
||||||
|
There is already a how-to for Talos: [Link](https://github.com/piraeusdatastore/piraeus-operator/blob/v2/docs/how-to/talos.md)
|
||||||
|
|
||||||
|
#### Create first storage pool and PVC
|
||||||
|
|
||||||
|
Before proceeding, install linstor plugin for kubectl:
|
||||||
|
https://github.com/piraeusdatastore/kubectl-linstor
|
||||||
|
|
||||||
|
Or use [krew](https://krew.sigs.k8s.io/): `kubectl krew install linstor`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Create device pool on a blank (no partitation table!) disk on node01
|
||||||
|
kubectl linstor physical-storage create-device-pool --pool-name nvme_lvm_pool LVM node01 /dev/nvme0n1 --storage-pool nvme_pool
|
||||||
|
```
|
||||||
|
|
||||||
|
piraeus-sc.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: simple-nvme
|
||||||
|
parameters:
|
||||||
|
csi.storage.k8s.io/fstype: xfs
|
||||||
|
linstor.csi.linbit.com/autoPlace: "3"
|
||||||
|
linstor.csi.linbit.com/storagePool: nvme_pool
|
||||||
|
provisioner: linstor.csi.linbit.com
|
||||||
|
volumeBindingMode: WaitForFirstConsumer
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Create storage class
|
||||||
|
kubectl apply -f piraeus-sc.yml
|
||||||
|
```
|
||||||
|
|
||||||
## NFS
|
## NFS
|
||||||
|
|
||||||
NFS is an old pack animal long past its prime.
|
NFS is an old pack animal long past its prime.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user