首页 > 解决方案 > K3S OpenVPN 安装(树莓派)

问题描述

我开始使用 K3S,所以我绝对是菜鸟。现在我想知道如何自己创建 .yaml 文件或使用 docker 映像。(找不到有关此的详细信息)

我想要一个OpenVPN或任何其他建议的 VPN 服务器运行,这样我就可以从任何地方访问我的家庭设备。如果有人能对我这么好,帮我一点忙,那将是安全的很多头痛和时间。

之前,我有一个 OpenVPN 服务器在运行,当时我只有 1 个 Raspi。但看起来从安装到配置的一切都随着我的 k3s Kubernetes 集群而改变。

我如何使用 Rancher 制作我的 k3s 集群:https ://youtu.be/X9fSMGkjtug

尝试了 3 小时才弄明白,没有找到适合初学者的真正分步指南...

我已经运行了一个 Cloudflare ddns 脚本来使用正确的 IP 更新我的域。

非常感谢你!

标签: kubernetesvpnopenvpnk3s

解决方案


这是 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


推荐阅读