Kubernetes-setup
Kubernetes-セットアップ
Kubernetesをセットアップする前に、仮想データセンター(vDC)をセットアップすることが重要です。 これは、ネットワークを介して互いに通信できる一連のマシンと見なすことができます。 実践的なアプローチでは、物理インフラストラクチャまたはクラウドインフラストラクチャがセットアップされていない場合、 PROFITBRICKS でvDCをセットアップできます。
クラウドでのIaaSのセットアップが完了したら、*マスター*と*ノード*を構成する必要があります。
注-Ubuntuマシンのセットアップが表示されます。 同じことが他のLinuxマシンでも設定できます。
前提条件
- Dockerのインストール*-KubernetesのすべてのインスタンスでDockerが必要です。 Dockerをインストールする手順は次のとおりです。
- ステップ1 *-rootユーザーアカウントでマシンにログオンします。
- ステップ2 *-パッケージ情報を更新します。 aptパッケージが機能していることを確認してください。
- ステップ3 *-次のコマンドを実行します。
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
- ステップ4 *-新しいGPGキーを追加します。
$ sudo apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee
/etc/apt/sources.list.d/docker.list
- ステップ5 *-APIパッケージイメージを更新します。
$ sudo apt-get update
上記のすべてのタスクが完了したら、Dockerエンジンの実際のインストールから開始できます。 ただし、これの前に、使用しているカーネルのバージョンが正しいことを確認する必要があります。
Docker Engineをインストールする
次のコマンドを実行して、Dockerエンジンをインストールします。
- ステップ1 *-マシンにログオンします。
- ステップ2 *-パッケージインデックスを更新します。
$ sudo apt-get update
- ステップ3 *-次のコマンドを使用してDocker Engineをインストールします。
$ sudo apt-get install docker-engine
- ステップ4 *-Dockerデーモンを起動します。
$ sudo apt-get install docker-engine
- ステップ5 *-Dockerがインストールされている場合は、次のコマンドを使用します。
$ sudo docker run hello-world
etcd 2.0をインストールする
これはKubernetes Master Machineにインストールする必要があります。 それをインストールするには、次のコマンドを実行します。
$ curl -L https://github.com/coreos/etcd/releases/download/v2.0.0/etcd
-v2.0.0-linux-amd64.tar.gz -o etcd-v2.0.0-linux-amd64.tar.gz ->1
$ tar xzvf etcd-v2.0.0-linux-amd64.tar.gz ------>2
$ cd etcd-v2.0.0-linux-amd64 ------------>3
$ mkdir/opt/bin ------------->4
$ cp etcd*/opt/bin ----------->5
コマンドの上記のセットで-
- まず、 etcd をダウンロードします。 指定した名前でこれを保存します。
- 次に、tarパッケージを展開する必要があります。
- dirを作成します。/optという名前のビン内。
- 抽出したファイルをターゲットの場所にコピーします。
これでKubernetesを構築する準備ができました。 クラスタ上のすべてのマシンにKubernetesをインストールする必要があります。
$ git clone https://github.com/GoogleCloudPlatform/kubernetes.git
$ cd kubernetes
$ make release
上記のコマンドは、kubernetesフォルダーのルートに _output ディレクトリーを作成します。 次に、選択した任意のディレクトリ/opt/binなどにディレクトリを抽出できます。
次に、Kubernetesマスターとノードのセットアップから実際に開始する必要があるネットワーキング部分が来ます。 これを行うには、ノードマシンで実行できるホストファイルにエントリを作成します。
$ echo "<IP address of master machine> kube-master
< IP address of Node Machine>" >>/etc/hosts
上記のコマンドの出力は次のとおりです。
次に、Kubernetes Masterの実際の構成から始めます。
最初に、すべての構成ファイルの正しい場所へのコピーを開始します。
$ cp <Current dir. location>/kube-apiserver/opt/bin/
$ cp <Current dir. location>/kube-controller-manager/opt/bin/
$ cp <Current dir. location>/kube-kube-scheduler/opt/bin/
$ cp <Current dir. location>/kubecfg/opt/bin/
$ cp <Current dir. location>/kubectl/opt/bin/
$ cp <Current dir. location>/kubernetes/opt/bin/
上記のコマンドは、すべての構成ファイルを必要な場所にコピーします。 ここで、Kubernetesフォルダーを作成したのと同じディレクトリに戻ります。
$ cp kubernetes/cluster/ubuntu/init_conf/kube-apiserver.conf/etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-controller-manager.conf/etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-kube-scheduler.conf/etc/init/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-apiserver/etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-controller-manager/etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-kube-scheduler/etc/init.d/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet/etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kube-proxy/etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet/etc/default/
次のステップは、コピーされた構成ファイルを/etcの下で更新することです。 dir.
次のコマンドを使用して、マスターでetcdを構成します。
$ ETCD_OPTS = "-listen-client-urls = http://kube-master:4001"
kube-apiserverを構成する
マスターでこれを行うには、前にコピーした /etc/default/kube-apiserver ファイルを編集する必要があります。
$ KUBE_APISERVER_OPTS = "--address = 0.0.0.0 \
--port = 8080 \
--etcd_servers = <The path that is configured in ETCD_OPTS> \
--portal_net = 11.1.1.0/24 \
--allow_privileged = false \
--kubelet_port = < Port you want to configure> \
--v = 0"
kube Controller Managerを構成する
*/etc/default/kube-controller-manager* に次のコンテンツを追加する必要があります。
$ KUBE_CONTROLLER_MANAGER_OPTS = "--address = 0.0.0.0 \
--master = 127.0.0.1:8080 \
--machines = kube-minion \ -----> #this is the kubernatics node
--v = 0
次に、対応するファイルでkubeスケジューラーを構成します。
$ KUBE_SCHEDULER_OPTS = "--address = 0.0.0.0 \
--master = 127.0.0.1:8080 \
--v = 0"
上記のすべてのタスクが完了したら、Kubernetesマスターを起動して先に進むことができます。 これを行うために、Dockerを再起動します。
$ service docker restart
Kubernetesノードの構成
Kubernetesノードは、 kubeletとkube-proxy の2つのサービスを実行します。 先に進む前に、ダウンロードしたバイナリを、kubernetesノードを構成する必要なフォルダーにコピーする必要があります。
kubernetesマスターに対して行ったのと同じ方法でファイルをコピーします。 kubeletとkube-proxyのみを実行するため、それらを構成します。
$ cp <Path of the extracted file>/kubelet/opt/bin/
$ cp <Path of the extracted file>/kube-proxy/opt/bin/
$ cp <Path of the extracted file>/kubecfg/opt/bin/
$ cp <Path of the extracted file>/kubectl/opt/bin/
$ cp <Path of the extracted file>/kubernetes/opt/bin/
次に、コンテンツを適切なディレクトリにコピーします。
$ cp kubernetes/cluster/ubuntu/init_conf/kubelet.conf/etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-proxy.conf/etc/init/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kubelet/etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-proxy/etc/init.d/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet/etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kube-proxy/etc/default/
*kubelet* および *kube-proxy conf* ファイルを設定します。
*/etc/init/kubelet.conf* を構成します。
$ KUBELET_OPTS = "--address = 0.0.0.0 \
--port = 10250 \
--hostname_override = kube-minion \
--etcd_servers = http://kube-master:4001 \
--enable_server = true
--v = 0"
/
kube-proxyの場合、次のコマンドを使用して構成します。
$ KUBE_PROXY_OPTS = "--etcd_servers = http://kube-master:4001 \
--v = 0"
/etc/init/kube-proxy.conf
最後に、Dockerサービスを再起動します。
$ service docker restart
これで設定は完了です。 次のコマンドを実行して確認できます。
$/opt/bin/kubectl get minions