iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
DevOps

玩耍開源k8s30天系列 第 27

day27 : k8s backup/restore/migrate with velero(下)

昨天介紹了velero的概念,今天來配置一套velero出來看看吧。

配置velero非常的簡單,只需要準備好velero的cli並且在可以連到k8s的地方執行就可以了,為了讓備份的資料有地方儲存,要思考好儲存的位置跟儲存方案的轉移是否方便,在storage上我選擇的minio儲存,原因如下

  1. 好管理,有api也有介面可以使用。
  2. 完全兼容aws s3 之後想要轉換也容易。
  3. 輕量快速,
  4. 可以container化,但是我比較不喜歡。
    另外因為loki的關係其實我也已經使用了一套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其實相差不會太多。


上一篇
day26 : k8s backup/restore/migrate with velero(上)
下一篇
day28 : OPA規範k8s yaml(上)
系列文
玩耍開源k8s30天31

尚未有邦友留言

立即登入留言