k3s: RustDesk-Server (hbbs/hbbr) als Manifest und Playbook, parallel zu appsrv08
ci / test (push) Successful in 26s
ci / test (push) Successful in 26s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
eafebaab94
commit
d11e2d90fc
@@ -0,0 +1,112 @@
|
||||
# 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}
|
||||
Reference in New Issue
Block a user