たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

[Kubernetesのしくみ] GKEはkubernetesの管理コストを減らす

   

Dockerの出現により、近年はシステムのコンテナ化が進みつつあります。そのコンテナを管理するものとして、kubernetes(読み:クバネテス,k8sとも表記される)というGoogleが開発したオープンソースのソフトウェアがあります。しかしながら、kubernetesは管理コストが高く、それが多くの企業にとって導入のハードルとなっていると言われています。そこで、GoogleはKubernetesの管理コストを下げるために、マネージドなKubernetesとしてGoogle Kubernetes Engine (GKE)を開発しました。こちらはGCPから利用できます。

今回はゆるっとKubernetesとGKEの比較解説をします。

gke icon

KubernetesはコンテナコンピューティングのOS

Kubernetesはコンピューティング ホス トの集合体を対象とした OS と考えられます。
ホスト用の OS に似た次のような機能を提供します。
● ワークロードのスケジュール
● ワークロードに適したホストの検索
● ワークロードの健全性のモニタリング
● 必要に応じたスケールアップとスケールダウン
● 必要に応じた場所の移動

Kubernetesの問題点

Kubernetesはマスターとノードで構成されます。ユーザはそれらを管理する必要があり、その管理コストがリソースのコンテナ化の問題のひとつだったりします。

その管理を担ってくれるのがGoogle Kubernetes Engine (GKE)です。こちらは、マスターノードを抽象化したものとして扱えるので、Kubernetesを運用にかかるさまざまなコストを低減できます。

GKEとノード

GKEはGCEでノードを構成します。ただし、このノードはユーザ自身で生成する必要があります。そのノードに対して、ポッドと呼ばれるコンテナ群をデプロイします。(コンテナを動かすにはコンピューティングリソースが必要なので、GCEなどが必要になる。)生成したノードに対するコンテナのデプロイや死活監視等をGKEが行ってくれるので、生のKubernetesを利用するよりもユーザの管理コストを減らすことが可能です。

KubernetesとGKEの違い

GKEはKubernetesのマスターノードを抽象化して管理する分、運用コストを減らせます。

まとめ

● Kubernetes コントローラはクラスタの状態を あるべき状態と常に一致させる
● Kubernetes は、マスターとノードで稼働している
● 一連のコントロール プレーン コンポーネントで構 成されている
● GKE はマスターを抽象化して切り離す
● ユーザーはマニフェスト ファイルを使用してある べき状態を宣言する

ではでは

 - GCP , ,