当前位置: 首页 > news >正文

k8s上部署openvpn

一、openvpn源

# helm search repo openvpn

二、下载

# helm pull mirror/openvpn

三、修改配置文件

# tar -zxf openvpn-4.2.5.tgz

# cd openvpn

# egrep -v "^#|^$|^ *#" values.yaml 
replicaCount: 1
updateStrategy: {}
imagePullSecretName:
image:repository: jfelten/openvpn-dockertag: 1.1.0pullPolicy: IfNotPresent
service:type: NodePortexternalPort: 443internalPort: 443externalIPs: [192.168.110.26]nodePort: 32085annotations: {}
podAnnotations: {}
ipForwardInitContainer: true
resources:limits:cpu: 500mmemory: 1024Mirequests:cpu: 500mmemory: 1024Mi
readinessProbe:initialDelaySeconds: 5periodSeconds: 5successThreshold: 2
persistence:enabled: truestorageClass: "nfs-hdd"accessMode: ReadWriteOncesize: 2048M
openvpn:OVPN_NETWORK: 10.240.0.0OVPN_SUBNET: 255.255.0.0OVPN_PROTO: udpOVPN_K8S_POD_NETWORK: "10.244.0.0"OVPN_K8S_POD_SUBNET: "255.255.0.0"OVPN_K8S_SVC_NETWORK: 10.96.0.0OVPN_K8S_SVC_SUBNET: 255.240.0.0DEFAULT_ROUTE_ENABLED: truedhcpOptionDomain: trueredirectGateway: trueuseCrl: falsetaKey: falsecipher: AES-256-CBCserverConf: |max-clients 100client-to-clientistio:enabled: falseproxy:port: 15001iptablesExtra: []ccd:enabled: falseconfig: {}
nodeSelector: {}
tolerations: []

四、部署

# helm upgrade --install openvpn -n openvpn ./ -f values.yaml

这里还修改了svc里面的dns:

# kubectl edit cm openvpn -n openvpn

五、生成客户端脚本

# cat create-client.sh 
#!/bin/bash
POD_NAME=$(kubectl get pods --namespace "openvpn" -l "app=openvpn,release=openvpn" -o jsonpath='{ .items[0].metadata.name }')
SERVICE_NAME=$(kubectl get svc --namespace "openvpn" -l "app=openvpn,release=openvpn" -o jsonpath='{ .items[0].metadata.name }')
SERVICE_IP=$(kubectl get svc --namespace "openvpn" "$SERVICE_NAME" -o go-template='{{ range $k, $v := (index .status.loadBalancer.ingress 0)}}{{ $v }}{{end}}')
KEY_NAME=kubeVPN16
kubectl --namespace "openvpn" exec -it "$POD_NAME" /etc/openvpn/setup/newClientCert.sh "$KEY_NAME" "$SERVICE_IP"
kubectl --namespace "openvpn" exec -it "$POD_NAME" cat "/etc/openvpn/certs/pki/$KEY_NAME.ovpn" > "$KEY_NAME.ovpn"此脚本的SERVICE_IP是有问题的,这个可以在生成文件后修改。这个根据实际情况操作。

执行后会生成kubeVPN16.ovpn的文件:

如下:

公网:

内网:

六、客户端导入

相关文章:

  • IP地址:由电脑还是网线决定?
  • 【产品评测】海康威视(HIKVISION)NAS网络存储——简单评测
  • PostgreSQL安装/卸载(CentOS、Windows)
  • docker 部署wechatbot-webhook 并获取接口实现微信群图片自动保存到chevereto图库等
  • 计算机网络入门 -- 常用网络协议
  • el-menu弹出菜单样式不生效
  • 十一、数组(1)
  • 7.SpringBoot整合Neo4j
  • Python求均值,方差,标准差
  • 【运维】软件运维方案(2024word完整版)
  • 减分兔搜题-12123学法减分20题目及答案 #媒体#职场发展
  • 排序系列 之 快速排序
  • Mybatis plus自定义分页
  • hive动态分区导致xceivercount超限,hdfs无法创建新连接
  • R语言实现神经网络ANN
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Apache Pulsar 2.1 重磅发布
  • CSS 专业技巧
  • CSS居中完全指南——构建CSS居中决策树
  • Cumulo 的 ClojureScript 模块已经成型
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JSONP原理
  • leetcode98. Validate Binary Search Tree
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Solarized Scheme
  • SSH 免密登录
  • webpack项目中使用grunt监听文件变动自动打包编译
  • WePY 在小程序性能调优上做出的探究
  • 解决iview多表头动态更改列元素发生的错误
  • 来,膜拜下android roadmap,强大的执行力
  • 前端设计模式
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 一份游戏开发学习路线
  • Java性能优化之JVM GC(垃圾回收机制)
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​Redis 实现计数器和限速器的
  • ​学习一下,什么是预包装食品?​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2)Java 简介
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (十三)MipMap
  • (四) Graphivz 颜色选择
  • (四)JPA - JQPL 实现增删改查
  • (一)基于IDEA的JAVA基础12