Kube Plex behind Ingress. Not available outside your network. Direct connection is not available.
Opened this issue · 1 comments
I'm using plex in my kubernetes cluster. I access it via nginx ingress.
But in the "Remote Access" Tab . I have the error: "Not available outside your network"
These are my settings:
deployment.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
name: plex-kube-plex
namespace: media
labels:
app: kube-plex
app.kubernetes.io/managed-by: Helm
chart: kube-plex-0.2.7
heritage: Helm
release: plex
annotations:
deployment.kubernetes.io/revision: '8'
meta.helm.sh/release-name: plex
meta.helm.sh/release-namespace: media
spec:
replicas: 1
selector:
matchLabels:
app: kube-plex
release: plex
template:
metadata:
labels:
app: kube-plex
release: plex
spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: plex-kube-plex-data
- name: config
persistentVolumeClaim:
claimName: plex-kube-plex-config
- name: shared
emptyDir: {}
containers:
- name: plex
image: plexinc/pms-docker:1.25.5.5492-12f6b8c83
ports:
- name: pms
containerPort: 32400
protocol: TCP
- name: http
containerPort: 32400
protocol: TCP
- name: https
containerPort: 32443
protocol: TCP
env:
- name: TZ
value: Europe/Paris
- name: PLEX_CLAIM
value: some-claim
- name: PMS_INTERNAL_ADDRESS
value: http://plex-kube-plex:32400
- name: PMS_IMAGE
value: plexinc/pms-docker:1.25.5.5492-12f6b8c83
- name: KUBE_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: TRANSCODE_PVC
value: plex-kube-plex-data
- name: DATA_PVC
value: plex-kube-plex-data
- name: CONFIG_PVC
value: plex-kube-plex-config
resources: {}
volumeMounts:
- name: data
mountPath: /data
- name: config
mountPath: /config
- name: transcode
mountPath: /transcode
- name: shared
mountPath: /shared
livenessProbe:
httpGet:
path: /identity
port: 32400
scheme: HTTP
initialDelaySeconds: 10
timeoutSeconds: 10
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /identity
port: 32400
scheme: HTTP
initialDelaySeconds: 15
timeoutSeconds: 5
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
serviceAccountName: plex-kube-plex
serviceAccount: plex-kube-plex
securityContext: {}
hostname: plex-kube-plex
schedulerName: default-scheduler
service.yaml
kind: Service
apiVersion: v1
metadata:
name: plex-kube-plex
namespace: media
labels:
app: kube-plex
app.kubernetes.io/managed-by: Helm
chart: kube-plex-0.2.7
heritage: Helm
release: plex
annotations:
meta.helm.sh/release-name: plex
meta.helm.sh/release-namespace: media
spec:
ports:
- name: pms
protocol: TCP
port: 32400
targetPort: pms
- name: http
protocol: TCP
port: 80
targetPort: pms
- name: https
protocol: TCP
port: 443
targetPort: 32443
selector:
app: kube-plex
release: plex
type: ClusterIP
This works perfectly for me, besides the remote access issue.
I need this, because right now, I cannot stream using devices outside the network at more than 240p. I'm getting the error:
Video quality limited: a direct connection to the server is not available.
This only happens on my iOS client app. On pcs and on phone browser it works correctly.
I could never get it to work regardless of kube-plex or not so what I did instead was just expose 32400 as a NodePort and used external-dns
to update the DNS record to point to the corresponding node/pod.
I originally followed this guide: https://mike.sg/2021/08/31/digitalocean-kubernetes-without-a-load-balancer/
Works fine for me and I've even disabled relay so it won't even play at limited streaming