Kubernetesについて多くのことを聞いているが、それらが何かはわからない?
Contents
Kubernetesとは?
Kubernetesは、コンテナオーケストレーションを処理するオープンソースツールです。コンテナのデプロイ、継続的なスケーリング、スケーリング解除、コンテナの負荷分散などを自動化します.
Googleは最初に開発しました Kubernetes Goプログラミング言語.
現在、コンテナのオーケストレーションの市場リーダーです。 Kubernetesは、動的にスケーリングするマイクロサービスアプリケーションをホストするための理想的なプラットフォームです。本番環境で作業している場合、Kubernetesはコンテナオーケストレーションに最も適した安全なプラットフォームです.
本番環境ではダウンタイムはゼロと予想されるため、クラスターは常に稼働している必要があります.
Google Cloud Platform(GCP)を使用すると、数回クリックするだけでKubernetesを起動できます。 AWSやAzureなどの他のクラウドプロバイダーでもサポートされています。また、複数のマネージドKubernetesプラットフォームが利用可能です.
Kubernetesを選ぶ理由?
以前は、開発者とテスターの間の戦いが一般的でした.
以前は環境が異なっていました。開発者のシステムで機能していたものがテスターシステムで実行されなかった.
ほとんどの組織がコンテナを使用するようになったため、環境の違いが原因で発生する問題は発生しなくなりました.
しかし、複数のコンテナを整理して実行することも簡単な作業ではありません。動的アプリケーションで作業している場合、スケールアップ/スケールダウンでは、コンテナーの数は通常のものです。このようなタスクを手動で実行すると、複雑でリスクが伴います。したがって、コンテナオーケストレーションツールが必要です。そのため、Kubernetesが必要です.
Kubernetesの機能
たくさんありますが、以下は最高のもののいくつかです.
#自動ビンパッキング
Kubernetesはアプリケーションをパッケージ化し、要件と利用可能なリソースに基づいてコンテナーを自動的に配置します
#サービスの検出と負荷分散
Kubernetesは、論理演算を実行しているコンテナに、コンテナのIPアドレスとDNS名を自動的に割り当てます。負荷分散機能は、コンテナのセット間にも存在します.
#ストレージオーケストレーション
Kubernetesは、選択したストレージシステムを自動的にマウントします。ローカルストレージまたはAWSなどのパブリッククラウドプロバイダーのいずれかです。.
#自己回復
コンテナーの1つが失敗したことをKubernetesが認識すると、そのコンテナーを再起動して、クラッシュしたコンテナーの代わりに新しいコンテナーを作成します。ノードに障害が発生した場合、そのノードで実行されているコンテナーは、クラスター内の別の実行中のノードで開始されます.
#水平スケーリング
簡単なコマンドでアプリケーションをすばやく拡大および縮小できます。シンプルなコマンドは、CLIまたはKubernetesダッシュボードから実行できます。 CPU使用率に基づいて自動スケーリングも可能で、コンテナーは自動的にスケールアップまたはスケールダウンされます.
#自動ロールバックとロールアウト
アプリケーションの更新があるたびに、Kubernetesはこれらの変更と更新をアプリケーションまたはその構成に段階的にロールアウトします。すべてのインスタンスが同時に更新されるわけではないため、高可用性が確保されます。問題が発生した場合、Kubernetesはその変更をすぐにロールバックします.
Kubernetesの用語
手を汚す前に、Kubernetesで定期的に使用されているいくつかの用語を知っておく必要があります。.
#ポッド
クラスターで実行されている1つ以上のコンテナーを表します.
#サービス
ポッド/アプリケーションにアクセスするための抽象的な方法.
#名前空間
これは、クラスター内の名前の衝突を取り除くために使用されます。同じ物理クラスター上の複数の仮想クラスターをサポートします.
#ノード
Kubernetesワーカーマシン.
# 集まる
Kubernetesでコンテナ化されたアプリケーションを実行するノードのグループで構成されています.
#注釈
リソースが必要とするデータを格納するためのラベル.
#ボリューム
ポッド内のコンテナーがアクセスするデータディレクトリです。.
#レプリカセット
実行中のポッドのいくつかのレプリカ.
#ラベル
システム全体で識別できるようにKubernetesオブジェクトに名前を付ける.
#クベレ
各ノードで実行され、コンテナーがポッドで実行されているかどうかを確認するエージェントです.
#Kubectl
Kubernetes APIサーバーと対話するコマンドラインユーティリティ.
#キューブプロキシ
クラスター内の各ノードのすべてのネットワークルールを含むネットワークプロキシ.
KubernetesとDocker
KubernetesがDockerとどのように異なるかを考えているかもしれません。 Kubernetes対Dockerのフレーズは誤解を招く可能性があります.
Dockerは、OS、ライブラリ、アプリケーションをコンテナ内にパッケージ化するプラットフォームです。 Dockerは、Kubernetesでの目的と同じことを行うことをお伝えします。しかし、Dockerだけで作業する場合、すべてが手動です。コンテナーを手動で開始および停止する必要があります。しかし、Kubernetesを使用すると、すべてが自動化されます.
Kubernetesはコンテナを持つポッドをスケジュールでき、Kubeletはコンテナを起動または停止するようDockerに指示します。 KubernetesのKubeletは、これらのコンテナーを監視し、マスターノードでそれらの情報を収集します。基本的な違いは、管理者がDockerに何をすべきかを指示するのではなく、Kubernetesではすべて自動化されていることです。.
コンテナーオーケストレーションに使用される別のツールはDocker Swarmです。だから、それらの違いは何ですか?
Kubernetes対Docker Swarm
Kubernetes | Docker Swarm |
インストールは複雑です | インストールは簡単です |
より大きなオープンソースコミュニティ | Kubernetesに比べてコミュニティが小さい |
何百ものコンテナを簡単に調整できます | 10〜20個のコンテナのオーケストレーションに最適 |
KubernetesダッシュボードはGUIを提供します | GUIなし |
自動スケーリングをサポート | 自動スケーリングをサポートしていません |
自動ロールバックでローリング更新をサポート | ローリング更新をサポートしますが、自動ロールバックはサポートしません |
ビルトインで利用可能なロギングとモニタリング | ロギングとモニタリングにはELKのようなサードパーティが必要 |
同じポッド内のコンテナーとボリュームを共有できます | クラスター内の任意のコンテナーとボリュームを共有できます |
結論
Kubernetesとは何か、それがどのように役立つかについて、基本的な理解が得られたと思います。あなたがDevOpsに参加したり、参加したいと考えているなら、私はこれを取ることをお勧めします Kubernetesを学ぶ素晴らしいUdemyコース.