Member-only story
Kubernetes:コンポーネントの紹介
はじめに
マイクロサービスの増加で、開発者や企業はかなり便利になり、利益をもたらしていますが、そのデプロイメントに関わる技術の複雑さにより、運用チームの負担も大きくなっています。この記事では、企業が顧客にサービスを提供するために、単一のウェブサイトとアプリケーションしか持っていなかった2000年代後半のことにつては言及していません。
現代では、Google、Microsoft、Amazonなどのハイテク巨大企業が幅広いサービスを提供しており、ダウンタイムに対する許容度はゼロに等しいという話です。競争環境におけるダウンタイムは、同じまたは類似の分野の別のサービスにすぐに取って代わられる可能性があるため、企業や提供するサービスにとって有益とはみなされない。
コンテナは迅速にデプロイできるにもかかわらず、特に何百、何千ものコンテナが同時に稼働している場合、管理が困難になることがあります。そんなとき、クラスタリングといえば、Kubernetesの出番です。この記事では、Kubernetes(k8sとしても知られています)の基本を説明した後、Kubernetes環境に存在する数々の(誤った)コンフィグレーションや脆弱性に入ります。
Kubernetesとは?
Kubernetes(通称k8s)は、オープンソースのContainer Orchestration Toolである。この記事の後半で、その意味を解明することにします。元々はGoogleが開発し、オープンソース化されたものです。
Kubernetesは、多くのコンテナで構成されるアプリケーションを管理するのに便利ですので、Container Orchestrationと呼ばれています。Kubernetesの基本的な機能は、Dockerのようなコンテナを、異なる環境間で管理することです。それは一体、どういうことでしょうか?コンテナが物理環境、仮想環境、クラウドベースのどの環境にあるかは関係ありません。Kubernetesを使えば、すべての環境を管理することができるのです。Kubernetesは、コンテナのデプロイやスケーリング時に役に立ちます。Kubernetesには、コンテナのデプロイと管理に使用できるClusterやPodといったさまざまなコンポーネントがあります。
企業におけるマイクロサービスの使用率が上がるについて、コンテナの利用が注目されています。コンテナは高速で、仮想マシンのように多くのリソースを必要とせず、またDocker Blogの記事で述べたような他の利点もあります。