Kubernetes(K8s)入門 -書籍での学習方法

はじめに


今回は、
「『Kubernetes』って最近よく耳にするし、本もいっぱい出ているけど、どれを使って勉強するのがいいのかな?」
「何から手を付ければいいんだろう?」
という方に向けて、Kubernetesのおすすめの学習方法をご紹介いたします。

実際に私が、Kubernetesを学習したときに使用した書籍から、

  • Kubernetes操作のための必須知識
  • Kubernetes実践のための仕組み、背景の知識

それぞれの目的に適した書籍と学習方法をご提案いたします。

目次

Kubernetesの理解に必要な前提知識


なお、教則本に解説のない前提知識がいくつかあります。特にKubernetesを理解する上で欠かせないのは以下の2つです。

  • Linuxの基本操作
  • IPアドレス(L3)、ポート(L4)、プロトコル(L7)のネットワークの基礎

これらは本当に基本的な知識だけあれば大丈夫です。
例えば
「仮想マシンにCentOS7をインストールして、IPアドレスを振り、SSH接続する」
この文の意味がわかり、実践できるなら大丈夫だと思います。

Kubernetes操作のための必須知識


必須知識

Kubernetesを最低限理解して、なんとなく操作出来るようになるためには以下のことを学ぶ必要があります。

  • Dockerコンテナの基礎
  • kubectlを利用した基本操作
  • kubernetesの基本的なオブジェクトと用語
  • マニフェストからのオブジェクトの作成

学習のオススメ書籍と読み方

これらの必須知識を習得するためにはこの本がオススメです。

Dockerから入るKubernetes -コンテナ開発から運用まで

目次構成
■1章 DockerとKubernetesの概要…

Kubernetes(K8s)ってなに? -概要

少し前から話題のOSS『Kubernetes』について、ご紹介させていただきます。

Kubernetes (K8s)とは


一言で説明すると

コンテナ化されたアプリケーションを合理的に運用するために設計されたOSSのプラットフォーム

です。

背景


アプリケーションをDockerなどのコンテナ上で開発することが多くなりました。
コンテナ上で開発することで、

アプリケーション実行時に必要な色々なもの([ライブラリ]、[OSバージョン]、[パッケージ]など)をコンテナに詰め込み、不変の実行基盤を作ることができる。

からです。
しかし、コンテナをサービスとして提供するには課題が多くありました。

  • コンテナの冗長性の確保はどうしよう。
  • アプリケーションの無停止でのバージョンアップはどうしたらいいのか。
  • コンテナを負荷によってスケールしたい。
  • etc…

これらを解決するために生まれたのがコンテナオーケストレーションプラットフォームである

Kubernetes

なのです。

Kubernetesが解決する課題


コンテナとKubernetesは次のような「サービス運用」の課題の解決を助けます。

  • アプリケーションの頻繁なリリースが必要
  • サービスを止められない
  • 初期投資を抑えて状況に合わせてスケールを調整したい
  • 全てをコンテナで実装するのは早すぎるという懸念
  • テストが完了したら変更を加えないようにしたい
  • オンプレ、クラウド両方同じサービスを稼働させたい
  • アプリケーション中心のオーケストレーションが必要
  • 企業独自の技術に依存しないための標準技術を採用したい
  • リソースの無駄を削減したい

Kubernetesの学習方法について

さて今回、Kubernetesの概要について紹介させていただきました。もし、

  1. ざっとでいいから概要を理解したい。
  2. 設計、構築を前提とした実戦レベルの知識を習得したい。

という方がいらっしゃいましたらこちらの記事にて解説をしていますので、よろしければご覧ください。

おまけ – Kubernetesの読み方について