Kubernetes The Hard Way On VirtualBox 1日目
どうした
前からうすうす感じてたんですけど、私はkubernetesを雰囲気で使ってます。
どっかから落としたyamlをイジってはdeploy、既存のyamlをイジってはdeploy
「壊れたら再作成すればいいっしょw」
。。。
なんすかこれ?
なんなんすかこれ?
経典として買ったkubernetes完全ガイドが泣いてました
というわけで再入門。なんとなくスルーしてきた『Kubernetes The Hard Way』をやります!
しかもVirtualBoxでも出来るように神が作ってくれた『Kubernetes The Hard Way On VirtualBox』だッ!
Kubernetes The Hard Way On VirtualBox
本来はGCP上に作成したVMにkubernetesを作成するんですが、これは手元のVirtualBoxで作成したVMにkubernetesを作成します。
結構長いので、地道にやっていこうと思ってます。
今回は1日目。環境構築。
Prerequisites
VM Hardware Requirements
HW要件としては
8 GB of RAM (Preferably 16 GB) 50 GB Disk space
とされてます
私のうちのPCを確認
$ df -h Filesystem Size Used Avail Use% Mounted on udev 32G 0 32G 0% /dev tmpfs 6.3G 2.5M 6.3G 1% /run /dev/nvme0n1p2 457G 180G 254G 42% / tmpfs 32G 235M 32G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock
$ free -h total used free shared buff/cache available Mem: 62Gi 9.2Gi 29Gi 449Mi 23Gi 52Gi Swap: 2.0Gi 0B 2.0Gi
余裕っすねうんうん。
Virtual Box
OSのバージョン確認
$ cat /etc/issue Ubuntu 20.04.3 LTS
Virtual Boxのバージョン確認
$ VBoxManage -v 6.1.26r145957
Vagrant
Vagrantのバージョン確認
$ vagrant version Installed Version: 2.2.6 Vagrant was unable to check for the latest version of Vagrant. Please check manually at https://www.vagrantup.com
Provisioning Compute Resources
リポジトリをローカルにcloneします
$ git clone https://github.com/mmumshad/kubernetes-the-hard-way.git
$ cd kubernetes-the-hard-way\vagrant
ここにあるVagrantfileを実行すると、以下のような5つのVMが作成されます。
VM | VM Name | Purpose | IP | Forwarded Port |
---|---|---|---|---|
master-1 | kubernetes-ha-master-1 | Master | 192.168.5.11 | 2711 |
master-2 | kubernetes-ha-master-2 | Master | 192.168.5.12 | 2712 |
worker-1 | kubernetes-ha-worker-1 | Worker | 192.168.5.21 | 2721 |
worker-2 | kubernetes-ha-worker-2 | Worker | 192.168.5.22 | 2722 |
loadbalancer | kubernetes-ha-lb | LoadBalancer | 192.168.5.30 | 2730 |
$ vagrant up
しばらく待ちましょう。
プロンプトが戻ってきたらVMを確認
$ vagrant status Current machine states: master-1 running (virtualbox) master-2 running (virtualbox) loadbalancer running (virtualbox) worker-1 running (virtualbox) worker-2 running (virtualbox) This environment represents multiple VMs. The VMs are all listed above with their current state. For more information about a specific VM, run `vagrant status NAME`.
$ vagrant ssh master-1 $ vagrant ssh master-2 $ vagrant ssh loadbalancer $ vagrant ssh worker-1 $ vagrant ssh worker-2
workerでは、dokerのバージョン確認も確認しておきましょう
$ sudo docker version Client: Docker Engine - Community Version: 20.10.8 API version: 1.41 Go version: go1.16.6 Git commit: 3967b7d Built: Fri Jul 30 19:54:08 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.8 API version: 1.41 (minimum version 1.12) Go version: go1.16.6 Git commit: 75249d8 Built: Fri Jul 30 19:52:16 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.9 GitCommit: e25210fe30a0a703442421b0f60afac609f950a3 runc: Version: 1.0.1 GitCommit: v1.0.1-0-g4144b63 docker-init: Version: 0.19.0 GitCommit: de40ad0
Installing the Client Tools
管理タスク実行のための公開鍵設定と、kubectlといったクライアントツールを入れます。
master-1に入れる手順が公開されているが私のPCはUbuntuなので、ローカルで公開鍵を発行して書くServerに接続できるようにする
ローカルで鍵発行
$ ssh-keygen
基本的に全てデフォルトでおk
作成した鍵の中身をどこかにコピー
$ cat .ssh/id_rsa.pub
先程作成した全てのVMに鍵をコピー
cat >> ~/.ssh/authorized_keys <<EOF ssh-rsa AAAAB3NzaC1yc2EAAAADA..........E= kbys@pc EOF
Install kubectl
私のPCのはすでに入ってるので、ここら辺を参考にしてください
バージョン確認
$ kubectl version --client Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
今日はここまで!
お読みいただきありがとうございました!