kubernetesの公式サイトにはKubernetesの様々なインストール方法が掲載されています。その中から、Vagrant + VirtualBox + CoreOSを使ってKubernetesクラスタを構築する方法を試してみます。(link)
ここでは、Master1台、Minion3台の合計4台構成でクラスタを構築します。Kubernetesのバージョンは1.0.2です。
前提条件
- Vagrant >= 1.7.2
- VirtualBox >= 4.3.x
- OS
- Mac OS X v10.10 Yosemite
- Windwos 7
MacとWindowsの場合で手順が異なりますので自分の環境に合わせて実施してください。
Mac OS Xの場合
Macで構築する場合、gitコマンド、wgetコマンドを利用します。事前にインストールしておいてください。
$ brew update
$ brew install git
$ brew install wget
リポジトリの取得
$ git clone https://github.com/pires/kubernetes-vagrant-coreos-cluster.git
クラスタの構築
$ cd kubernetes-vagrant-coreos-cluster
$ NUM_NODES=3 MASTER_MEM=512 NODE_MEM=512 vagrant up
CoreOSの仮想マシンが4台構築されます。途中、管理者ユーザのパスワードを聞かれるので入力してください。/usr/local/binにKubernetesのコマンドラインツールがインストールされます。
Notes
- ローカルマシンのメモリが足りない場合はNUM_NODES=2として実行してください。仮想マシン3台の構成になります。
- Kubernetesのコマンドラインツールがすでにインストールされている場合は、一度削除するかPATHを外してください。クラスタの設定に失敗する場合があります。Google Cloud SDKを利用したことがある場合、インストールされている可能性があります。以下のコマンドでインストール済みのPATHを確認できます。
$ which kubectl
構築後の確認
VirtualBox上に仮想マシンが4台稼働しています。
- master
- node-01, node-02, node-03
- Notes: vagrant statusコマンド構築した仮想マシンを確認する場合、master1台とnode2台しか表示されません 。(issue)
/usr/local/bin にコマンドラインツールがインストールされています。
$ which kubectl
/usr/local/bin/kubectl
~/.bash_profile に以下の設定が追加されています。
export FLEETCTL_ENDPOINT=http://172.17.8.101:4001
export KUBERNETES_MASTER=http://172.17.8.101:8080
以下のコマンドでKubernetesクラスタの情報を取得できます。
$ source ~/.bash_profile
$ kubectl cluster-info
Kubernetes master is running at http://172.17.8.101:8080
$ kubectl get nodes
NAME LABELS STATUS
172.17.8.102 kubernetes.io/hostname=172.17.8.102 Ready
172.17.8.103 kubernetes.io/hostname=172.17.8.103 Ready
172.17.8.104 kubernetes.io/hostname=172.17.8.104 Ready
以上でKubernetesクラスタの構築は完了です。コマンドラインツールを使ってクラスタを操作することができます。
クラスタの停止・再構築
Kubernetesクラスタを停止する場合、vagrant destroyコマンドで仮想マシンを削除します。クラスタを再構築する場合は、クラスタの構築から再度実施してください。
$ NUM_NODES=3 vagrant destroy
-
Notes:
- NUM_NODESを指定しないと3台目以降のnodeが削除されません。
- vagrant haltコマンドで仮想マシンを停止させた場合、次回起動時にエラーとなってしまいます。また、vagrant suspendコマンドは利用できません。
Windowsの場合
リポジトリの取得
以下のリンクよりZIPファイルを取得して解凍します。
https://github.com/pires/kubernetes-vagrant-coreos-cluster/archive/master.zip
クラスタの構築
> cd kubernetes-vagrant-coreos-cluster-master
> set NUM_NODES=3
> set MASTER_MEM=512
> set NODE_MEM=512
> set VAGRANT_DEFAULT_PROVIDER=virtualbox
> vagrant up
CoreOSの仮想マシンが4台構築されます。
Notes
- ローカルマシンのメモリが足りない場合はNUM_NODES=2として実行してください。仮想マシン3台の構成になります。
- 設定した環境変数は以下のコマンドで確認できます。
> set
構築後の確認
VirtualBox上に仮想マシンが4台稼働しています。
> vagrant status
Current machine states:
master running (virtualbox)
node-01 running (virtualbox)
node-02 running (virtualbox)
node-03 running (virtualbox)
MasterノードにKubernetesのコマンドラインツールがインストールされています。SSHでログインし、MasterノードからKubernetesクラスタへの操作を行います。
> vagrant ssh master
以下のコマンドでKubernetesクラスタの情報を取得できます。
$ kubectl cluster-info
Kubernetes master is running at http://172.17.8.101:8080
$ kubectl get nodes
NAME LABELS STATUS
172.17.8.102 kubernetes.io/hostname=172.17.8.102 Ready
172.17.8.103 kubernetes.io/hostname=172.17.8.103 Ready
172.17.8.104 kubernetes.io/hostname=172.17.8.104 Ready
以上でKubernetesクラスタの構築は完了です。Masterノードからコマンドラインツールを使ってクラスタを操作することができます。
クラスタの停止・再構築
Kubernetesクラスタを停止する場合、vagrant destroyコマンドで仮想マシンを削除します。クラスタを再構築する場合は、クラスタの構築から再度実施してください。
> set NUM_NODES=3
> vagrant destroy
-
Notes:
- NUM_NODESを指定しないと3台目以降のnodeが削除されません。
- vagrant haltコマンドで仮想マシンを停止させた場合、次回起動時にエラーとなってしまいます。また、vagrant suspendコマンドも利用できません。