前述のように、それはかなり複雑なトピックです。しかし、私は現時点でこれもやっています。ですから、あなたのためにいくつかのことを要約してみましょう。
Kubernetes(k8s)では、SaaSアプリケーションを編成します。最良の場合、それはクラウドネイティブアプリケーションです。クラウドネイティブアプリケーションのプロパティ/要件は、クラウドネイティブコンピューティングファンデーション(CNCF)によって策定されます。これは、GoogleがLinux Foundationに寄付した後、基本的にk8の周りに形成されました。 Cloud-nativeアプリケーションのプロパティ/要件は、コンテナパッケージ、動的管理、マイクロサービス指向(cncf.io/about/charter)です。アプリケーションがマイクロサービスベースで、すべてのサービスが別々のコンテナを持っている場合は、ほとんどがk8から利益を得ます。
マイクロサービスベースのアプリケーションでは、すべてのサービスを個別に開発することができます。開発者は、たとえば12Factorメソッド(12factor.net)に従うだけで済みます(ハードコードされたIPアドレスの代わりにenv varを使用するなど)。
開発者はサービスのコンテナを作成し、コンテナレジストリにプッシュします。ローカルの開発環境では、クラスタ内でコンテナレジストリを実行する必要があるため、開発者はコードをローカルにプッシュしてテストできます。
次に、ポート、ポートマッピング、env vars、コンテナイメージ...でk8sレプリケーションコントローラ、サービス、PetSetsなどを定義し、クラスタ内で作成して実行できます。
k8s-ドキュメントは、ローカルでk8を実行するためにMinikubeを推奨しています(kubernetes.io/docs/getting-started-guides/minikube/)。 Minikubeには、DNS、NodePorts、ConfigMaps、Secrets Dashboardsなどの機能があります。 私は、私の開発環境用のバグのあるクラスタを持つマルチノードCoreOS Kubernetesを、Puja AbbassiがBlog "正しいローカルKubernetes開発環境を見つける"(https://deis.com/blog/2016/local-kubernetes-development-environment/)で述べたように選んだので、私のプロダクション環境/プロダクトパリティ)。ベイグラント環境との は、次のような特徴を持って:均衡SkyDNSとコンテナのセット
内部負荷のためetcd
DNS名で
サービス発見フランネルとのネットワーク
あなたが知りたいのであれば、どのように動作するかは、このGithubレポのgithub.com/coreos/coreos-kubernetes/tree/master/multi-node(迷惑メールと一般的なフォルダ)の中を見てください。
あなたや開発者が本当に完全な "クラウド環境"をローカルで実行する必要がある場合は、自分自身に質問しなければなりません。多くの場合、開発者はサービス(マイクロサービスとコンテナに基づいて)を独立して開発することができます。
ただし、複数のサービスまたはすべてのサービスをローカルマシン上で開発環境として実行する必要があることがあります。