[コンテナ再入門]Ubuntu 18.04 に Kubernetes環境を構築する
- [コンテナ再入門]Ubuntu 18.04 に Docker CE をインストールする - kmiya_bbmのブログ
- [コンテナ再入門]Ubuntu 18.04 に Docker Compose をインストールする - kmiya_bbmのブログ
- [コンテナ再入門]ホストにMySQLがインストールされていると、MySQLのコンテナが起動しないことがある - kmiya_bbmのブログ
Ubuntu18.04で写経しつつ「Docker/Kubernetes 実践コンテナ開発入門」を読み進めている。
- 作者: 山田明憲
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
書籍ではDocker for Windows/Mac をサポート対象としており、それ以外のLinuxなどの環境で写経するには自分で環境構築を行う必要がある。
5章からはKubernetesの話題に入っていくのだが、Ubuntu18.04 上にKubernetes環境を構築するのに結構時間がかかったのでメモを残す。
環境
- ホスト Ubuntu16.04 Desktop 64bit
- VM: Ubuntu18.04 server 64bit (Vagrant + VirtualBox)
- Docker 18.09.3
kubeadm のインストール
ウェブでLinux環境へのKubernetes環境構築について検索するといろんな方法がヒットするが、結論としては公式ドキュメントで書かれている通り kubeadm を使って構築した。
「Before you begin」の項目のうち、自分のようにローカルPC上の仮想マシンで構築を進める場合、ハマりそうなのは以下の3点かと思う。
- 2 GB or more of RAM per machine (any less will leave little room for your apps)
- 2 CPUs or more
- Swap disabled. You MUST disable swap in order for the kubelet to work properly.
SWAPをOffにするのは、以下のコマンドを実行する。このコマンドではOS再起動時に設定がもとに戻ってしまうが、とりあえず環境構築するには充分である。
sudo swapoff -a
docker はすでにインストール済みとする(関連記事 )。
あとは、ドキュメントに書かれているとおり以下のコマンドを実行して kubelet、kubeadm、 kubectl をインストールできる。
sudo apt-get update sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
kubeadm で single master cluster を構築する
続いて公式ドキュメントのこのページの作業を進める。
Pod間通信用のアドオンが何種類かあって選べるのだが、ウェブで検索していてよく見かけた Flannel を使うことにした(よくわかってない)。
Flannelを使う場合のインストール手順に書かれているとおり、--pod-network-cidr=10.244.0.0/16
とオプションをつけてkubeadm init
を実行する。
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
成功すると、その後実行するべきコマンドが表示されるのでその通り実行する(公式ドキュメント内にも記述がある)。
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Flannel をインストールする。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
とりあえずここまで作業すれば、書籍の続きの内容であるダッシュボードのインストールに進める。