NAS Seedbox Plex Server with Pine64 SoQuartz (Rpi CM4 clone) Kubernetes Cluster on the Turing Pi V2

Опубликовано: 08 Август 2023
на канале: nullset2
373
8

Skip to 4:56 for the tutorial.

It's like we went for the World Record for buzzwords on the title, I know.

!!!!!!!YET ANOTHER VERY IMPORTANT UPDATE OMG!!!!!!!

I've been running into very weird stability issues with the NAS: it will work for about 2 weeks uninterruptedly, and then the NFS server will crash randomly. I have changed the NFS mapping in the exports file to use async instead of sync and I have enabled a few mountoptions on the PV on the client side; so far so good. Give it a go if you also experience issues:

apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
storageClassName: nfs-client
capacity:
storage: 4Ti
accessModes:
ReadWriteMany
nfs:
server: 192.168.1.44
path: /data
mountOptions:
intr
hard
timeo=14
rsize=8192
wsize=8192
noacl
nocto
noatime
nodiratime
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
ReadWriteMany
volumeName: nfs-pv
storageClassName: nfs-client
resources:
requests:
storage: 4Ti

!!!!!!!!!!!!!!!!VERY IMPORTANT UPDATE!!!!!!!!!!!!!!!!

k8s-at-home is deprecated and this meant that I was lagging behind several versions of the plex media server. This is no good! I recommend switching over to the k8s-home-lab repository for a better experience!!!! :)

It's all compatible with the same setup!

helm install plex k8s-home-lab/plex \
--set image.tag=rolling \
--set nodeSelector."kubernetes\\.io/hostname"={name of your node, skip if you're not assigning it to a single node} \
--set env.TZ="America/Los Angeles" \
--set ingress.main.enabled=true \
--set hostNetwork=true \
--set persistence.config.enabled=true \
--set persistence.config.storageClass="local-path" \
--kube-context=pine

UPDATE: I have updated my helm install invocation because I kept running into errors, such as crashlooping pods when eviction happens, errors mounting the tun device, and config disappearing after pod eviction. I solved them by pulling the newest version of the container, and by creating a pvc to be used for the /config mount

helm install pine \
--set env.LOCAL_NETWORK="10.0.0.0\/8\,172.16.0.0\/12\,192.168.1.0\/24" \
--set image.tag=latest \
--set env.OPENVPN_CONFIG=ca_vancouver \
--set env.OPENVPN_OPTS="--inactive 3600 --ping 10 --ping-exit 60 --pull-filter ignore ping" \
--set env.OPENVPN_PROVIDER=PIA \
--set env.PIA_OPENVPN_CONFIG_BUNDLE=openvpn \
--set env.OPENVPN_USERNAME=... \
--set env.TRANSMISSION_DOWNLOAD_DIR=\/media \
--set env.TRANSMISSION_INCOMPLETE_DIR=\/media\/incomplete \
--set secretEnv.OPENVPN_PASSWORD=...\
--set persistence.existingClaim="nfs-pvc" \
--kube-context=pine \
-f values.yaml \
utkuozdemir/transmission-openvpn

My values.yaml:

extraVolumeMounts:
mountPath: /config
name: config
mountPath: /media
name: media

extraVolumes:
name: config
persistentVolumeClaim:
claimName: pine-transmission-config-pvc
name: media
persistentVolumeClaim:
claimName: nfs-pvc

persistence:
accessModes:
ReadWriteMany

env:
CREATE_TUN_DEVICE: "false"

My pvc:

apiVersion: v1
kind: PersistentVolume
metadata:
name: pine-transmission-config-pv
labels:
type: local
spec:
storageClassName: local-path
capacity:
storage: 100Mi
accessModes:
ReadWriteOnce
hostPath:
path: "/mnt/config"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pine-transmission-config-pvc
spec:
storageClassName: local-path
accessModes:
ReadWriteOnce
resources:
requests:
storage: 100M


Смотрите видео NAS Seedbox Plex Server with Pine64 SoQuartz (Rpi CM4 clone) Kubernetes Cluster on the Turing Pi V2 онлайн без регистрации, длительностью часов минут секунд в хорошем качестве. Это видео добавил пользователь nullset2 08 Август 2023, не забудьте поделиться им ссылкой с друзьями и знакомыми, на нашем сайте его посмотрели 373 раз и оно понравилось 8 людям.