オオイシdockerツイートシェアはてブ送るPocketこんにちは!オオイシ(@mako_0705)です。今回はKubernetes(クーベネティス)について調べたのでご紹介です。「GCPとの関係は?」その辺りを明らかにしていこうと思います。まとめKubernetes(クーベネティス)とは?Kubernetesとは、複数のホストで稼働しているDockerコンテナをまとめて管理するためのツールです。負荷状況に応じたスケールの調整コンテナの一括監視サービスを提供しながらのアップデートなど、容易に実現できます。その他の特徴としては障害発生時の自動復旧などの仕組みも備わっています。今回は、KubernetesのノードやPodなどの機能の概要や用語の説明について簡単に解説していきます。Kubernetesは「k8s」でと略称されることもあります。「k+8文字+s」の略なのだだそう。Engine(GKE)というプロダクトがあります。GKEはKubernetesを実行するためのサービスなわけですが、Kubernetesは主にGoogleが中心となって開発が進められているオープンソースのツールでなので、Kubernetesの実行する上での環境が最適化されています。Service(AKE)などがあります。Dockerとの関係についてKubernetesはコンテナを統合的に管理するためのツールなので、Dockerはもちろん対応しています。Docker以外のコンテナも色々あるらしいのですが、知らないのでここでは触れません。Macなどのローカル開発環境でもKubernetesが標準でサポートされるようになりました。Kubernetesの用語Kubernetesを使う上での基礎知識が必要なので、整理してみました。KubernetesとGKEの全体構成は厳密じゃないですが、このようなイメージです。ノード(Node)Dockerコンテナが動作するサーバのことです。Engine)の1つが1つのノードになります。このように、GKEからクラスタを作成するときに、このような設定がありますが、ノードの数だけGCEが作成された上で、GKEでクラスタ構成されます。マシンタイプは通常のGCEと同じです。ノード数は後から追加・削除が可能です。ポッド(Pod)Kubernetesでの管理上の最小単位です。ポットには、1つまたは複数のDockerコンテナが含まれます。Kubernetesはポッドを単位としてスケールするので、Webサーバー+プロキシサーバーのように、関連するコンテナをグループにする必要があります。作成や停止の単位がポッドなので、WebサーバーとDBサーバーを1つのポッドにしてはいけません。マスターサーバーコンテナ全体管理するためのサーバーです。GKEの場合はKubernetesクラスタから作成します。マスターサーバーは、コマンドのリクエストを受け取ってノード全体を自動的にスケールしたり、障害発生時の自動復旧するなどの、クラスタ全体の管理をします。オーケストレーションツールの指揮役だと理解しておけば良いでしょう。レプリカセット(ReplicaSet)Kubernetesクラスタ上で決められた数のポットを起動しておくための仕組みです。WEBサーバーのレプリカ数を3個とした場合は、クラスタ内で常に3つのポッドが起動した状態になります。この特性上、1つのポッドがサーバーダウンを検知したので自動でポッドを作成WEBサーバーのレプリカ数を3個から6個に増やしてスケールアップといった目的で利用されます。サービスインターネットからの外部アクセスがある場合に定義します。Webブラウザから80番ポートでアクセスがあった場合に、ロードバランサなどで負荷分散しながらKubernetesクラスタ内のポッドに割り振るために使います。まとめ今回は、Kubernetesの概要と用語について紹介しました。次回の記事では、実際にGKEを使ったKubernetesの実行例についての紹介を記事にする予定です。dockerdockerKubernetesツイートシェアはてブ送るPocketFOLLOWTwitterシステムの相談したいんだけど。【AWS】CodePipelineでRailsのCI/CD環境を構築。Reserved.Translate。