SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イラストではじめるKubernetes

イラストではじめる「Kubernetesが動くしくみ」~Kubernetesのリソースとマニフェストとは

Kubernetesのアーキテクチャ

 Kubernetesのアーキテクチャを見ていきましょう。

 まず大枠として、KubernetesはControl PlaneとNodeからできています。Control Planeはいわゆる頭脳のパートで、Nodeは実際にアプリケーションのコンテナが起動するマシン(物理マシンでも仮想マシンでも良い)です。

 次にPodを利用してコンテナが起動する流れを見ていきましょう。

 ①ユーザーはPodを作成するマニフェストを書き、kubectlを利用してkube-apiserverにリクエストを送ります。②リクエストを受け取ったkube-apiserverはetcdというデータベースに情報を保存します。③kube-schedulerがPodを新規作成する必要があることを検知し、メモリ・CPUなどさまざまな情報からどのNodeにPodを作成すべきか決定します。④kube-schedulerによってPodを作成するNodeが決まると、⑤kubeletが「自分のNodeにPodを作成すべきかどうか」を検知します。kubeletは自分のNodeにPodを作成すると決まったことがわかると、コンテナランタイムに指示してコンテナを起動します。

 こうした流れでkubectlを利用してPod作成を指示したユーザーはKubernetesクラスタ上にコンテナを起動できます。

 このようにAPIサーバ、データベース、そしてAPIサーバに問い合わせて稼働する各コンポーネントとしてみると一般的なWebサービスの構成と似ていて馴染みがでてきませんか?

 Kubernetesのアーキテクチャで特徴的なのは、多くのコンポーネントがAPIサーバに問い合わせ、自分がすべき仕事にだけ専念しているところです。これはKubernetesが障害に強いと言われる理由の1つでもあります。例えばControl Planeが丸々障害でダウンしてしまったとします。各NodeのkubeletはAPIサーバにアクセスできなくなりますが、Nodeが正常に生きている限りkubeletは自分の管理するコンテナを監視し、稼働し続けます。

 Kubernetesの動き、リソースやマニフェストについて理解が進んだでしょうか? 今回完全に理解できていなくても大丈夫です。次回は手を動かしてみる回になるので、手を動かしながらまたこの回に戻ってきてください。きっとより理解が深まることでしょう!

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
イラストではじめるKubernetes連載記事一覧

もっと読む

この記事の著者

あおい(アオイ)

 大手メーカーにてソフトウェアエンジニアエンジニアを経て2019年7月サイボウズ株式会社にSREとして入社。 現行インフラ基盤上のアプリケーションを新インフラ基盤(Kubernetes)に移行するプロジェクトが主な仕事です。著書は、「まんがではじめるKubernetes」など。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15710 2022/04/01 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー