ci / test (push) Successful in 26s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
113 lines
4.2 KiB
YAML
113 lines
4.2 KiB
YAML
# RustDesk-Server (ID-Server hbbs + Relay hbbr) in k3s, Umzug vom Portainer-Stack „rustdesk“ auf appsrv08
|
||
# (Phase 6.0, 15.10.2026). Schlüsselpaar id_ed25519 kommt aus dem Secret rustdesk-keys (legt
|
||
# playbooks/rustdesk-k3s.yml aus /root/.config/knaster/rustdesk/ auf ops an; nicht im Repo). Mit demselben
|
||
# Schlüssel bleiben die in den Clients hinterlegten Public Keys gültig.
|
||
#
|
||
# Erreichbar über Service-Typ LoadBalancer (k3s ServiceLB): Ports 21115–21119/tcp und 21116/udp auf jeder
|
||
# Knoten-Adresse. Die Clients tragen als ID-Server die Adresse ein, die das Playbook als Relay-Adresse setzt
|
||
# (rustdesk_public_host, Standard: die k3s-VM). Erst mit fester Adresse/DNS-Namen für die Clients umstellen.
|
||
apiVersion: v1
|
||
kind: Namespace
|
||
metadata:
|
||
name: rustdesk
|
||
labels:
|
||
knaster.app: rustdesk
|
||
---
|
||
# Datenbank (ID-Registrierungen) auf local-path: bindet den Pod an den Knoten, auf dem er zuerst lief.
|
||
apiVersion: v1
|
||
kind: PersistentVolumeClaim
|
||
metadata:
|
||
name: rustdesk-data
|
||
namespace: rustdesk
|
||
spec:
|
||
accessModes: [ReadWriteOnce]
|
||
storageClassName: local-path
|
||
resources:
|
||
requests:
|
||
storage: 1Gi
|
||
---
|
||
apiVersion: apps/v1
|
||
kind: Deployment
|
||
metadata:
|
||
name: rustdesk
|
||
namespace: rustdesk
|
||
labels: {app: rustdesk}
|
||
spec:
|
||
replicas: 1
|
||
strategy: {type: Recreate} # ein Datenverzeichnis, ein Pod
|
||
selector:
|
||
matchLabels: {app: rustdesk}
|
||
template:
|
||
metadata:
|
||
labels: {app: rustdesk}
|
||
spec:
|
||
nodeSelector:
|
||
knaster.gpu: "true" # nicht auf die kleine k3s-VM (2 Kerne, 3 GB)
|
||
containers:
|
||
- name: hbbs
|
||
image: rustdesk/rustdesk-server:1.1.14
|
||
# Relay-Adresse, die hbbs den Clients nennt; setzt das Playbook (RELAY_HOST) – muss von den Clients erreichbar sein
|
||
command: ["sh", "-c", "exec hbbs -r ${RELAY_HOST}:21117 -k _"]
|
||
env:
|
||
- {name: RELAY_HOST, value: "__RELAY_HOST__"}
|
||
workingDir: /root
|
||
ports:
|
||
- {name: nat-test, containerPort: 21115, protocol: TCP}
|
||
- {name: id-tcp, containerPort: 21116, protocol: TCP}
|
||
- {name: id-udp, containerPort: 21116, protocol: UDP}
|
||
- {name: web, containerPort: 21118, protocol: TCP}
|
||
resources:
|
||
requests: {cpu: 50m, memory: 64Mi}
|
||
limits: {memory: 256Mi}
|
||
volumeMounts:
|
||
- {name: data, mountPath: /root}
|
||
- {name: keys, mountPath: /root/id_ed25519, subPath: id_ed25519, readOnly: true}
|
||
- {name: keys, mountPath: /root/id_ed25519.pub, subPath: id_ed25519.pub, readOnly: true}
|
||
readinessProbe:
|
||
tcpSocket: {port: id-tcp}
|
||
periodSeconds: 10
|
||
livenessProbe:
|
||
tcpSocket: {port: id-tcp}
|
||
periodSeconds: 30
|
||
failureThreshold: 3
|
||
- name: hbbr
|
||
image: rustdesk/rustdesk-server:1.1.14
|
||
command: ["hbbr", "-k", "_"]
|
||
workingDir: /root
|
||
ports:
|
||
- {name: relay, containerPort: 21117, protocol: TCP}
|
||
- {name: relay-web, containerPort: 21119, protocol: TCP}
|
||
resources:
|
||
requests: {cpu: 50m, memory: 64Mi}
|
||
limits: {memory: 256Mi}
|
||
volumeMounts:
|
||
- {name: keys, mountPath: /root/id_ed25519, subPath: id_ed25519, readOnly: true}
|
||
- {name: keys, mountPath: /root/id_ed25519.pub, subPath: id_ed25519.pub, readOnly: true}
|
||
readinessProbe:
|
||
tcpSocket: {port: relay}
|
||
periodSeconds: 10
|
||
volumes:
|
||
- name: data
|
||
persistentVolumeClaim: {claimName: rustdesk-data}
|
||
- name: keys
|
||
secret:
|
||
secretName: rustdesk-keys
|
||
defaultMode: 0400
|
||
---
|
||
apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: rustdesk
|
||
namespace: rustdesk
|
||
labels: {app: rustdesk}
|
||
spec:
|
||
type: LoadBalancer
|
||
selector: {app: rustdesk}
|
||
ports:
|
||
- {name: nat-test, port: 21115, targetPort: 21115, protocol: TCP}
|
||
- {name: id-tcp, port: 21116, targetPort: 21116, protocol: TCP}
|
||
- {name: id-udp, port: 21116, targetPort: 21116, protocol: UDP}
|
||
- {name: relay, port: 21117, targetPort: 21117, protocol: TCP}
|
||
- {name: web, port: 21118, targetPort: 21118, protocol: TCP}
|
||
- {name: relay-web, port: 21119, targetPort: 21119, protocol: TCP}
|