はじめに
会社でCKAの奨励金が出るようになったので、取得のためにCKAの勉強をすることにしました。その一環でKubernetes the hard wayに取り組んでみようと思ったのですが、漫然とコマンドを打っていても勉強にならないだろうということで、各章で何をやっているのかをメモしながら一通りやってみました。その内容を投稿していきます。
本記事では元ドキュメントの「Provisioning Compute Resources」の部分をやっていきます。元ドキュメント及びコマンド等は以下のURLを参照のこと。
https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/03-compute-resources.md
Networkの作成
Kubernetes the hard wayで使用するVPCネットワークをデプロイする。このVPCはkubernetes-the-hard-way
という名前で、kubernetes
という名前のsubnetを一つ含んでいる。このsubnetのIPアドレスレンジは10.240.0.0/24
である。
次に、このVPC内部での通信を許可するFWルールを作成する。このFWルールでは、icmp、tcp、udpのあらゆる通信を許可する。次に、このVPCへ外部からSSH、ICMP、HTTPS(6443)の通信を許可するルールを作成する。
元のドキュメント上ではHTTPSと記載されているが、通常のHTTPSのポート(443)ではなく、kube-apiserverが通信を待ち受けるポート(6443)を開けていることに注意。
最後に、kube-apiserver用のLBが使用するPublic IPアドレスを作成する。耐障害性を確保するため、kube-apiserverが動作するコントロールプレーンのnodeは三台作成し、このLBがアクセスを振り分ける。このLBが使用するためのIPアドレスをkubernetes-the-hard-way
という名前で作成する。
このIPアドレスの名前はVPCや今後作成するGCEのタグなどと同じ名前である。今後何回かリソース名を指定してリソースの情報を取得する場面があるので、何のリソースの情報を取得しようとしているのか注意する。
GCE インスタンスの作成
コントロールプレーン用のGCEインスタンスを三台作成する。インスタンスの情報は以下の通り。
- インスタンス名: controller-{0,1,2}
- IPアドレス: 10.240.0.{10,11,12}
- タグ:
kubernetes-the-hard-way
,controller
次に、ワーカー用GCEインスタンスを三台作成する。インスタンスの情報は以下の通り。
- インスタンス名: worker-{0,1,2}
- IPアドレス: 10.240.0.{20,21,22}
- タグ:
kubernetes-the-hard-way
,controller
- metadata: pod-cidr=10.200.{0,1,2}.0/24
ワーカー用ノードのmetadataは、各ノード上で動作するpodが使用するIPアドレスのレンジを示している。のちにkubeletを動作させる際にこの情報を参照する。
まとめ
kubernetes the hard wayで使用するネットワークとLBで使用するpublic ip、コントローラとワーカー用のGCEインスタンスを作成した。なお、作成したGCEインスタンスは放っておくと課金され続ける(しかも割と高い)ため、作業を中断する際は停止すること。