kubectlを使いこなそう! アプリ開発者のためのKubernetesトラブルシューティング
【15-D-4】Kubernetesは怖くない!開発者のためのインフラトラブルシューティング入門
「コンテナ化されたアプリケーションのデプロイ、スケーリング、および管理を自動化するためのオープンソースシステム」であるKubernetes。開発インフラとして導入する企業もある中で、「これまでインフラレイヤに触ったことがない」という開発者が戸惑う場面も増えている。Kubernetesの概要や実践的なトラブルシューティングについて、IT企業にて教育系プロダクトのSREに従事し、書籍『つくって、壊して、直して学ぶ Kubernetes入門』を著した高橋あおい氏が解説する。
怖くなくなるためにKubernetesを知ろう
セッション冒頭、高橋氏はKubernetesの持つ3点の特徴を挙げた。
- 障害発生時に、各コンテナの設定・復旧を簡単にする
- コンテナの仕様の管理を簡単にする
- 複数台サーバを利用してコンテナを起動したいとき、最適な起動先の決定を簡単にする
1.については、NGINXのコンテナが2つ欲しいというケースを例示した。「Kubernetesは2つのコンテナが起動している必要があるということを理解し、2つのうち片方のコンテナがクラッシュした際は自動的に復旧する」(高橋氏)というReconciliation Loopを行うことがKubernetesの特徴の1つだという。
2.は「マニフェストファイル」と呼ばれる、YAMLで書かれたファイルを利用して各設定を管理することができるという点だ。Kubernetesではインフラの設定をコードで書くという「Infrastructure as Code」の概念を実践しており、マニフェストファイルにさまざまな情報などを書き込むことでテストや差分管理が可能になる。
3.については、セットアップの際に書きこむ「どのOSを採用するか」「どの規格のメモリを使うか」といった情報がKubernetesのAPIで抽象化されており、そうしたサーバー固有の設定などを書く必要がないため工数削減につながるというものだ。
続けて、高橋氏はKubernetesのアーキテクチャについて解説した。構造としては、「頭脳的」なコンポーネントであるControl Planeがコンテナとして起動しており、それに合わせてWorker Node(従来でのコンテナ起動サーバー)も複数起動するという形だ。

ワーカーノード上のkubeletは、「自分のサーバー上に何のコンテナを起動すべきか」をkube-apiserverに問い合わせるが、高橋氏はこうした動きについて「実は一般的なアプリケーションと同じ」と説明する。
会員登録無料すると、続きをお読みいただけます
この記事は参考になりましたか?
- Developers Summit 2024 セッションレポート連載記事一覧
- この記事の著者
-
中島 佑馬(ナカシマ ユウマ)
立命館大学卒業後、日刊工業新聞社にて経済記者として勤務。その後テクニカルライターを経て、2021年にフリーランスライターとして独立。Webメディアを中心に活動しており、広くビジネス領域での取材記事やニュース記事、SEO記事の作成などを行う。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
この記事は参考になりましたか?
この記事をシェア

