@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「Kubernetes実践ガイド」を読んだ

GW最後の日に無事読み終えれた。

第1部 Kubernetes の基礎知識
第2部 クラウドネイティブアプリケーションの開発・運用

クラウドネイティブアプリケーションについての本だと思う。タイトルにも「クラウドネイティブアプリケーションを支える技術」と入っている。それを実現するための手段として、この本ではコンテナと Kubernetes を紹介している。

第1章ではそもそもクラウドネイティブアプリケーションとはなんぞやということの説明がされている。その中で技術の一つとしてコンテナオーケストレーションの話が出てくる。その後第2章では、コンテナを支えている要素技術についてと Kubernetes の概要が説明されている。

第3章と第5章では Kubernetesアーキテクチャとそれぞれのオブジェクトについての詳しい説明がされている。コンポーネント、オブジェクトについて図付きで説明されていてわかりやすかった。また、認証認可などについても詳しく説明されていてとても勉強になった。

飛ばしていた第4章では、 kubeadm を使っての構築、 AKS での構築方法が書かれている。

ここまでが第1部。


第2部では Kubernetes エコシステムを使うことで、クラウドネイティブアプリケーションを開発、管理するための方法が実例つきで紹介されている。ここが、他の本ではあまり無いところだと思っている。 Kubernetes についての解説がされている本はいっぱいあるが、構築した Kubernetes の上でアプリを上手く動かすかについて書かれているものは少ない気がする。

第6章ではコンテナを単体で動かすのではなく、カタログとしてまとめて動かすために Helm と Operator について紹介されている。第7章と第8章では継続的インテグレーション・継続的デリバリーについての定義、説明がされている。たくさんのツールが紹介されているのでそれぞれを触ってみたいとは思っている。

特に第8章では Spinnaker の説明と構築方法、 Blue/Green デプロイメント、 Canary デプロイメントの実例が載っている。他のツールを使うとしてもこの流れは知っておいて損はないと思う。

最後の章ではコンテナと Kubernetes を導入することでアプリケーションがマイクロサービス化されるので、マイクロサービスの課題の対策手法としてサービスメッシュが紹介されていて、その中でも Istio を実際に使った例が紹介されている。さらに、システムの耐障害性を高めるためのプラクティスとしてカオスエンジニアリングが、サービス間通信の流れを追うための手法として分散トレーシングが紹介されている。この辺は見えるようになると楽しそうだなと思っている。

まとめ

  • なんで Kubernetes 使うんだっけってことと向き合えそう
  • Kubernetes についてまとまっているが、 Kubernetes エコシステムについても勉強できる
  • クラウドネイティブアプリケーション勉強になった

Kubernetesで実践するクラウドネイティブDevOps

Kubernetesで実践するクラウドネイティブDevOps

「Kubernetes実践入門」を読んだ

第1章 Hello Kubernetes world! コンテナオーケストレーションKubernetes
第2章 Kubernetes を構築する
第3章 Kubernetes上にアプリケーションをデプロイする
第4章 アプリケーションをデバッグする
第5章 アプリケーションを更新する
第6章 アプリケーションの安定性をあげる
第7章 アプリケーションのセキュリティを強化する
第8章 アプリケーションを運用する
付録 Pod のセキュリティを高める管理者向けの機能

1章では Docker と Kubernetes についての説明が書かれている。ここで Kubernetes の概念について勉強ができた。
2章ではこの後ローカルで試すための Minikube 環境を構築する手順が書かれている。

3章から6章ではそれぞれのリソースについて丁寧に説明されている。残念だと思ったのは、そこまで図がないため概要を少しでも勉強したことがある人ではないと理解をするのが辛いのではないかと思った。
今まで読んだ本と違って面白かったのは、kubectl コマンドを実行することで、それぞれのリソースに変更を加えてその結果を見るのは面白かった。他では yaml ファイルをあてるのに、逆に yaml を生成しているので、それぞれの設定値がどのようなコマンドで変更されているのかが分かって良かった。
特に、ネットワーク、認証・認可の箇所は理解が薄いので再度試してみようと思う。

7章は Kubernetes 上でのアプリケーションを動かすためのセキュリティについての話が書かれている。コンテナに対してやるべきことのあるセキュリティの話や、 Kubernetes 上のネットワークでのセキュリティについての話が書いてある。実際にアプリケーションを運用することになるとこの辺はちゃんと勉強しておかないと行けない話だろう。

8章では、ログ集約についての基本的な話と実際にEFKスタックを構築してログを可視化してみることができる。ここはローカルでの実行はだいぶ厳しい。後半はメトリクスモニタリングの話で、 Prometheus と Grafana を用いることで可視化してみることができる。この辺はマネージドの時は何を使うのかとかも書いてあると良かったなと思った。

まとめ

  • Kubernetes の機能は一通り勉強ができた
  • kubectl でのリソース操作は面白かった
  • セキュリティの話が多くて勉強になった

「Kubernetes完全ガイド」を読んだ

Kubernetes完全ガイド (impress top gear)

Kubernetes完全ガイド (impress top gear)

  • 作者:青山 真也
  • 発売日: 2018/09/21
  • メディア: 単行本(ソフトカバー)

docker 本を読み終えたので溜まっている kubernetes 本に手を出すことにした。
kubernetes でいつも困るのが用語がわからなくなることだと思っている。新しい仕組みを学ぶ必要があるので調べようと思うと、用語もわからなくていったい自分が何が分からなかったのか迷子になることが多い。

この本は kubernetes を自分で運用している @amsy810 さんが書いているからか、体系的に書かれているので頭から読んでいると理解ができた気がする。なんで kubernetes が必要なのか、各リソースの説明がこれでもかと書いてあるのが新鮮だった。
どこの章も用語説明、理論説明、yaml 例、図が大量に載っているのでとてもわかりやすかった。ただ、ページ数は多いので読むのには根気が必要だと思う。

第1章 Docker の復習と「Hello, Kubernetes
第2章 なぜ Kubernetes が必要なのか?
第3章 Kubernetes 環境の選択肢
第4章 API リソースと kubectl
第5章 workloads リソース
第6章 Discovery & LB リソース
第7章 Config & Storage リソース
第8章 Cluster リソースと Metadata リソース
第9章 リソース管理とオートスケーリング
第10章 ヘルスチェックとコンテナのライフサイクル
第11章 メンテナンスとノードの停止
第12章 高度で柔軟なスケジューリング
第13章 セキュリティ
第14章 マニフェストの汎用化を行うオープンソースソフトウェア
第15章 モニタリング
第16章 コンテナログの集約
第17章 Kubernetes 環境での CI/CD
第18章 マイクロサービスアーキテクチャとサービスメッシュ
第19章 Kubernetesアーキテクチャを知る
第20章 Kubernetes とこれから
付録A 巻末付録

kubernetes を触ったこともあるし、本も読んだりしているけどそれぞれがどのリソースに含まれているなどは知らなかったので面白く読めた。4章から8章の間でそれぞれのリソースについて詳しく説明されていた。これらと、19章のアーキテクチャについて読んでおくとkubernetes についてわかった気になれた。

その他にも、kubernetes を取り巻くエコシステムがいくつか紹介されていた。名前だけしか分かってないものもあったので面白かった。
CI/CD のところでいくつか紹介されていたが drone が名前も出てなかったな。あまり使われていないのだろうか?この辺は興味があるので情報を仕入れていくようにしたい。

まとめ

  • 体系的に濃く書かれていると思った。最初に勉強するには良さそう
  • 雰囲気からいくらか脱却できそう
  • はじめにも書かれていが図が多くて直感的にわかりやすいところが多い

「15Stepで習得 Dockerから入るKubernetes」を読んだ

家にある Docker とタイトルに入っている最後の本。
他の Docker→Kubernetes と学んでいく本と違うところは、最初から Kubernetes を使うこと前提で、そのために必要な知識を学ぶために Docker の説明がされていること。

タイトル通り Step をたどっていくと Kubernetes の機能を順々に使えるように書かれている。

Step0 として、コンテナ、 Docker 、 Kubernetes についての説明がされている。
Step1〜5 まではコンテナについての説明がされている。ただ、コンテナを触るのではなく、このあと Kubernetes を触っていく際に必要となる知識を身につけるために書いているためか、なんのために今読んでいるものが必要なのかを理解しながら読めた。
Step6〜15 では Kubernetes についての説明が図付きでわかりやすく説明されている。ところどころでのコラムも面白いし、混乱しそうなところは丁寧に説明されていると思う。

付録では試すための環境構築が丁寧に書かれている。ここで、環境構築をしっかり行い Step を踏んで試していくのが良い使い方だと思った。
IBM Cloud Kubernetes Service なんて珍しいもの書いているなと思ったら著者の方が IBM の方だったのか…

まとめ

  • なんのためにこれを学ぶのかが書かれている
  • 読むだけでも実体験している気分になれる
  • 付録で環境構築をしたあとにStep を自分で体験していくと良さそう

「Docker/Kubernetes実践コンテナ開発入門」を読んだ

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

  • 作者:山田 明憲
  • 発売日: 2018/08/25
  • メディア: 単行本(ソフトカバー)

Docker本で家にあるうちの3冊目。
残り1冊でDockerに関する本は終わる。 (Kubernetes はまだまだたくさんある。

1〜3章はDockerの基本的な説明が多いのでふむふむとうなずきながら読み終えた。他の本と違うのは docker コマンドではなく、docker imagedocker containerコマンドを使っているのが珍しかった。自分でもほぼ使っていなかったが、たしかにこっちのほうが具体的になにやるかがわかりやすい気がした。

その後4章ではSwarmでのアプリケーション構築、5〜7章はKubernetesを使ったアプリケーションの構築が説明されている。印象としては絵が少ないので、コマンド叩いても理解をするのが難しいのかなと思う。僕は、頭の中で絵として描いてみて理解をすることが多いので、コマンドや結果だけ見てもあまり理解がしにくい。
自分でKubernetesを触り始めた頃にわかろうと思って絵を描いたのが以下のスライドになる。 speakerdeck.com

8章ではロギングの話やトラブル対応についての説明が書かれている。実践だけあって運用をする際に気になることが書かれているのがとても面白かった。
9章ではDocker Imageの作り方についての話、10章ではDockerを使った活用方法が書かれている。ここは知っていることが多かったのでさくっと読み終えた。

まとめ

  • 絵は少ないけど情報がまとまっていて勉強になった
  • 運用しているときに気になる話も書いてあって良かった
  • コラムが面白い

15Stepで習得 Dockerから入るKubernetes

15Stepで習得 Dockerから入るKubernetes

「Dockerによるアプリケーション開発環境構築ガイド」を読んだ

Dockerによるアプリケーション開発環境構築ガイド

Dockerによるアプリケーション開発環境構築ガイド

Docker と Kubernetes の本は出たら読もうと思っていた。しかし、あまりにもいっぱい出ていたのと分厚いなというのと他にも読みたい本が重なっていた時期だったのでこんな遅くに読むことになってしまった。

Chapter01と02では他の Docker 本でもよくある、コンテナについての説明や Docker コマンドに関する説明が書いてある。Dockerの本を他で読んだことがあるならここらへんはさらっと流し読みでも良いと思う。
僕は、 exec formshell form についてと SIGNAL のハンドリングについて細かく書いてあるのが楽しかったのでそこだけしっかり読んだ。

Chapter03では、オンプレサーバで動いている WordPress サイトをコンテナに移行する。やり方の説明から実際に移行していき、途中でエラーが出た際の直し方も丁寧に説明されている。ここをやるだけでも Docker を触ったことがない人には難しいのではないかと思うが、実践的なので面白かった。

Chapter04では、まず AWS 上にアプリケーションを作成する。そこで、作成したアプリケーションをミドルウェアごと Docker を使ってローカルに似た環境を構築することが試せる。AWSについても少し説明されていて触れるのは他の本にはないコンセプトで面白かった。 MySQL や Redis 、 S3 互換の Minio を使ってウェブアプリケーションを作成するのだが、アプリケーションコード、設定が絵図入で説明されているのでわかりやすい。

Chapter05では、ローカルに構築したアプリケーションを GCP にリリースしていく。その際にはローカル上でも GCP 上でも Kubernetes を使ってアプリケーションを構築している。書いてある通りに試すと構築もリリースもできるが、 Kubernetes についての説明は Docker に比べると省略されていることが多いので他の本も読んでみると良いのではと思った。

Appendix ではログについての話、Dockerfile のデバッグ方法、CircleCIを使った継続的ビルドの話、PROXY の話とDockerをサービスに使おうと思ったときに気になることが書いてある。Docker を触ったことある人はここを読むと面白いと思う。

まとめ

  • Docker を初めて触るなら一通り試すと理解がしやすいと思った
  • オンプレサーバからの移行、クラウドへの移行など他の本では見ない話が多かったので面白かった
  • Appendix が勉強になった

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

  • 作者:山田 明憲
  • 発売日: 2018/08/25
  • メディア: 単行本(ソフトカバー)

202004 振り返り

コロナでの在宅勤務も1ヶ月が過ぎた。
座布団Traybo2.0Rakuten UN-LIMITを買った。どれも不満なく使っている。仕事では会社携帯でテザリングを行っているが私生活は楽天モバイルで生活している。遅いと思うときもあるが基本問題なく使っている。
本の消費よりも購入のほうが相変わらず多い。部屋に荷物が増えているので、本を少しでも減らしていきたい。

べんきょうかい

仕事が長引いてしまい1個参加することができなかった。
オンライン勉強会は勉強会の動画を残してくれていることが多いので後で追うことができるのでとても助かる。
ただ19時は結局厳しい。。。

ほん

過去の漫画を複数買って読んでしまった。そのせいで積ん読は減らずに増えていく一方だった。
家の本をみていたら古い本が多かったので、徐々に捨てていったほうが良いのかもしれないと思い始めた。
漫画はね。漫画はいっぱい読んでいる。

えいが

コロナの影響で映画館が閉まっているので映画を見ることはできていない。
4月頭に行けたので今月は1本だけ。サイコパスはずっと見ているけど面白い。続きが気になる。

ぶろぐ

家にいる時間が増えたので本がもっと読めると思ったのに1冊だけ

hihihiroro.hatenablog.com