Kubernetesの勉強方法メモ
- はじめに
- 記事を書いた人について
- K8s環境を準備する
- 学習のためのコンテンツ
- 利用はしていないが有用そうなの
- まとめ
- 最後に
はじめに
「Kubernetesの勉強ってどうすればいい?どうやってた?」という質問を受けたので、どういう資料をあたっていたのかを忘備録的にまとめておきます。
初学者向けです。
記事を書いた人について
- OJT
- OpenShift3.11の構築
- オンプレ環境におけるKubernetesの構築(主にkubeadm)
- YAMLおじさん、ほか諸々の球拾い
- Off-JT
- Certified Kubernetes Administrator ( Score: 92% )
- Certified Kubernetes Application Developer ( Score: 89% )
「とりあえずCKA/CKADくらいはとってる人なんだな」と思っていただければ。
OperatorとかCI/CDとかをがっつりやっている人ではないので、下記にもあまり出てきません。
K8s環境を準備する
まずは作業する環境を用意しましょう。
- Managed Kubernetes
- Minikube/kind
- Kubeadm
と紹介していますが、自分の状況に合うもので選べばよいです。
プロジェクトですでにManaged K8sを使うのであれば対応するものを、オンプレ上に作る必要があるのであればkubeadmを、
プロジェクトなどは決まってないけどとりあえず無料で小さく始めたいならMinikube/Kindをどうぞ。
Managed Kubernetes
お金をかけられるよ、という人はマネージドサービスを使うのが一番手っ取り早いです。
お金かけたくない人でも無料枠である程度の期間はできると思います。
Minikubeまたはkind
触ってみて好きな方を使えばいいと思います。
自分が勉強しはじめたころはMinikubeしかなかったのでMinikube使うことが多いです。
Kubeadm
kubeadmを使用したシングルコントロールプレーンクラスターの作成 | Kubernetes
オンプレ上にクラスタを作りたい人はまずここから始めると勉強になります。
実際のプロジェクトであればkubesprayなどを使うのがベターなんじゃないでしょうか。
学習のためのコンテンツ
書籍
Kubernetes完全ガイド
本書を読み終わった頃にはCKADの資格取得が容易になっていることでしょう。一方CKAに関しては、Kubernetesクラスタを手動で構築できる知識が必要なため、少しだけ追加で学ぶ必要があります。
とあるように、「Kubernetesの上でどのようにアプリケーションを動かすか」に重きを置いている本です。「Kubernetesをどう作るか」は別の方法で学ぶと良いです。
まずはこの本を一通り読めばよいと思います。
Kubernetes実践ガイド
こちらもオススメ。
Webで読めるドキュメント
Kubernetes Document
Kubernetes Documentation | Kubernetes
最近は日本語に翻訳されている項目も増えてきているので読みやすくなっています。
ページによっては日本語の情報が古いこともあるので、英語でも確認するようにしましょう。
日本語訳についてはコントリビュートチャンス。
Kubernetes API Reference
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/
specがわからなくなったときにお世話になるところ。
kubectl explain <resource>
でもみられます。
(おまけ) CIS Benchmark for Kubernetes
https://www.cisecurity.org/benchmark/kubernetes/
自分たちでKubernetesクラスタを組むぞというインフラエンジニア向けのセキュリティベンチマーク一覧。
マネージドサービスを使う方は上記ではなく各マネージドサービス向けCIS Benchmark準拠状況をみてみた方がよいです。
(おまけ)RedHat OpenShift Documentation
自分は3.11を利用していたので上記のドキュメントとずっとにらめっこしていました。どちらかというとインフラエンジニア向け。
OpenShift独自の部分とKubernetesの部分の判断がつかないうちに読むと混乱するので初学者にはオススメできませんが、上記の書籍である程度理解した上で読むと勉強になります。Day2 Operationなど、Kubernetesの運用の考え方が身につくかも。
(ちょっと情報は古いです。OpenShift 4系のドキュメントはしっかり目を通してないのでわかりません。)
触って動かすサンプル
Kubernetes The Hard Way
CKAを受験する人が一度はお世話になるであろうリポジトリです。
KaaS使わずにKubernetesやるぞというインフラエンジニア向けです。KaaSを使う方にとってはそこまでやる優先度は高くないと思います。
Istio Bookinfo
とりあえずなんか動かしたい人向け。自分はKubernetes上で動くちょっとしたサンプルが欲しい時によく使います。
本来はIstioのGetting Started用です。
日々の情報収集
Kubernetes Blog
定期的に見ておきましょう。アップデート情報などいろいろ盛りだくさん。
Kubeweekly
週一金曜日に更新されています。下記ブログで日本語訳がまとめられていますのでそちらもどうぞ。(ありがたい)
運び屋 (A carrier(forwarder) changed his career to an engineer)
Sysdig Blog
Kubernetesというよりはコンテナ全般の記事が多いですがオススメ。
Banzai Cloud Blog
Banzai Cloud Blog · Banzai Cloud
Istioの情報あさってると大体でてくるところ。
トラブルシューティング
Kubernetesのissue
Issues · kubernetes/kubernetes · GitHub
とりあえず何かハマったら検索するところ。
大体答えが出てくる気がします。
利用はしていないが有用そうなの
Kubernetesのslackチャンネル
一時期見ていたのですが、最近は忙しくて見れていません。
Katakoda
Learn Kubernetes using Interactive Browser-Based Labs | Katacoda
すごくたくさんあるけど触れていないです。アプリケーションエンジニア向けな気がします。
まとめ
主観的ですが、新人さんの教育をするならまずは上記に上げた書籍のどちらかを動かしてもらうのが最初なんじゃないでしょうか。
他の情報収集については読みたい人だけ読めば良いと思います。
最後に
Kubernetesだけでも範囲が広いですね。
他にもエコシステム全体でいろんなものがあるので正直追うのしんどいです。上記にOperator周りとか入ってないですし。
まとめておいてなんですが、どちらかというと「こういうコマンド使うと調査がしやすいよ」みたいなのをまとめておいた方が良い気がしてきました。また時間があるときにまとめておこうと思います。。