※Kubernetesについての詳細は書きません。
Kubernetesを辛い方法で作ってみる
そんな思いが込められたこちらのリポジトリ、kelseyhightower/kubernetes-the-hard-wayをイチからやってみました。
こちらにもあるとおり、辛い方法でやってもバグがあったりなどして正常に動かないこともあります。(何個かぶちあたりました。)
ちなみにrepositoryでは
Verify the Google Cloud SDK version is 183.0.0 or higher:
とありますが、公式ページを見るとMACOS,その他のOSを見ても180.0.0を配布しているようなので、180.0.0を使っています。
前提条件
- サンプルはGCEを元に話を進めているのでGoogle Cloud Platformのアカウントを作成しておくと良い。
- Kubernetes用にプロジェクトを作成しておくと良い。リポジトリ上では
kubernetes-the-hard-way
でやっている。 - プロジェクトに紐づく支払先を作成しておく。
- SSH鍵ペアを作っておく
https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja
注意事項
上で書いたとおり、何個かうまくいかなかった点を記載します。(GCEに慣れている人は当たり前だ!となりそうですが)
- gcloudコマンドでリソースを作成する時はプロジェクト名でなくプロジェクトIDを指定する。
(例)kubernetes-the-hard-way-XXXXXX
google-cloud-sdk/bin/gcloud config set project kubernetes-the-hard-way
gcloud compute networks create プロジェクト ID --subnet-mode custom
- あらゆるgcloudコマンドでリソースを作成する際に、
--zone us-west1-c
などのゾーンの指定が不足しているので足す。エラーとなり作成できず。 -
Issueにもなっていますが、kube-proxy,kubeletが開始できなかったです。このへんは掘り下げて調べる必要がありそう。Issueのやり方でも解決できず。 こちらによって
kubectl get nodes
の値が返ってきません..
所感
- 解説は少ないのでリンクを詳細に読む必要がありますが、GKEを使ってぽちぽち作成するより中身がどうなっているかわかるので、やってよかったと思います。
- 今回はGCEでやっていますが、他のクラウドでも同じように作れるような説明になっています。
- 今回のこちらの一連の作成自体で大体2,3時間、インスタンスをコントローラー3台、ワーカー3台起動して¥22くらいでした。