Jaz*_*Cat 6 docker pptp kubernetes
我正在尝试设置一个运行pptp-client的pod.
我想访问VPN后面的一台机器,这在本地工作正常,我的docker容器将记录添加到我的localhost的路由表,一切都很好.
ip route add x.x.x.x dev ppp0
Run Code Online (Sandbox Code Playgroud)
只要特权设置为true并且network_mode设置为"host",我就只能建立到VPN服务器的连接
生产环境略有不同,"localhost"将是我们的Google Container集群中的三个操作节点之一.
我不知道在建立的连接之后添加的路由是否只能由在该节点内运行的容器访问..但这是后来的问题.
泊坞窗,compose.yml
version: '2'
services:
pptp-tunnel:
build: ./
image: eu.gcr.io/project/image
environment:
- VPN_SERVER=X.X.X.X
- VPN_USER=XXXX
- VPN_PASSWORD=XXXX
privileged: true
network_mode: "host"
Run Code Online (Sandbox Code Playgroud)
使用kubernetes似乎更难以实现,尽管这两个选项都存在并且在我的清单中可以看到.(hostNetwork,特权)
Kubernetes版本
版本1.6.6
PPTP的tunnel.yml
apiVersion: v1
kind: Service
metadata:
name: pptp-tunnel
namespace: default
labels:
spec:
type: ClusterIP
selector:
app: pptp-tunnel
ports:
- name: pptp
port: 1723
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: pptp-tunnel
namespace: default
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
selector:
matchLabels:
app: pptp-tunnel
template:
metadata:
labels:
app: pptp-tunnel
spec:
hostNetwork: true
containers:
- name: pptp-tunnel
env:
- name: VPN_SERVER
value: X.X.X.X
- name: VPN_USER
value: XXXX
- name: VPN_PASSWORD
value: 'XXXXX'
securityContext:
privileged: true
capabilities:
add: ["NET_ADMIN"]
image: eu.gcr.io/project/image
imagePullPolicy: Always
ports:
- containerPort: 1723
Run Code Online (Sandbox Code Playgroud)
我也尝试过添加功能:你可以看到NET_ADMIN,没有效果.将容器设置为特权模式应禁用安全性,我不应该同时使用这两者.
很高兴不必将容器设置为特权模式,只需依靠功能来启动ppp0接口并添加路由.
POD启动时会发生什么,pptp-client只是继续发送请求和超时.(这在我的docker容器本地发生,直到我打开network_mode"host".)
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa43cd4b4> <pcomp> <accomp>]
LCP: timeout sending Config-Requests
Run Code Online (Sandbox Code Playgroud)
但这没有启用hostNetwork,如果我启用它,我只需要发送一个请求,然后调制解调器挂起.
using channel 42
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
sent [LCP ConfReq id=0x7 <asyncmap 0x0> <magic 0xcdae15b8> <pcomp> <accomp>]
Script ?? finished (pid 59), status = 0x0
Script pptp XX.XX.XX.XX --nolaunchpppd finished (pid 60), status = 0x0
Script ?? finished (pid 67), status = 0x0
Modem hangup
Connection terminated.
Run Code Online (Sandbox Code Playgroud)
声明HostNetwork布尔让我看到从主机共享多个接口,所以这是工作但不知何故我无法建立连接,我不知道为什么.
也许有更好的解决方案?我仍然需要建立与VPN服务器的连接,但向主机添加路由记录可能不是最佳解决方案.
任何帮助是极大的赞赏!
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |