さぁKubernetesをはじめよう – 入門

オウルです。
Kubernetesは「クーベネティス」と読むみたいです。
人とお話するとき、読み方が間違ってないかドキドキしますよね。

Kuberbetes って何?

コンテナ化したアプリケーションのデプロイ、スケーリング、管理を行うためのコンテナオーケストレーションプラットフォームです。
今はオープンソースですが、元々Googleが設計したプラットフォームです。12 年以上、あのGmail、YouTubeのサービスを支えてきた縁の下の力持ちです。実績としては十分です。
ん!?待って待って、コンテナって何?オーケストレーションって何??ってなりますよね。僕もついこの間までそうでした。次から次へと初めての用語がでてきて、手を動かすまでに挫折してしまいそうでした。なので、ここでは、まず手を動かす!スタイルにしたいと思います。今回は細かいことはほっといて、何はともあれ、まず動かしてみましょう。
Docker for Windows無償版Community Editionを使用します。
提条件
  • Windows10
  • Hyper-V(ハイパーV)※Windows10では標準機能です
お使いのパソコンの BIOS で仮想化テクノロジーの使用機能を有効にする必要があります。お使いのPCメーカのBIOS設定に従って有効にしてください。
参考:

Docker for Windows インストール

1.1
下記のリンクからDocker Community Edition for Windows(無償版)をダウンロードします。
1.2
ダウンロードしたインストーラを実行してウィザードに従ってインストールします。
※Hyper-Vを有効化の確認ダイアログが表示されるので「OK」ボタンをクリックします。

Docker for Windows 設定

2.1
タスクトレイの∧をクリック⇒クジラアイコンで右クリックのSettingsを選択します。
2.2
Shared Drivesを選択するとローカルのドライブが表示されるので共有するドライブをチェックします。
※チェックすると、Dockerから共有ドライブとして使用することが可能になります。
Ex)デプロイしたnginxコンテナのログを共有ドライブに出力
2.3
Kubernetesを選択して、「Enable Kubernetes」にチェック、default orchestratorは「Kunernetes」を選択して、「Apply」ボタンをクリックします。
Kunernetesのインストールが完了するとdocker、kubernetesが緑色になります。

Dockerイメージ検索

3.1
NginxのDockerイメージを検索します。
パブリックに公開されているNginxのDockerイメージの一覧が表示されます。

Nginxコンテナをデプロイ

4.1
正しく設定できているかバージョン確認します。
クライアントとサーバのバージョンが表示されれば正常にインストール・設定されています。
4.2
Nginxコンテナをデプロイします。
4.3
デプロイできたか確認します。
「AVAILABLE」が上のように1となっていればデプロイできています。

Nginxコンテナにアクセス

5.1
ローカルからNginxコンテナにアクセスできるようにします。
テキストがメモ帳で表示されるので、「type: ClusterIP」を「type: NodePort」に変更して保存してください。
保存すると「service “nginx” edited」と表示されます。
5.2
割り当てられたポート番号を確認します。
「NAME」がnginxの行のPORT(S)列に、「80:*****/TCP」と表示されている*****が割り当てられたポート番号です。
下のURLの*****を割り当てられたポート番号に修正してください。
http://localhost:*****
NginxのWelcome to nginx!が表示されればデプロイしたNginxコンテナにアクセスできています。
冒頭でお伝えしましたが今回はコンテナオーケストレーションプラットフォームであるKubernetesを使ってDockerコンテナのデプロイを体験していただきたかったので、詳細は割愛しています。でもこれだけだと、何が嬉しいの??って感じですよね。なのでKubernetesを使うとどんな嬉しいことがあるのかという目線で、且つ僕も勉強しながらなので特に、ここがよく分からない、つまずいた、という点を踏まえながら継続して紹介できればと思っています。
後はパブリッククラウドのAzureAWSでのKubernetesサービスの動向もあわせてチェックしていこうかと思います(GCPは本家なので)
因みにKubernetesの可能性に魅せられてAzureAWSは今年本格サービスインしています。
今回でローカル環境は作成できたので準備は万端です。
次回は、そもそもDockerコンテナって何なの??を予定しています。僕のようにWindowsは多少分かるけど、Linuxは・・・難しくてよく分からない。。。という人の目線で紹介したいと思います。
つづきはこちらです。
あ、余談ですがホットな話題としては、IBMがRedHatを買収しましたね。僕の中ではRedHatといえばOpenShift(Docuker+Kubernetesを拡張)です。このあたりも別の機会に。しかし、これで、ますますパブリッククラウドが激戦状態になるのかな。激戦の結果、料金が下がってくれればありがたいですけどね。

おススメ書籍

▼ Kubernetesの入門書
1.6,5 のバージョンで解説(リポジトリ、注釈は翻訳時の最新1.9で更新)されています。バージョンは少し古いですが、初心者の入門書(おえるべきポイントはしっかり網羅されてる)としては、途中で挫折しない適度なボリューム(本の厚さ)で、とっかかりとしては良い本になっています。
▼ Kubernetesの入門~応用までをカバー
僕は「入門 Kubernetes」⇒「Kubernetes完全ガイド」(現在進行形)という進み方をしていますが、より本番環境を想定した方法を学べます。特にWeb 系だと、https で使用する Ingress リソースなどもしっかり説明してくれています。「入門 Kubernetes」には、詳しい説明がなかったので個人的にはすごく助かっています。
▼ Docker / Kubernetesの入門
コンテナオーケストレーションプラットフォームである Kubernetes を学ぶときには、どうしても Docker の知識が必要となってきます。それをまとめているのが、この本です。途中で挫折しない適度なボリューム(本の厚さ)で、とっかかりとしては良い本になっています。