跳到主内容

kubevpn sync

将本地目录同步到克隆的工作负载目录,该工作负载在当前命名空间中运行,具有与目标工作负载相同的卷、环境变量和网络

通过这种方式,我们在当前命名空间中启动另一个 deployment,但使用不同的镜像版本, 也支持服务网格代理。只有带有特定 header 的流量才会命中同步资源。

示例

同步 deployment 并将本地目录同步到远程

kubevpn sync deployment/productpage --sync ~/code:/code/app

使用服务网格同步,带有 HTTP header foo=bar 的流量命中同步工作负载,否则命中原始工作负载

kubevpn sync deployment/productpage --sync ~/code:/code/app --headers foo=bar

同步位于堡垒机或 SSH 跳板机后面的工作负载

kubevpn sync deployment/productpage --sync ~/code:/code/app --ssh-addr 192.168.1.100:22 --ssh-username root --ssh-keyfile ~/.ssh/ssh.pem --headers foo=bar

支持 ProxyJump

┌──────┐     ┌──────┐     ┌──────┐     ┌──────┐                 ┌────────────┐
│ pc ├────►│ ssh1 ├────►│ ssh2 ├────►│ ssh3 ├─────►... ─────► │ api-server │
└──────┘ └──────┘ └──────┘ └──────┘ └────────────┘
kubevpn sync deployment/productpage --sync ~/code:/code/app --ssh-alias <alias> --headers foo=bar

支持 SSH 认证 GSSAPI

kubevpn sync deployment/productpage --sync ~/code:/code/app --ssh-addr <HOST:PORT> --ssh-username <USERNAME> --gssapi-keytab /path/to/keytab
kubevpn sync deployment/productpage --sync ~/code:/code/app --ssh-addr <HOST:PORT> --ssh-username <USERNAME> --gssapi-cache /path/to/cache
kubevpn sync deployment/productpage --sync ~/code:/code/app --ssh-addr <HOST:PORT> --ssh-username <USERNAME> --gssapi-password <PASSWORD>

选项

-c, --container='':
容器名称

--debug=false:
是否启用调试模式

--extra-cidr=[]:
额外的网段 CIDR

--extra-domain=[]:
额外的域名字符串

--extra-node-ip=false:
将集群节点 IP 添加到路由表

-H, --headers=[]:
带有特定 Header 的流量将被路由到同步工作负载

--image='ghcr.io/kubenetworks/kubevpn:latest':
使用此镜像启动容器

--image-pull-secret-name='':
拉取私有仓库镜像时使用的 Secret 名称

--remote-kubeconfig='':
远程 SSH 服务器上 kubeconfig 的绝对路径

--ssh-addr='':
SSH 跳板服务器地址

--ssh-alias='':
SSH 配置别名

--ssh-jump='':
堡垒机配置字符串

--ssh-keyfile='':
SSH 私钥文件

--ssh-password='':
SSH 密码

--ssh-username='':
SSH 用户名

--sync='':
同步本地目录到远程 pod 目录,格式:LOCAL_DIR:REMOTE_DIR

--target-image='':
同步容器使用此镜像启动,如果未指定,使用原始镜像

--transfer-image=false:
将镜像转存到远程仓库