Kubernetes the hard way を初学者目線で解説する ~ #2 Vagrantでオンプレ環境構築


はじめに

30代未経験からエンジニアを目指して勉強中のYNと申します。
インフラ初学者の私ですが、Kubernetes the hard wayを進めるにあたって、インフラに関する基本的な知識を体系的に学ぶことができました。
そこで、初学者目線での学びなどを本記事にまとめておきたいと思います。

目次

こちらをご覧ください

Vagrantの基本

Vagrantの基本的な使い方は下記のチュートリアルを参照ください。
https://learn.hashicorp.com/tutorials/vagrant/getting-started-teardown?in=vagrant/getting-started

vagrant ssh master-1 #インスタンスに接続
exit #退出

vagrant suspend #一時停止
vagrant halt #停止
vagrant destroy #削除
vagrant up #再起動

Vagrantを使ってクラスターのノードインスタンスをセットアップする

githubからクローンしたvagrantファイルを実行すると、下図のようなLAN設定でubuntuインスタンスを起動します。workerノードにはDockerがインストールされます。

mac.PC
git clone https://github.com/mmumshad/kubernetes-the-hard-way.git
cd kubernetes-the-hard-way\vagrant
vagrant up

master-1ノードとその他ノードの間でのssh通信をする

mastetr-1ノードから他ノードへssh接続するための設定を行います。この設定だけでは、master-1から他ノードへの一方通行となります。

master-1.node
#master-1上でsshキーペアを作成し、/home/vagrant/.sshに保存
ssh-keygen 

#公開鍵を表示。表示されたキーをどこかにメモしておく。
cat /home/vagrant/.ssh/id_rsa.pub

#master-1以外のノードに先ほどの公開鍵を登録する
vagrant ssh master-2
cat >> ~/.ssh/authorized_keys <<EOF
> ssh-rsa xxxxx vagrant@master-1 (先ほどの公開鍵を貼り付け)
> EOF

masterノードにkubectlをインストール

2つのmasterノードにkubectlをインストールします。
現段階ではkubectlの設定がされていないので、kubectlコマンドを使うことはできません。

master-1.node/master-2.node
#ダウンロード
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"

#実行権限を追加
chmod +x ./kubectl 

#適切なディレクトリに移動
sudo mv ./kubectl /usr/local/bin/kubectl