Kubernetes(GKEでホスト)でFactorioゲームサーバーを実行しようとしています。
Persistent Volume Claimを使用してステートフルセットをセットアップし、ゲームサーバーの保存ディレクトリにマウントしました。
ゲームサーバー上の保存にアクセスできるように、ローカルコンピューターからこの永続的なボリューム要求に保存ファイルをアップロードしたいと思います。
この永続的なボリューム要求にファイルをアップロードする最良の方法は何ですか?
私は2つの方法を考えましたが、どちらがベストか、どちらかが良いアイデアかどうかはわかりません:
はるかに簡単な方法があることがわかりました:kubectl cp
コマンド。
このコマンドを使用すると、コンピューターからクラスターで実行されているコンテナーにデータをコピーできます。
私の場合、私は走りました:
kubectl cp ~/.factorio/saves/k8s-test.Zip factorio/factorio-0:/factorio/saves/
これにより、k8s-test.Zip
コンピューター上のファイルを/factorio/saves/k8s-test.Zip
クラスターで実行されているコンテナ内。
見る kubectl cp -h
より詳細な使用情報と例については。
GoogleCloudでデータフォルダーを作成できます。
gcloud compute ssh <your cloud> <your zone>
mdkir data
次に、PersistentVolumeを作成します。
kubectl create -f hostpth-pv.yml
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-local
labels:
type: local
spec:
storageClassName: local
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/home/<user-name>/data"
PersistentVolumeClaimを作成します。
kubectl create -f hostpath-pvc.yml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: hostpath-pvc
spec:
storageClassName: local
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
selector:
matchLabels:
type: local
次に、ファイルをGCloudにコピーします。
gcloud compute scp <your file> <your cloud> <your zone>
最後に、このPersistentVolumeClaimをポッドにマウントします。
...
volumeMounts:
- name: hostpath-pvc
mountPath: <your-path>
subPath: hostpath-pvc
volumes:
- name: hostpath-pvc
persistentVolumeClaim:
claimName: hostpath-pvc
そして、GGloudのデータフォルダーにファイルをコピーします。
gcloud compute scp <your file> <your cloud>:/home/<user-name>/data/hostpath-pvc <your zone>
いくつかのファイルを提供しているので、Google Cloud Storage( https://cloud.google.com/storage/ )を使用できます。
もう1つのオプションは、PersistenVolumeClaimsを使用することです。ファイルを頻繁に更新しない場合は、これを実行しているときに、Podからディスクをデタッチする必要があるため(Podを削除する必要があるため)、これはより適切に機能します。
GCE永続ディスクを作成し、GCE VMにアタッチし、ファイルを配置して、VMを削除し、PDをPersistentVolumeClaimとしてKubernetesに持ち込むことができます。 。その方法に関するドキュメントがあります: https://cloud.google.com/kubernetes-engine/docs/concepts/persistent-volumes#using_preexsiting_persistent_disks_as_persistentvolumes