在上一篇《边缘计算k8s集群之SuperEdge》文章中,笔者基于ECK搭建了边缘集群并添加了节点。通过边缘集群,我们可以很方便的管理各个地域的节点,本地、各云厂商的机房、客户所在地、海外的都可以。在本篇内容,我们将讲述如何使用ipsec-vpn-server,通过一行命令即可搭建内部的管道,用于锻炼技术,技术学习。

ipsec-vpn-server

ipsec-vpn-server可以让我们快速通过容器镜像搭建 IPsec VPN 服务器,支持 IPsec/L2TP,Cisco IPsec 和 IKEv2 协议。

官方镜像地址:

https://hub.docker.com/r/hwdsl2/ipsec-vpn-server

Github地址:

https://github.com/hwdsl2/docker-ipsec-vpn-server

官方的文档比较齐全,具体可以参考:

https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md

接下来,我们来演示下如何一行命令即可搭建自己的VPN服务器。

Docker部署

参考脚本如下所示:

docker run \--name ipsec-vpn-server \--env-file ./vpn.env \--restart=always \-v ikev2-vpn-data:/etc/ipsec.d \-p 500:500/udp \-p 4500:4500/udp \-d --privileged \hwdsl2/ipsec-vpn-server

env文件定义参考如下:

VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password

执行成功后,可以查看docker日志(命令参考:docker logs ipsec-vpn-server)获得相关客户端配置信息。

日志中会输出以下内容:

Connect to your new VPN with these details:Server IP: 你的VPN服务器IP
IPsec PSK: 你的IPsec预共享密钥
Username: 你的VPN用户名
Password: 你的VPN密码

K8s部署

参考Yaml如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: "2"generation: 2labels:k8s-app: ipsec-vpn-server  name: ipsec-vpn-server  namespace: default
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: ipsec-vpn-server  strategy:rollingUpdate:maxSurge: 1maxUnavailable: 0type: RollingUpdate  template:metadata:annotations:edge.tke.cloud.tencent.com/cpu: "1"edge.tke.cloud.tencent.com/mem: 2Gi      creationTimestamp: nulllabels:k8s-app: ipsec-vpn-server    spec:containers:- env:- name: VPN_IPSEC_PSK #IPsec PSK,预共享密钥value: "your_ipsec_pre_shared_key"- name: VPN_USER   #用户名value: your_user_name        - name: VPN_PASSWORD  #密码value: "you_password"- name: VPN_SETUP_IKEV2 #启用IKEv2协议,推荐value: "yes"image: hwdsl2/ipsec-vpn-server        imagePullPolicy: Always        name: ipsec-vpn-server        resources:limits:cpu: 500m            memory: 1Gi          requests:cpu: 250m            memory: 256Mi        securityContext:privileged: true #开启特级权限dnsPolicy: ClusterFirst      hostNetwork: true  #使用Host网络restartPolicy: Always      terminationGracePeriodSeconds: 30
kubectl create -f ipsec-vpn.yaml

执行成功后,通过可以通过日志得到相关配置信息:

这里有不清楚的,可以参考笔者之前的教程:《使用Kubectl部署应用》

关于host network

在k8s中我们使用了host network模式,在docker中我们也可以采用这种模式。这是因为IKEv2协议的端口是固定的,如果通过k8s的service转发,则端口就发生了改变,因此在k8s中我们使用了host network模式,但是这是不推荐的。在该模式下,容器的网络栈未与 容器主机隔离,从而在使用 IPsec/L2TP 模式连接之后,VPN 客户端可以使用主机的 VPN 内网 IP 访问主机上的端口或服务。

端口说明

需要打开 UDP 端口 500 和 4500。

客户端连接配置

支持Window、OS X、Android、IOS、Chromebook、Linux,官方文档比较齐全,请参考:

无需额外安装客户端:

https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md

Cisco IPsec(更高效地传输数据(较低的额外开销)):

https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth-zh.md

最后

是不是超级简单呢?赶紧实践实践吧?

如果对Docker和k8s还存在疑问,可以参考笔者之前的教程、博客和书籍《Docker+Kubernetes应用开发与快速上云》。

转载是一种动力 分享是一种美德

如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文档官网:docs.xin-lai.com

QQ群:

编程交流群<85318032>

产品交流群<897857351>

一行命令搭建内部的管道相关推荐

  1. docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)

    docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器) 2019年01月27日 21:06:12 博陵精骑 阅读数:794 标签: dockerelasti ...

  2. erwin模型怎么保存_一行命令启动,十分钟内完成部署,Paddle Serving开放模型即服务功能...

    机器之心发布 机器之心编辑部 百度飞桨的 Paddle Serving 能够实现服务器端快速部署,最近,随着飞桨更新到 1.7 版本,Paddle Serving 也有了新变化.更新后的 Paddle ...

  3. 再见xx网盘!4 行命令搭建属于你的私人网盘!

    在之前的文章中,我分享了如何利用一台云服务器配置远程Jupyter Notebook. 最后我也提到,拥有一台服务器之后能做的绝不止这一个功能. 另一个常见的个人服务器用处就是用来搭建一个私人网盘.本 ...

  4. RHEL6入门系列之十一,内/外部命令、重定向、管道

    前面一口气介绍了18个命令,可能大家都已经有些晕了.学习Linux就是这样,它不像Windows那样的傻瓜式操作,要想学好Linux是必须要下苦功的.所以,Linux本身就不是一个面向普通用户的桌面操 ...

  5. linux怎么打出管道命令这个符号,linux 管道命令 竖线 ‘ | ’

    管道符号,是unix功能强大的一个地方,符号是一条竖线:"|", 用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为comm ...

  6. 如果不使用时钟同步工具,linux如何解决时钟同步问题?仅需要一行命令即可。

    这是一篇日记,记录了上帝下凡出手,解救苍生与水火之中的神奇文章,如果你也有过类似的经历,留言关注,咱们交流一下~ 目录 背景(如果不想知道可以跳过) 一行神奇的命令 一段一段的研究 总结 背景(如果不 ...

  7. OpenAI开放GPT-3微调功能,一行命令就能实现!正确率最高提升4倍

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 刚刚Op ...

  8. 一行命令堆出你的新垣结衣,不爆肝也能创作ASCII Art

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 兴坤 发自 凹非寺 量子位 报道 | 公众号 QbitAI 万恶之源 ...

  9. 一行命令装下所有「炼丹」工具及依赖项,就靠这个免费软件源了|教程

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 相信不少 ...

最新文章

  1. 剑指offer:面试题30. 包含min函数的栈
  2. 百度重磅发布云手机:低配置也可玩大型游戏 21
  3. idea整合 spring boot jsp mybatis
  4. 数学不好的人可以学python吗_哪些人适合学金融工程专业 数学不好能学吗
  5. 浏览器字体大小设置_全新内核 Edge 浏览器来了,这回或许能成为你的真 · 默认浏览器...
  6. 数据库 CURD测试题【中等】
  7. 【转】LAMP网站架构方案分析【精辟】
  8. Python3 使用requests请求,解码时出错:'utf8' codec can't decode byte 0x8b in position 1: invalid start byte...
  9. Leetcode每日一题:172.factorial-trailing-zeroes(阶乘后的0)
  10. HDU2044 一只小蜜蜂...【递推】
  11. 如何往linux上面上传东西
  12. python刻度增加1个数_Matplotlib添加一个特定的勾号,表示轴的最大多个刻度单次观察...
  13. mybatis之OGNL表达式
  14. 数据分析必备算法(算数平均值,加权平均值,最值,中位数,标准差,时间数据处理 ,数组的轴向汇总, 移动均线 ,卷积(简单概念))
  15. C#调用WPS2016方法和常见问题处理
  16. php sql注入防御方法,php怎么防御sql注入
  17. 美丽的花蝴蝶 动人的海豚音 天后[Mariah Carey玛丽亚·凯莉]全集
  18. 桌面图标有蓝底怎么办
  19. CRA图像 Clean Random Access (CRA) Pictures
  20. 爬虫爬取东方财富网的股票走势图

热门文章

  1. PHP 利用Mail_MimeDecode类提取邮件正文
  2. 性能测试一些相关的概念
  3. 【t057】任务分配
  4. 关于电商购物车与订单
  5. 初识Spark2.0之Spark SQL
  6. rabbitmq学习:
  7. Win2003中apache2整合tomcat5和iis6
  8. 【C】C语言结构体指针的语法
  9. Python入门之数据类型
  10. 《微软云计算Microsoft Azure部署与管理指南》即将上市!!!