情景
由于需要迁移数据到新的服务,但是服务在不同命名空间,而且ack nas存储不支持快照。于是想到使用rsync pod 2 pod办法。
源pod (业务pod并自行安装了rsync) -> 目标迁移pod(open-ssh-server)
dockerfile
FROM linuxserver/openssh-server:latest
LABEL maintainer="chunk"
RUN \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
rsync
openssh-server.yaml
根据实际情况挂载具体的pvc,这个yaml删除了挂载pvc部分。比如挂载在/data目录
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: openssh-server
name: openssh-server
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: openssh-server
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: openssh-server
spec:
containers:
- env:
- name: PUID
value: '1000'
- name: PGID
value: '1000'
- name: PASSWORD_ACCESS
value: 'true'
- name: USER_PASSWORD
value: Aa.1dfdgffdf3dfgtljlj
- name: USER_NAME
value: zhangsan
- name: SUDO_ACCESS
value: 'true'
image: '516249940/docker-openssh-server-rsync:latest'
imagePullPolicy: IfNotPresent
name: openssh-server
resources:
requests:
cpu: 250m
memory: 512Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/localtime
name: volume-localtime
使用
在业务pod有rsync的另一端进行操作。同步目录到目标容器。
rsync -av -e 'ssh -p 2222' /xxxx/path/data zhangsan@10.3.1.247:/data