昨天介紹了velero的概念,今天來配置一套velero出來看看吧。
配置velero非常的簡單,只需要準備好velero的cli並且在可以連到k8s的地方執行就可以了,為了讓備份的資料有地方儲存,要思考好儲存的位置跟儲存方案的轉移是否方便,在storage上我選擇的minio儲存,原因如下
所以也順便講一下minio的配置方法,minio的安裝也是透過binary檔案就可以了,方法如下
wget https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod +x minio
cp -rp minio /usr/local/bin/
cat > /etc/systemd/system/minio.service << EOF
[Unit]
Description=minio
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local/
User=root
Group=root
EnvironmentFile=/etc/minio
ExecStart=/usr/local/bin/minio server \$MINIO_OPTS
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
EOF
cat > /etc/minio << EOF
MINIO_OPTS="http://IP:9000/data"
MINIO_ACCESS_KEY=“minioadmin”
MINIO_SECRET_KEY="minioadmin"
EOF
這樣daemon啟動後就會有一台minio可以存取囉,用網頁輸入IP:9000 port就可以用了,如果有想要做成minio cluster的話在/etc/minio檔案配配置多台主機即可( MINIO_OPTS="http://IP1:9000/data http://IP2:9000/data” ),如果想要多地同步資料其實也可以通過Rclone這個工具簡易的玩看看唷。
接著開始配置velero的資源
wget https://github.com/vmware-tanzu/velero/releases/download/v1.7.0-rc.1/velero-v1.7.0-rc.1-linux-amd64.tar.gz
tar zxvf velero-v1.7.0-rc.1-linux-amd64.tar.gz
cp velero-v1.7.0-rc.1-linux-amd64/velero /usr/local/bin/
cat > /etc/velero/credentials-velero-minio << EOF
[default]
aws_access_key_id = minioadmin
aws_secret_access_key = minioadmin
EOF
接著執行下面的command,有一點要注意是,因為storage是使用minio server所以就算是在gcp環境也適用aws plugin,但是velero其實也可以支援gcp的儲存空間。
velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.0.0 --bucket velero --secret-file /etc/velero/credentials-velero-minio --use-volume-snapshots=true --backup-location-config region=default,s3ForcePathStyle="true",s3Url=http://IP:9000 --snapshot-location-config region="default" --use-restic --default-volumes-to-restic --wait
這樣等待一下後就會有velero相關資源可以使用囉,用velero —help可以看到backup restore的相關指令用法,跟kubectl其實相差不會太多。