0

MySQL:5.7 を実行する AWS EKS クラスターにポッドがあります。データを初期化して入力する SQL ファイルがあります。通常の docker-compose では、docker-compose ファイルでマウント ポイントを使用します。

volumes:
  - ./<path-to-my-config-directory>:/etc/mysql/conf.d
  - ./<path-to-my-persistence-directory>:/var/lib/mysql
  - ./<path-to-my-init.sql>:/docker-entrypoint-initdb.d/init.sql

EKS では、MySQL データを保存するストレージ クラスを作成できます。

init.sql ファイル (約 8 GB) を使用して、EKS クラスターで実行されている MySQL ポッドを初期化するにはどうすればよいですか?

更新:小さな init ファイルがある場合、または Kubernetes ホストにアクセスできる場合にこれを行う方法を説明する別の質問があります: How to initialize mysql container when created on Kubernetes?

ただし、私の場合は AWS EKS を使用しており、初期化ファイルは数ギガバイトなので、助けていただければ幸いです。

4

1 に答える 1

3

Kubernetes でも​​簡単です。あなたは次のようにそれを行うことができます、

  1. init.sqlファイルをKubernetesボリュームに配置します。
  2. このボリュームを/docker-entrypoint-initdb.dmysql ポッドのディレクトリにマウントします。

サンプルの yaml ファイルを次に示します: mysql-init-demo.yaml

を使用して、mysql コンテナのディレクトリにマウントされている Kubernetes ボリュームにファイルinit-containerをダウンロードすることもできます。init.sql/docker-entrypoint-initdb.d

UPD:更新で指定したように、参照したソリューションは機能しません。init-containerアプローチはあなたに最適だと思います。ここに、あなたができる方法があります:

  1. PVC を作成します。その名前を としましょうinit-script
  2. init-containerここで、 mysql ポッドに a を追加します。init-scriptこののディレクトリにこの pvc をマウントしinit-containerます。このディレクトリにファイルをinit-containerダウンロードするように構成します。init.sql

  3. init-scriptに mysql コンテナーをマウントします。/docker-entrypoint-initdb.d

init-containerアプローチのサンプルが必要な場合はお知らせください。

UPD-2:init-containerアプローチのサンプルを追加しました。ここで見つけることができます。

于 2018-10-30T17:01:36.200 に答える