Using kubernetes to run plex to make the server more stable

This commit is contained in:
2020-06-03 23:03:15 +10:00
parent d2f9cb9abe
commit 9ccf239a65
2 changed files with 125 additions and 26 deletions
+9 -5
View File
@@ -1,15 +1,19 @@
#! /bin/bash -eu
helm upgrade --install ingress bitnami/nginx-ingress-controller -n nginx-ingress -f nginx-values.yaml
## install nginx ingress controller grafana dashboards
# https://github.com/kubernetes/ingress-nginx/tree/master/deploy/grafana/dashboards
kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
k apply -f prometheus-pv.yml -n default
helm upgrade --install prometheus -n default -f prometheus-values.yaml stable/prometheus-operator
helm apply -f prometheus-ingress.yaml
k create namespace nginx-ingress
helm upgrade --install ingress bitnami/nginx-ingress-controller -n nginx-ingress -f nginx-values.yaml
k apply -f prometheus-ingress.yml
kubectl -n default create secret generic oauth2-proxy-creds \
--from-literal=cookie-secret=ZuThURd/AK9ouHNxg0Czhg== \
@@ -20,9 +24,9 @@ helm upgrade oauth2-proxy --install stable/oauth2-proxy \
--reuse-values \
--values oauth2-proxy-config.yaml
k apply -f postgres-pv.yaml
k apply -f postgres-pv.yml -n default
helm upgrade --install postgres -n db -f postgres-values.yaml bitnami/postgresql
k create namespace db && helm upgrade --install postgres -n db -f postgres-values.yaml bitnami/postgresql
# media applications
+116 -21
View File
@@ -130,42 +130,137 @@ spec:
# storage: 2Gi
# ---
apiVersion: v1
kind: Service
metadata:
name: plex-proxy
spec:
ports:
- port: 80
targetPort: 80
selector:
app: plex-proxy
# apiVersion: v1
# kind: Service
# metadata:
# name: plex-proxy
# spec:
# ports:
# - port: 80
# targetPort: 80
# selector:
# app: plex-proxy
---
# ---
# apiVersion: apps/v1
# kind: Deployment
# metadata:
# name: plex-proxy
# spec:
# selector:
# matchLabels:
# app: plex-proxy
# replicas: 1
# template:
# metadata:
# labels:
# app: plex-proxy
# spec:
# containers:
# - name: plex-proxy
# image: alpine/socat
# args:
# - "tcp-listen:80,fork,reuseaddr"
# - "tcp-connect:192.168.1.2:32444"
# ports:
# - containerPort: 80
apiVersion: apps/v1
kind: Deployment
metadata:
name: plex-proxy
name: plex
spec:
selector:
matchLabels:
app: plex-proxy
app: plex
replicas: 1
template:
metadata:
labels:
app: plex-proxy
app: plex
spec:
volumes:
- name: config
hostPath:
path: /mnt/plex
type: DirectoryOrCreate
- name: transcode
hostPath:
path: /mnt/plex-temp
type: DirectoryOrCreate
- name: downloads
hostPath:
path: /mnt/downloads
type: Directory
containers:
- name: plex-proxy
image: alpine/socat
args:
- "tcp-listen:80,fork,reuseaddr"
- "tcp-connect:192.168.1.2:32444"
ports:
- containerPort: 80
- name: plex
image: plexinc/pms-docker
# securityContext:
# runAsUser: 0
imagePullPolicy: Always
ports:
- containerPort: 32400
name: plex-port
protocol: TCP
- containerPort: 3005
protocol: TCP
- containerPort: 8324
protocol: TCP
- containerPort: 32469
protocol: TCP
- containerPort: 1900
protocol: UDP
- containerPort: 32410
protocol: UDP
- containerPort: 32412
protocol: UDP
- containerPort: 32413
protocol: UDP
- containerPort: 32414
protocol: UDP
env:
- name: TZ
value: Australia/Melbourne
- name: PLEX_CLAIM
value: "claim-b_w2MErxts9BHa8p356c"
- name: HOSTNAME
value: home-server
- name: PLEX_UID
value: "1000"
- name: PLEX_PGID
value: "1000"
volumeMounts:
- name: config
mountPath: /config
- name: transcode
mountPath: /transcode
- name: downloads
mountPath: /data
resources:
requests:
cpu: 800m
memory: 700Mi
limits:
cpu: 1500m
memory: 1500Mi
---
apiVersion: v1
kind: Service
metadata:
name: plex
labels:
app: plex
spec:
type: ClusterIP
ports:
- port: 80
targetPort: plex-port
protocol: TCP
selector:
app: plex
---
apiVersion: networking.k8s.io/v1beta1