Member-only story

Kubernetes | Architecture and kubectl

gavin.zhou
Oct 13, 2022

--

この記事では、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…

--

--

No responses yet