もう1つのすばらしい出発点は、このVagrantセットアップ、特にです。ホストOSがWindowsの場合。明らかな利点は
- 迅速で簡単なセットアップ
- マシンを破壊/再現しやすい
- リソースに対する暗黙の制限
- 複数のノードを作成して水平スケーリングをテストする機能
欠点-大量のRAMが必要で、VirtualBoxはVirtualBoxです...良くも悪くも。
利点と欠点が混在するのは、NFSを介してファイルをマッピングすることです。このセットアップでは、2つのRC定義セットを作成しました。1つは、アプリケーションサーバーのDockerイメージをダウンロードするだけです。もう1つは、HostOS-> Vagrant-> VirtualBox-> CoreOS-> Kubernetesポッドからファイルマッピングを設定する追加の7行です。Dockerイメージのソースコードを上書きします。
これの欠点は、NFSファイルキャッシュです。これを使用すると、問題が発生します。これがないと、問題が発生します。設定を行っmount_options: 'nolock,vers=3,udp,noac'
ても、キャッシュの問題は完全に解消されませんが、ほとんどの場合は機能します。コンテナで実行されたGulpタスクの一部は、ホストOSで8秒かかる場合、5分かかることがあります。良い妥協はあるようmount_options: 'nolock,vers=3,udp,ac,hard,noatime,nodiratime,acregmin=2,acdirmin=5,acregmax=15,acdirmax=15'
です。
コードの自動再読み込みについては、これは言語固有ですが、PythonにはDjangoのdevserverが、Node.jsにはNodemonが使用されています。フロントエンドプロジェクトの場合、もちろんgulp + browserSync + watchなどを使用して多くのことを実行できますが、多くの開発者にとって、Apacheからサービスを提供し、従来のハードリフレッシュを実行することは難しくありません。
Kubernetes用に4セットのyamlファイルを保持しています。開発、「開発可能」、ステージ、製品。それらの違いは
- 環境を明示的に設定する環境変数(dev / stage / prod)
- レプリカの数
- devstable、stage、prodはdockerイメージを使用します
- devはdockerイメージを使用し、NFSフォルダーをそれらのソースコードでマップします。
多くのbashエイリアスとオートコンプリートを作成することは非常に便利rec users
ですkubectl delete -f ... ; kubectl create -f ...
。入力するだけで実行できます。セットアップ全体を開始したい場合は、と入力recfo
すると、12個のサービスが再作成され、最新のDockerイメージが取得され、Staging envから最新のdbダンプがインポートされ、古いDockerファイルがクリーンアップされてスペースが節約されます。