現在、私は dockerhub ウェブサイトから取得して Ubuntu 14.04 の Docker イメージを作成し、このイメージに対して docker run を実行してこのイメージのコンテナー インスタンスを作成しました。次に、この実行中のコンテナー内に Apache サーバーをインストールし、このコンテナーからサーバーを実行しました。
さて、Kubernetes を使用してこの Docker コンテナをデプロイするにはどうすればよいでしょうか?
答え1
通常は:
- Docker イメージでは Apache を実行する必要はなく、サーバー コード (たとえば、Tomcat、Springboot など) だけを実行する必要があります。Apache で実行されていた処理の多くは、K8S インフラストラクチャで実行されます。Apache が必要な少数のケース (たとえば、静的コンテンツを提供するため) では、サーバー コンテナーと同じ「ポッド」内の別のコンテナーにすることができます。
- イメージを作成するには、 を実行せず
docker run
、Dockerfile を作成し、適切な を実行しますdocker build
。 - Kubernetes (別名 K8S) はデプロイメント ユーティリティではなく、コンテナを実行および監視するためのインフラストラクチャです。デプロイメントはそのほんの一部にすぎません。
- インフラストラクチャがまだ稼働していない場合は、構築する必要があります。単一のコンテナの場合、これはやりすぎです(*)。シンプル
docker-compose
なデプロイメントを検討できます。多くのことは、docker-compose
後で K8S に変換できます。Linux イメージでいくつかのコンテナを実行するには、それらを起動する systemd サービスを作成するだけです。 - K8S インフラストラクチャをお持ちの場合は、最初のステップとしてコンソールからコンテナ/ポッドをデプロイし、その後 の使用方法を学ぶことができます
kubectl
。ただし、そのインフラストラクチャを作成した人がおそらく助けてくれるでしょう (独自のデプロイ標準があるでしょう)。
- インフラストラクチャがまだ稼働していない場合は、構築する必要があります。単一のコンテナの場合、これはやりすぎです(*)。シンプル
(*) 現在の Docker スキルを考えると、これはかなり難しいでしょう。機能させるには適切に実行する必要があります (そして、存在した最初の数日間にハッキングされてはいけません)。