LoginSignup
21
18

More than 5 years have passed since last update.

Kubernetesハンズオン準備編 ~ローカルマシンにKubernetesクラスタを構築する~

Last updated at Posted at 2015-08-16

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コマンドも利用できません。
21
18
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
18