注意: 情報が古くなっています。新しい情報にあわせて記事を書いた ので、そちらをご覧ください。

kubespray はproduction readyなkubernetes(k8s)クラスタを構成できるツールです。 Ansible をベースに作られているため、任意のサーバでk8sクラスタを構成できます。

今回は、3台のVMを用意してクラスタを構成してみます1

検証環境

今回用意したVMは以下の構成です。

  • 2Core
  • 8GB RAM
  • 80GB HDD
  • CentOS 7

IPアドレスは以下の様になっているものとします。

  • 192.168.1.11
  • 192.168.1.12
  • 192.168.1.13

また、kubesprayを実行するローカルの環境はmacOS Sierraです。 各ホストのrootユーザに対してSSH鍵は配置済み、firewalldは無効化されているとします。

requirements

実行する環境に、Ansible が必要なため、pipでインストールします。23

$ pip install ansible

install kubespray-cli

kubespray自体もpipでインストールします。

$ pip install kubespray

prepare

設定ファイルを生成するため、kubespray prepareを使用します。

$ kubespray prepare --nodes node1[ansible_ssh_host=192.168.1.11] node2[ansible_ssh_host=192.168.1.12] node3[ansible_ssh_host=192.168.1.13]

deploy

以下のコマンドでk8sクラスタをデプロイします。

$ kubespray deploy -u root -n flannel

今回は<code>flannel</code> ネットワークプラグインで構成しました。 kubesprayは、次のネットワークプラグインを使用してクラスタを構成することができます。

あとは構成が終了するのを待つだけです。


  1. vmware vSphere 上に作成しました ↩︎

  2. 最初、Python 3でkubesprayを実行しようとしたところ、raw_inputを使っているようで、上手くいきませんでした。Python 2で実行します ↩︎

  3. 私は一応venvを挟みました ↩︎

  4. https://github.com/kubernetes-incubator/kubespray/blob/master/docs/flannel.md  ↩︎

  5. https://github.com/kubernetes-incubator/kubespray/blob/master/docs/calico.md  ↩︎

  6. https://github.com/kubernetes-incubator/kubespray/blob/master/docs/contiv.md  ↩︎

  7. https://github.com/kubernetes-incubator/kubespray/blob/master/docs/weave.md  ↩︎