継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

入門 Kubernetes 1章

タダです。

Dockerの勉強しているのですが、関連技術のKubernetesの本を買ったので並行で勉強していきます。

www.oreilly.co.jp

# 1.1 * Kubernetesのコアコンセプトがイミュータブルであること、宣言的設定、オンラインで自己回復するシステムの3つ * イミュータブルであることのメリットは、信頼性を向上し、ロールバックも可能 * Kubernetesでは、宣言的設定をおこない、システムの望ましい状態を記述する * 命令的設定はアクションを定義する * Kubernetesは宣言的設定を維持するように動作する

1.2

  • プロダクトの成長に伴い、ソフトウェアと開発チームの両方のスケールが必要
    • Kubernetesは両方を達成するのに役立ち、分離アーキテクチャを重視することでスケーラビリティを実現する
  • 分離アーキテクチャでの各コンポーネントは、定義済みのAPIとサービスロードバランサによって他のコンポーネントから分けられる
    • サーバをAPIで分離すると、チーム間のスケールも簡単になる
  • Kubernetesのイミュータブルで宣言的性質は、サービスのスケールの実装を簡単にする
    • オートスケールの設定をしておけばKubernetesがよしなにやってくれる
  • 理想的なチームサイズはピザ2枚分のチーム、大隊6人から8人とされる
    • マイクロサービス1つずつ開発チームを作る
  • Kubernetsはマイクロサービスアーキテクチャの構築を簡単にする、たくさんの抽象化層やAPIを提供する
    • Pod : コンテナイメージのグループ化
    • Service : ロードバランシングやネーミング、ディスカバリの機能を提供する
    • Namespace : マイクローサービス同士の連携範囲を制御するよう、分離とアクセス制御を行う
    • Ingress : 複数のマイクロサービスをまとめつつ、単一の外部からアクセス可能なAPIを提供できる、簡単なフロントエンドを提供する

1.3

  • Kubernetesを利用するメリットは大きく2つ

1.4

  • Kubernetesにより開発者はマシンのことを考えなくてよくなり、1台のマシンでアプリケーションを同居できる
    • 効率性は、サーバーを管理する人的コストと、サーバーのコストを天秤にかけて考える

1.5

  • Kubernetesはクラウド上のアプリケーションを構築、デプロイする方法を根底から変える目的があって作られた
  • Kubernetesは開発者にベロシティ、効率性、敏捷性を提供するためにデザインされている

次回は2章です。