gashirar's blog

ウイスキーがすき/美味しいものがすき/k8sがすき

Kubernetesの勉強方法メモ

はじめに

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 K8sを使うのであれば対応するものを、オンプレ上に作る必要があるのであればkubeadmを、
プロジェクトなどは決まってないけどとりあえず無料で小さく始めたいならMinikube/Kindをどうぞ。

Managed Kubernetes

お金をかけられるよ、という人はマネージドサービスを使うのが一番手っ取り早いです。
お金かけたくない人でも無料枠である程度の期間はできると思います。

Minikubeまたはkind

Welcome! | 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

access.redhat.com

自分は3.11を利用していたので上記のドキュメントとずっとにらめっこしていました。どちらかというとインフラエンジニア向け。
OpenShift独自の部分とKubernetesの部分の判断がつかないうちに読むと混乱するので初学者にはオススメできませんが、上記の書籍である程度理解した上で読むと勉強になります。Day2 Operationなど、Kubernetesの運用の考え方が身につくかも。 (ちょっと情報は古いです。OpenShift 4系のドキュメントはしっかり目を通してないのでわかりません。)

触って動かすサンプル

Kubernetes The Hard Way

GitHub - kelseyhightower/kubernetes-the-hard-way: Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.

CKAを受験する人が一度はお世話になるであろうリポジトリです。
KaaS使わずにKubernetesやるぞというインフラエンジニア向けです。KaaSを使う方にとってはそこまでやる優先度は高くないと思います。

Istio Bookinfo

Istio / Getting Started

とりあえずなんか動かしたい人向け。自分はKubernetes上で動くちょっとしたサンプルが欲しい時によく使います。
本来はIstioのGetting Started用です。

日々の情報収集

Kubernetes Blog

Kubernetes Blog | Kubernetes

定期的に見ておきましょう。アップデート情報などいろいろ盛りだくさん。

Kubeweekly

KubeWeekly

週一金曜日に更新されています。下記ブログで日本語訳がまとめられていますのでそちらもどうぞ。(ありがたい)

運び屋 (A carrier(forwarder) changed his career to an engineer)

Sysdig Blog

Blog | Sysdig

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周りとか入ってないですし。

まとめておいてなんですが、どちらかというと「こういうコマンド使うと調査がしやすいよ」みたいなのをまとめておいた方が良い気がしてきました。また時間があるときにまとめておこうと思います。。