先週、最近のウェビナー「 ハイブリッドクラウド時代におけるVM、コンテナ、Kubernetesの謎を解き明かす 」で 、コンテナインフラストラクチャに関する いくつかの質問を取り上げました。今週は、Kubernetes、Docker、ソフトウェアサプライチェーンに関する質問に取り組みます。 ウェビナーでよく聞かれた誤解の1つは、DockerとKubernetesが競合他社であるということです。 実際、KubernetesはDockerの方が優れています。 そして、DockerはKubernetesの方が優れています。
Docker And Kubernetes? 私はあなたが競争相手だと思いましたか?
私たちはいつもこの線に沿って質問を聞きます。 ここにいくつかの簡単な答えがあります:
Docker で Kubernetes を使用できますか?
- はい、彼らは一緒に行きます。 ホスト上のコンテナーを開始および停止するには、Docker Engine (オープン ソース の containerd に基づく) などのコンテナー ランタイムが必要です。
- 多数のホストで多数のコンテナーが実行されている場合は、次のようなものを管理するためのオーケストレーターが必要です。 次のコンテナーはどこから始まりますか? コンテナの可用性を高めるにはどうすればよいでしょうか。 どのコンテナが他のコンテナと通信できるかをどのように制御しますか? そこで登場するのが Kubernetes などのオーケストレーターです。
- コンテナー ランタイムとオーケストレーターは、一緒になる 2 つのコア アトミック ユニットです。 KubernetesとDockerエンジンをインストールするだけで機能するものを手に入れることができますが、エンタープライズ組織にはセキュリティ、監視とロギング、エンタープライズストレージとネットワーキングなどが必要です。
- これは、 コンテナプラットフォーム という感じで Docker Enterprise 入ってくる: Docker Enterprise は、コンテナと Kubernetes を大規模に使用する最も簡単で最速の方法であり、最新のアプリケーションの本番稼働までの時間を最速で提供し、ハイブリッド クラウドからエッジまで安全に実行します。 また、CNCF準拠バージョンのKubernetesも付属しています。
KubernetesはDocker Swarmに取って代わりますか?
- いいえ、一緒に使用できます。 Kubernetes と Docker Swarm はどちらもオーケストレーターであるため、最終目標は同じです。 新しいユーザーは、Docker Swarmを理解するのがはるかに簡単だと感じています。 ただし、Kubernetesは多くの機能を追加するように進化しました。
- 良い ニュース: Dockerエンタープライズでは 両方を並べて使用できます 。開発者とオペレーターがどのルートに進むかを決定できるようにすることで、どちらかの決定に縛られる必要はありません。
この選択の詳細については、オンデマンドウェビナー「 Swarm vs. Kubernetes、BoxBoatが提供」を参照してください。
コンテナー イメージ、セキュリティ、CI/CD
安全なソフトウェアサプライチェーンは、コンテナプラットフォームを構成するもののもう一つの大きな部分です。結局のところ、Docker Engine と Kubernetes はコンテナ イメージなしでは何の関係もありません。 これは明らかに多くの関心を持つ別の分野でした。
脆弱性スキャンのデモを行ったところ、開発ライフサイクルのどこにスキャンが当てはまるかについていくつかの疑問が出てきました。
開発中のコンテナをスキャンしますか? 試験。 品質保証。生産。
脆弱性スキャンは、 Docker Enterprise の一部である Docker Trusted Registry (DTR) の機能です。 スキャンは、新しいイメージがレジストリにプッシュされるとき、脆弱性データベースが更新されるとき、またはオンデマンドで実行できます。
- 答えは「常にスキャンする」です。 スキャンは、開発と運用の両方で実行できます。 レジストリにプッシュされたイメージをスキャンし、最新の脆弱性検出に対して引き続きチェックする必要があります。 脆弱性には、ライブラリがリリースされてから数か月または数年後に発見される方法があります。 コンテナーが最初に作成されたときにのみスキャンすると、既存のアプリケーションでこれらの新しい脆弱性を見逃すリスクがあります。
- Docker Desktop Enterprise のアプリケーション デザイナー (開発者向けにローカルにインストールされたツール) には、テンプレートが事前に構成されています。実際には、これらのテンプレートは DTR で「存在する」コンテナイメージです。 デスクトップエンタープライズでは、開発者はスキャンした画像を自動的にマシンにプルします。 さらに、テンプレートは、組織の特定の標準と承認されたフレームワークに合わせてカスタマイズできます。 コーディング標準、プラグイン、またはその他の成果物をテンプレートに直接組み込むこともできます。
- 脆弱性データベースが更新されるたびに、既存のイメージと脆弱性データベースが自動的にチェックされます。 運用側では、環境内に長時間実行されるコンテナーがある場合があります。 それらはスキャンされ、ユニバーサルコントロールプレーンに結果が表示されます。 そこから、実行中のアプリケーションのどれが影響を受けているかを簡単に判断し、問題に対処する方法を選択できます。
始める
多くの人が Kubernetes を使い始める方法について質問がありました。 幸いなことに、それらは答えるのがはるかに簡単な質問であり、リソースの多くは無料です!
- Docker と Kubernetes を自分で使い始めたいと思っていて、Windows 10 (Hyper-V 機能付き) または macOS マシンをお持ちの場合は、 Docker Desktop を入手してください。 無料で、セットアップが非常に簡単で、DockerとKubernetesの両方の準備が整います。
- Linuxワークステーションをお持ちの場合は、Docker Engineを無料で入手できます。 こちらの手順に従って、フォークされたバージョンではなく、実際のDockerエンジンを入手していることを確認してください。
- マシンにソフトウェアをインストールできない場合、または要件を満たす OS がない場合は、Play with Docker と Play with Kubernetes を無料で使用できます 。.どちらもブラウザから直接ノードへのアクセスを提供します。 また、入門演習をガイドするラボコンテンツもあります。
- Kubernetesでの最初のアプリケーションの設計に関するトレーニングチームのBill Millsによる優れたブログシリーズをお読みください。