kubernetes - K3S OpenVPN 安装(树莓派)
问题描述
我开始使用 K3S,所以我绝对是菜鸟。现在我想知道如何自己创建 .yaml 文件或使用 docker 映像。(找不到有关此的详细信息)
我想要一个OpenVPN或任何其他建议的 VPN 服务器运行,这样我就可以从任何地方访问我的家庭设备。如果有人能对我这么好,帮我一点忙,那将是安全的很多头痛和时间。
之前,我有一个 OpenVPN 服务器在运行,当时我只有 1 个 Raspi。但看起来从安装到配置的一切都随着我的 k3s Kubernetes 集群而改变。
我如何使用 Rancher 制作我的 k3s 集群:https ://youtu.be/X9fSMGkjtug
尝试了 3 小时才弄明白,没有找到适合初学者的真正分步指南...
我已经运行了一个 Cloudflare ddns 脚本来使用正确的 IP 更新我的域。
非常感谢你!
解决方案
这是 Open VPN 客户端 YAML 的示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: openvpn-client
spec:
selector:
matchLabels:
app: openvpn-client
vpn: vpn-id
replicas: 1
template:
metadata:
labels:
app: openvpn-client
vpn: vpn-id
spec:
volumes:
- name: vpn-config
secret:
secretName: vpn-config
items:
- key: client.ovpn
path: client.ovpn
- name: vpn-auth
secret:
secretName: vpn-auth
items:
- key: auth.txt
path: auth.txt
- name: route-script
configMap:
name: route-script
items:
- key: route-override.sh
path: route-override.sh
- name: tmp
emptyDir: {}
initContainers:
- name: vpn-route-init
image: busybox
command: ['/bin/sh', '-c', 'cp /vpn/route-override.sh /tmp/route/route-override.sh; chown root:root /tmp/route/route-override.sh; chmod o+x /tmp/route/route-override.sh;']
volumeMounts:
- name: tmp
mountPath: /tmp/route
- name: route-script
mountPath: /vpn/route-override.sh
subPath: route-override.sh
containers:
- name: vpn
image: dperson/openvpn-client
command: ["/bin/sh","-c"]
args: ["openvpn --config 'vpn/client.ovpn' --auth-user-pass 'vpn/auth.txt' --script-security 3 --route-up /tmp/route/route-override.sh;"]
stdin: true
tty: true
securityContext:
privileged: true
capabilities:
add:
- NET_ADMIN
env:
- name: TZ
value: "Turkey"
volumeMounts:
- name: vpn-config
mountPath: /vpn/client.ovpn
subPath: client.ovpn
- name: vpn-auth
mountPath: /vpn/auth.txt
subPath: auth.txt
- name: tmp
mountPath: /tmp/route
- name: app1
image: python:3.6-stretch
command:
- sleep
- "100000"
tty: true
dnsConfig:
nameservers:
- 8.8.8.8
- 8.8.4.4
您还可以阅读有关部署的更多信息:https ://bugraoz93.medium.com/openvpn-client-in-a-pod-kubernetes-d3345c66b014
您还可以使用HELM 图表,这将通过预制的YAML脚本轻松设置Kubernetes上的任何内容: https ://itnext.io/use-helm-to-deploy-openvpn-in-kubernetes-to-access -pods-and-services-217dec344f13
Docker Open VPN:https ://github.com/dperson/openvpn-client
推荐阅读
- android-studio - Android Studio 在启动时崩溃(64 位,Windows 10)
- java - 无法使用 @Rule 和 @RunWith 注释,但已弃用的 initmocks() 有效
- css - 除了第一行的最后一列之外的所有地方的 CSS GRID 内容
- php - 通过 php-odbc 连接时如何修复编码?
- c# - 我想比较两个字符串并希望得到可能的匹配项
- powershell - Powershell变量初始化影响函数返回?
- android - 在 Flutter 中将重复列表值转换为 DISTINCT
- json - 使用 JQ 将 Geojson 与 json 字段附加
- python - 模板不存在即使所有事情都正确也不起作用
- python - 简单循环中的意外列表丢失