-
-
Notifications
You must be signed in to change notification settings - Fork 2
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
创建 Tailscale derper #219
Comments
SSL 证书更新后自动重启 derper
我使用的是 如我原来的 reloadcmd 为:
现在改为:
容器管理工具从 docker compose 切换为 portainer 之后,无法通过命令重新创建 derper 容器了,先改为通过 docker 命令指定 container name 的方式重启对应容器:
container name 从 Portainer 平台中获取。 |
从 docker 迁移到 k8s
apiVersion: v1
kind: PersistentVolume
metadata:
name: derper-ssl-local-pv
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: derper-ssl-local-storage
local:
path: /etc/nginx/ssl
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- shan-tencent
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: derper-ssl-local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: derper-ssl-pvc-local
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
storageClassName: derper-ssl-local-storage
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: derper
namespace: default
spec:
replicas: 1
selector:
matchLabels:
name: derper
template:
metadata:
labels:
name: derper
spec:
containers:
- name: derper
image: fredliang/derper:latest
ports:
- containerPort: 3478
protocol: UDP
- containerPort: 80
- containerPort: 443
volumeMounts:
- name: ssl
mountPath: /app/certs
env:
- name: DERP_CERT_MODE
value: "manual"
- name: DERP_DOMAIN
value: "example.com"
volumes:
- name: ssl
persistentVolumeClaim:
claimName: derper-ssl-pvc-local
---
apiVersion: v1
kind: Service
metadata:
name: derper
spec:
type: NodePort
selector:
name: derper
ports:
- name: p1
port: 31002
targetPort: 3478
nodePort: 31002
protocol: UDP
- name: p2
port: 31000
targetPort: 80
nodePort: 31000
- name: p3
port: 31001
targetPort: 443
nodePort: 31001 注意,重启容器的指令同样要做变更: acme.sh --installcert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/fullchain.cer \
--reloadcmd "kubectl scale deployment derper --replicas=0 && kubectl scale deployment derper --replicas=1" |
使用
ngc7331/derper
镜像优点是继承了
acme.sh
可以自动申请证书,非常方便(不推荐)使用
fredliang/derper
镜像为什么直接用 nginx 下的 ssl 证书呢?因为懒得再用 acme.sh 多申请一个子域名证书了。
同时 DERP 默认读取的证书文件名是定死的格式:
域名.cert
启动 derper:
sudo docker-compose up -d
配置 Tailscale Access Controls,形如:
The text was updated successfully, but these errors were encountered: