将文件从 Openshift 复制到外部 unix 机器
Copy files from Openshift to external unix machine
我每天使用 rsync(oc 客户端)将文件从 openshift pod 复制到外部 unix 机器以进行批处理 activity。这个过程应该使用来自外部 unix 机器的 shell 脚本自动执行。仅一天的空班经验
oc login -u=<user> -p=<password> -n=<project>
oc rsync <pod-name>:/remote/dir/filename /unix/dir
查询 1:
但是我需要少密码登录或者我应该使用加密密码。这样密码就不会暴露。有什么方法可以做到这一点?
查询 2:
rsync 是正确的方法吗? sftp文件传输怎么样?不确定,如何使用 sftp 从 openshift pod 传输文件。
对于查询 1,这绝对 Service Accounts 的完美用例。创建服务帐户后,您将使用 oc sa get-token <sa-name>
为服务帐户获取 long lived 身份验证令牌(请注意,您仍需要提供服务帐户 授权执行rsync
,oc create rolebinding <sa-name> --clusterrole=edit
).
对于查询 2,我认为 rsync
是正确的方法。另一种选择是,不是从 pod pulling 你的内容,你可以设置一些东西 push 你的内容从 pod 到你的 unix 机器.显然,这需要 unix 机器是公开可用的,所以如果这是一个交易破坏者,仍然 rsync
.
在 OpenShift 中将 ssh 密钥存储为秘密:SSH Key Authentication
可以挂载到FS,在rsync期间可以直接访问目标机器。
- 通过从 pod 到目标机器的 ssh 访问,您可以定期检查特定文件夹中的文件是否存在,比如
<target_ip>:<target_folder_conf>/trigger_to_copy/do_copy
- 如果
do_copy
存在,启动rsync
- 完成 rsync 后,在目标机器上删除
do_copy
- 在下一个 运行 中,当 pod 检查
do_copy
时,它可能不存在,并且下次在目标机器上创建文件时会发生 rsync
- 在远程机器上,您可以配置为按要求的时间间隔创建
do_copy
我每天使用 rsync(oc 客户端)将文件从 openshift pod 复制到外部 unix 机器以进行批处理 activity。这个过程应该使用来自外部 unix 机器的 shell 脚本自动执行。仅一天的空班经验
oc login -u=<user> -p=<password> -n=<project>
oc rsync <pod-name>:/remote/dir/filename /unix/dir
查询 1:
但是我需要少密码登录或者我应该使用加密密码。这样密码就不会暴露。有什么方法可以做到这一点?
查询 2:
rsync 是正确的方法吗? sftp文件传输怎么样?不确定,如何使用 sftp 从 openshift pod 传输文件。
对于查询 1,这绝对 Service Accounts 的完美用例。创建服务帐户后,您将使用 oc sa get-token <sa-name>
为服务帐户获取 long lived 身份验证令牌(请注意,您仍需要提供服务帐户 授权执行rsync
,oc create rolebinding <sa-name> --clusterrole=edit
).
对于查询 2,我认为 rsync
是正确的方法。另一种选择是,不是从 pod pulling 你的内容,你可以设置一些东西 push 你的内容从 pod 到你的 unix 机器.显然,这需要 unix 机器是公开可用的,所以如果这是一个交易破坏者,仍然 rsync
.
在 OpenShift 中将 ssh 密钥存储为秘密:SSH Key Authentication
可以挂载到FS,在rsync期间可以直接访问目标机器。
- 通过从 pod 到目标机器的 ssh 访问,您可以定期检查特定文件夹中的文件是否存在,比如
<target_ip>:<target_folder_conf>/trigger_to_copy/do_copy
- 如果
do_copy
存在,启动rsync - 完成 rsync 后,在目标机器上删除
do_copy
- 在下一个 运行 中,当 pod 检查
do_copy
时,它可能不存在,并且下次在目标机器上创建文件时会发生 rsync - 在远程机器上,您可以配置为按要求的时间间隔创建
do_copy