Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kube Plex behind Ingress. Not available outside your network. Direct connection is not available. #118

Open
DrissiReda opened this issue Feb 20, 2022 · 1 comment

Comments

@DrissiReda
Copy link

DrissiReda commented Feb 20, 2022

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.

@bidluo
Copy link

bidluo commented Mar 2, 2022

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants