docs: Add TUN device (#861)

This commit is contained in:
Kroese 2024-12-01 17:57:00 +01:00 committed by GitHub
parent 898499a4e3
commit 2827d1d375
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 43 additions and 33 deletions

View File

@ -6,6 +6,7 @@ services:
DISK_SIZE: "16G" DISK_SIZE: "16G"
devices: devices:
- /dev/kvm - /dev/kvm
- /dev/net/tun
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
ports: ports:

View File

@ -1,10 +1,11 @@
---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: dsm-pvc name: dsm-pvc
spec: spec:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:
requests: requests:
storage: 16Gi storage: 16Gi
@ -16,44 +17,51 @@ metadata:
labels: labels:
name: dsm name: dsm
spec: spec:
terminationGracePeriodSeconds: 120 # the Kubernetes default is 30 seconds and it may be not enough
containers: containers:
- name: dsm - name: dsm
image: vdsm/virtual-dsm image: vdsm/virtual-dsm
ports: env:
- containerPort: 5000 - name: RAM_SIZE
protocol: TCP value: "1G"
securityContext: - name: CPU_CORES
privileged: true value: "1"
env: - name: DISK_SIZE
- name: RAM_SIZE value: "16G"
value: 1G ports:
- name: CPU_CORES - containerPort: 5000
value: "1" securityContext:
- name: DISK_SIZE capabilities:
value: "16G" # Kubernetes uses Gi, but DSM uses GB add:
volumeMounts: - NET_ADMIN
- mountPath: /storage privileged: true
name: storage volumeMounts:
- mountPath: /dev/kvm - mountPath: /storage
name: dev-kvm name: storage
- mountPath: /dev/kvm
name: dev-kvm
- mountPath: /dev/net/tun
name: dev-tun
terminationGracePeriodSeconds: 120
volumes: volumes:
- name: storage - name: storage
persistentVolumeClaim: persistentVolumeClaim:
claimName: dsm-pvc claimName: dsm-pvc
- name: dev-kvm - hostPath:
hostPath: path: /dev/kvm
path: /dev/kvm name: dev-kvm
- hostPath:
path: /dev/net/tun
type: CharDevice
name: dev-tun
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: dsm name: dsm
spec: spec:
type: NodePort ports:
- name: tcp-5000
port: 5000
selector: selector:
name: dsm name: dsm
ports: type: NodePort
- name: tcp-5000
port: 5000
targetPort: 5000

View File

@ -33,6 +33,7 @@ services:
DISK_SIZE: "16G" DISK_SIZE: "16G"
devices: devices:
- /dev/kvm - /dev/kvm
- /dev/net/tun
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
ports: ports:
@ -45,7 +46,7 @@ services:
Via Docker CLI: Via Docker CLI:
```bash ```bash
docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 vdsm/virtual-dsm docker run -it --rm -p 5000:5000 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN --stop-timeout 120 vdsm/virtual-dsm
``` ```
Via Kubernetes: Via Kubernetes: