Member-only story
Kubernetes | Architecture and kubectl
この記事では、Kubernetesのアーキテクチャと、クラスタと対話するために使用するkubectlコマンドラインツールについて詳しく説明します。
Kubernetes アーキテクチャー
Kubernetesクラスタは、2種類のノードで構成されています。マスターノード(コントロールプレーン)とワーカーノードです。マスターノード/コントロールプレーンはクラスタを管理するタスクを実行し、ワーカーノードはポッドでコンテナ化されたアプリケーションを実行します。
コントロールプレーン(マスターノード)
スケジューリング、Podのステータス監視、Podの再起動など、すべての管理処理を行います。
以下のコンポーネント/プロセスで構成さます。
Apiサーバー — ユーザーはkubectlなどのツールを使ってApiサーバーと通信します。これは、クラスタへのゲートウェイです。クラスタへの更新やクエリの最初のリクエストは、まずAPIサーバーに送られます。このサーバーは、認証された当事者のみがクラスタにアクセスできるように認証を行い、それを各プロセスに転送します。
Client request -> API server -> Validates request -> Required processes -> Pod
Scheduler — ポッドのスケジューリングを担当します。新しいコンテナが必要とするリソースとワーカーノードの利用可能なリソースに応じて、新しいポッドの起動に最適なノードを決定します。ノードが選択されると、そのノードのkubeletにポッドとコンテナを起動するよう指示します。
Schedule request -> API server -> Scheduler -> Node selection -> Kubelet starts a pod in selected node
Kubeコントローラマネージャ — 実行中のPodが死ぬのを検出し、再スケジュールされるようにしてくれます。クラスタのステータス変化を検出し、クラスタが回復して目的の状態に到達することを保証します。ステータス変化が検出されると
Controller manager -> Scheduler -> Kubelet
Cloud Controller manager — Cloud Controller…