2

Google Filestore を GCS バケットにバックアップしようとしています。また、プライマリ リージョンのファイルストアの内容をセカンダリ リージョンの別のファイルストアに再同期したいと考えています。

このために、コンピューティング エンジン VM で正常に動作する bash スクリプトを作成しました。これを、GKE クラスター内で kubernetes cronjob として実行している docker コンテナーに変換しました。

しかし、GKE ポッド内でスクリプトを実行すると、次のエラーが表示されます。

root@filestore-backup-1594023480-k9wmn:/# mount 10.52.219.10:/vol1 /mnt/filestore-primary 
mount.nfs: access denied by server while mounting 10.52.219.10:/vol1

コンテナーからファイルストアに接続できます。

root@filestore-backup-1594023480-k9wmn:/# telnet 10.52.219.10 111 
Trying 10.52.219.10... 
Connected to 10.52.219.10. 
Escape character is '^]'.

ポッドの IP 範囲も VPC の IP 範囲に追加されます。Filestore には、VPC を許可するためのフル アクセスが付与されています。同じスクリプトがコンピューティング エンジン VM で正常に動作しています。

GKE ポッド内に Google ファイルストアをマウントできないのはなぜですか?


Google ファイルストアのバックアップを取るために使用される bash スクリプト:

#!/bin/bash

# Create the GCloud Authentication file if set
    touch /root/gcloud.json
    echo "$GCP_GCLOUD_AUTH" > /root/gcloud.json
    gcloud auth activate-service-account --key-file=/root/gcloud.json


#backup filestore to GCS

DATE=$(date +"%m-%d-%Y-%T")

mkdir -p /mnt/$FILESHARE_MOUNT_PRIMARY
mount $FILESTORE_IP_PRIMARY:/$FILESHARE_NAME_PRIMARY /mnt/$FILESHARE_MOUNT_PRIMARY

gsutil rsync -r /mnt/$FILESHARE_MOUNT_PRIMARY/ gs://$GCP_BUCKET_NAME/$DATE/


#rsync filestore to secondary region

mkdir -p /mnt/$FILESHARE_MOUNT_SECONDARY
mount $FILESTORE_IP_SECONDARY:/$FILESHARE_NAME_SECONDARY /mnt/$FILESHARE_MOUNT_SECONDARY

rsync -avz /mnt/$FILESHARE_MOUNT_PRIMARY/ /mnt/$FILESHARE_MOUNT_SECONDARY/

すべての変数は、yaml で環境変数として渡されます。

4

1 に答える 1