#はじめに
30代未経験からエンジニアを目指して勉強中のYNと申します。
インフラ初学者の私ですが、Kubernetes the hard way
を進めるにあたって、インフラに関する基本的な知識を体系的に学ぶことができました。
そこで、初学者目線での学びなどを本記事にまとめておきたいと思います。
#やったこと
githubのkubenetes the hard way
を進めていきます。いくつか種類があるのですが、今回はMumshad Mannambethさんのものに取り組みました。
これは下記の特徴があります。
- Udemyのコースで取り上げられている
- GCPを使わないオンプレ
- Youtubeの解説動画もある
#目次
githubの内容について#1から順に解説していきます。
#1 全体像を理解する
#2 Vagrantでオンプレ環境構築
#3 サーバー/クライアント証明書の準備
#4 クラスターコンポーネントの設定ファイルを生成する
#5 etcdサーバーを設定する
#6 Control Plane コンポーネントを設定する
#7 Workerノードの設定
#8 WorkerノードのTLS証明書作成自動化
#9 kubectlのリモートアクセス設定
#10 RBAC for Kubelet Authorization
#11 Podネットワークの構築
#必要な事前知識
公式ドキュメントや解説記事なども初学者には分かりづらい部分が多いため、下記の内容は先に抑えておくべきと思います。
###Kubernetesの基本理解
チュートリアルなどを通して、Kubernetesオブジェクトの意味や、kubectlコマンドの使い方について分かっているのが前提です。
###Linuxの基本
コンテナ技術は全般的にLinuxの知識をベースにしており、最低限の理解は必要です。
「新しいLinuxの教科書」はとても勉強になりました。
###ネットワークの基礎
ネットワークについても基本的な理解は必要です。
特に「マスタリングTCP/IP入門編」の4章:IPプロトコルと、5章:IPに関する知識は参考になりました。
###SSL/TLSの基礎
Kubernetesクラスタ内のコンポーネント同士はTLSによってsecureな通信を確保しているため、TLSについての理解も必要です。
私は下記の記事などを参考にさせていただきました。
- 【図解】初心者も分かる”公開鍵/秘密鍵”の仕組み~公開鍵暗号方式の身近で具体的な利用例やメリット〜
- 【図解】素数とDiffie-Hellman鍵交換法 ~わかりやすい計算例とシーケンス,RFCや種類,アルゴリズムについて~
- 【図解】よく分かるデジタル証明書(SSL証明書)の仕組み 〜https通信フロー,発行手順,CSR,自己署名(オレオレ)証明書,ルート証明書,中間証明書の必要性や扱いについて〜
- 【図解】クライアント証明書(https,eap-tls)の仕組み ~シーケンス,クライアント認証,メリット~
- 電子署名の基礎知識
- 2つの公開鍵暗号(公開鍵暗号の基礎知識)
- ちゃんと理解するSSL/TLS 前編
- KubernetesのTLS証明書
- 理解してるつもりの SSL/TLS でも、もっと理解したら面白かった話
- SSL/TLSについてまとめ2018
- 図解 X.509 証明書
- kubucation
- httpsだからというだけで安全?調べたら怖くなってきたSSLの話!?
- 今度こそopensslコマンドを理解して使いたい (2) 設定ファイル(openssl.cnf)を理解する
- Kubernetesのセキュリティについて整理してみた件
- 認証(Authentication) と 承認(Authorization) の違い
###systemdについて
Kubernetesとは直接関係ないのですが、今回扱うやりかたでは、KubernetesのコンポーネントをPod
ではなく、systemdのservice
として起動します。そのため、systemdとは何か
が分かっていた方が良いです。私は下記記事などを参考にさせていただきました。