11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FUJITSU Cloud Service K5Advent Calendar 2017

Day 18

Rancher Kubernetes Engine(RKE) & Rancher 2.0 Technical Preview on Fujitsu K5

Last updated at Posted at 2017-12-18

GKE、AKS、EKS等、kubernetesのマネージドサービスが海外の大手クラウドベンダーが展開する中、Rancher LabsからRancher Kubernetes Engine(RKE)がリリースされました。

RKEは、KopsやKubesprayのように仮想サーバやオンプレミス環境にkubernetesクラスタ環境を簡単かつ高速に構築できるツールです。

kubernetesのマネージドサービスを実施している国内クラウドは2017年12月時点では無いので、このRKEを利用して富士通K5にkubernetesクラスタを構築して、そのkubernetesクラスタをRancher2.0 Technical Preview版でインポートしてみたいと思います。

image.png

事前準備

今回は、富士通K5の30日間無料トライアルを申し込みました。

「K5 30日間無料トライアル」

まず申し込みに先立って、「FUJITSU MetaArc Marketplace」への登録が必須となります。

「FUJITSU MetaArc Marketplace」

必要事項をフォーム入力して、メール受信、担当者からの電話連絡後、30日間無料トライアル開始となりますので、開始まで時間を要します。

環境構築

1.K5ポータルとIaaSポータル

ブラウザを起動して、K5ポータルにアクセスします。

K5ポータル

右上の[Login]ボタンをクリックします。

image.png

申し込み後のメールに記載されている「契約番号」、「ユーザ名」と申し込み時に作成した「パスワード」を入力して[ログイン]ボタンをクリックします。

image.png

[IaaSポータル]ボタンをクリックします。

image.png

IaaSダッシュボードが表示されます。

image.png

2.仮想ルータと仮想ネットワークの構築

K5はOpenStackベースのマネージドサービスであるため、いきなり仮想サーバを構築して利用はできません。まずは、ネットワーク環境の構築が必須となります。

デザインパターンが公式に用意されているので利用することをお勧めします。今回は、インターネット接続パターンをベースとします。

ネットワークの作成

仮想ルータの作成

1.「ネットワーク」-「仮想ルータ」画面で、画面右上の「+」ボタンをクリックします。

image.png

2.「新規ルータ作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。

項目 必須 設定値 内容
AZ 必須 jp-west-2a システムを設置するアベイラビリティゾーンを設定してください。
仮想ルータ名 必須 rke-router 仮想ルータ名を入力してください。

image.png

仮想ルータにゲートウェイ設定

1.「仮想ルータ」画面で、作成した仮想ルータの「アクション」-「ゲートウェイ設定」メニューで、仮想ルータを接続させる「外部仮想ネットワーク」(インターネット側のネットワーク)を選択し、「設定」ボタンをクリックします。

image.png

項目 必須 設定値 内容
外部仮想ネットワーク 必須 inf_az1_ext-net03 複数の外部仮想ネットワークから1つ選択

image.png

内部ネットワーク作成

1.「ネットワーク」-「仮想ネットワーク」画面で、画面右上の「+」ボタンをクリックします。

image.png

2.「仮想ネットワーク作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。

項目 必須 設定値 内容
AZ 必須 jp-west-2a AZ システムを設置するアベイラビリティゾーンを設定してください。
仮想ネットワーク名 必須 rke-network 仮想ネットワーク名を入力してください。
管理状態 必須 UP ここでは "UP" で設定してください。

image.png

項目 必須 設定値 内容
サブネット作成 必須 あり ここでは "あり" で設定してください。
サブネット名 必須 rke-subnet サブネット名を入力してください。
仮想ネットワークアドレス 必須 192.168.0.0/24 CIDR形式で入力してください。
ゲートウェイ 推奨 あり ここでは "あり" で設定してください。
ゲートウェイIP 推奨 192.168.0.1 必須ではありませんが、設定してください。※この後の設定で使用します。

image.png

項目 必須 設定値 内容
DHCP有効 推奨 あり 必須ではありませんが、設定してください。
IPアドレス割当プール 任意 - 必要に応じて設定してください。
DNSサーバ 推奨 133.162.145.9
133.162.145.10
K5 IaaS機能説明書のP271に各リージョンごとのDNSサーバのIPアドレスが記載されているので参照する必要があります。
追加のルート設定 任意 - CIDR形式の宛先(Destination)と、その宛先へ接続するルータのIPアドレス(Nexthop)を設定します。

image.png

image.png

4.作成された仮想ネットワークが一覧に表示されることを確認します。

image.png

仮想ルータにサブネットをアタッチ

1.「ネットワーク」-「仮想ルータ」画面で、作成した仮想ルータをクリックします。

image.png

2.「仮想ルータ詳細」画面で、「インターフェース」の項の右上にある「+」ボタンをクリックします。

image.png

3.「インタフェース設定」画面で、以下の項目を入力し、「追加」ボタンをクリックします。

項目 必須 設定値 内容
サブネット 必須 rke-router 内部ネットワーク作成の際に設定したサブネットを選択してください。
IPアドレス 必須 192.168.0.1 内部ネットワーク作成の際に設定したゲートウェイIPを設定してください。

image.png

4.作成した設定がインターフェースの一覧に表示されることを確認します。

image.png

グローバルIPアドレス確保

1.「ネットワーク」-「グローバルIP」と選択した画面で、画面右上の「+」ボタンをクリックします。

image.png

2.グローバルIPプールの選択を行う画面が表示されます。グローバルIPアドレスの割当対象(仮想サーバまたは仮想ルータ)が接続する
グローバルIPプール(外部ネットワーク)を選択します。
今回は、仮想ルータのゲートウェイに設定した外部ネットワーク「inf_az1_ext-net03」を選択し、「次へ」をクリックします。

image.png

3.「network:router_interface(192.168.0.1) rke-router」を選択し、「次へ」をクリックします。

image.png

4.「設定」をクリックします。

image.png

3.セキュリティグループとキーペア

セキュリティグループの設定

セキュリティグループ作成

1.「ネットワーク」-「セキュリティグループ」画面で、画面右上の「+」ボタンをクリックします。

image.png

2.「セキュリティグループ作成」画面で、以下の項目を入力し、「次へ」、「作成」とボタンをクリックします。

項目 必須 設定値 内容
サブネット 必須 rke-network セキュリティグループ名を入力してください。
IPアドレス 任意 - セキュリティグループに対する説明事項を入力してください。

image.png

image.png

ルールの編集

1.「ネットワーク」-「セキュリティグループ」画面で、作成したセキュリティグループ「rke-security」の「アクション」から「ルール管理」をクリックします。

image.png

2.「ルール管理」画面で、以下の2つのルールを削除します。各ルールの「アクション」にある「削除」ボタンで削除してください。

方向 Ethernetタイプ IPプロトコル ポート範囲 接続先
egress IPv6 - - -
igress IPv4 - - -

3.「セキュリティグループルール管理」画面で、「ルールの追加」ボタンをクリックします。

image.png

4.「ルールの追加」ポップアップが表示されるので、以下のルールを追加します。

ルール 方向 接続先 CIDR
ALL TCP 受信 CIDR 0.0.0.0/0
ALL TCP 送信 CIDR 0.0.0.0/0
ALL UDP 受信 CIDR 0.0.0.0/0
ALL UDP 送信 CIDR 0.0.0.0/0

image.png

キーペアの作成

1.「コンピュート」-「キーペア」画面で、画面右上の「+」ボタンをクリックします。

image.png

2.「キーペア」画面で、以下の項目を入力し、「次へ」、「作成」とボタンをクリックします。

項目 必須 設定値 内容
キーペア名 必須 rke-keypair キーペア名を入力してください。
AZ 必須 jp-west-2a システムを設置するアベイラビリティゾーンを設定してください。

image.png

image.png

3.「rke-keypair.pem」を保存しますかというメッセージが表示されますので、保存します。このファイルは、仮想サーバにログインする際の ssh鍵になります。取り扱いには厳重に注意してください。キーペアは、なくした場合に再発行できません。キーペアをなくすと仮想サーバに sshでログインできなくなります。

4.仮想サーバとグローバルIPアドレス

仮想サーバの作成

1.「コンピュート」-「仮想サーバ」画面で、画面右上の「+」ボタンをクリックします。

image.png

2.「仮想サーバ作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。

合計4台の仮想サーバを準備します。仮想サーバ名についてはそれぞれ任意の名前を設定してください。

項目 必須 設定値 内容
AZ 必須 jp-west-2a システムを設置するアベイラビリティゾーンを設定してください。
仮想サーバ名 必須 k8s-01 今回は、2台目はk8s-02、3台目はk8s-03、4台目はrancher-serverとします。
仮想サーバタイプ 必須 S-2 仮想サーバタイプ(フレーバー)を入力してください。
仮想サーバのブートソース 必須 イメージ 仮想サーバを何から作成するかを示す作成元を設定してください。
イメージ 必須 パブリック Ubuntu Server 16.04 LTS (English) 01 OSイメージを選択してください。
デバイスサイズ(GB) 必須 100 イメージサイズと同じサイズを指定してください。
デバイス名 必須 /dev/vda

image.png

3.「rke-network」を選択して、「次へ」ボタンをクリックします。

image.png

4.「rke-keypair」を選択して、「default」と「rke-security」にチェックを入れて、「次へ」ボタンをクリックします。

image.png

5.「次へ」ボタンをクリックします。

image.png

image.png

6.4台ともACTIVEになっていることを確認します。

image.png

グローバルIPアドレスの割り当て

4台分作成します。

1.「ネットワーク」-「グローバルIP」と選択した画面で、画面右上の「+」ボタンをクリックします。

image.png

2.「グローバルIPプール」で、「inf_az1_ext-net03」を選択します。

image.png

3.「グローバルIPアドレス割当ポート」で、「compute:jp-west-2a(192.168.0.3) k8s-01」を選択します。

※残り3台については、仮想サーバ名に合わせて設定します。

image.png

4.「設定」ボタンをクリックします。

image.png

5.作成したIPアドレスの「アクション」-「割当」を選択します。

image.png

6.「compute:jp-west-2a(192.168.0.3)k8s-01」を選択して、「グローバルIP割当」ボタンをクリックします。

※残り3台については、仮想サーバ名に合わせて設定します。

image.png

7.4台にグローバルIPアドレスが割り当てられていることを確認します。

image.png

5.RKEの事前準備

Fujitsu K5上のk8s-01、k8s-02、k8s-03、rancher-serverのサーバ(4台)にログインして、以下の設定を行います。

TeraTermやターミナルを起動して、ユーザ名は「ubuntu」、秘密鍵はキーペアー作成時にダウンロードした「rke-keypair.pem」を利用してログインします。

rootパスワードの設定

パスワードは「k5rancher」とします。

コマンド
$ sudo passwd root
sudo: unable to resolve host k8s-01
Enter new UNIX password:k5rancher
Retype new UNIX password:k5rancher
passwd: password updated successfully

Dockerのインストール

今回は、Docker1.12.6をインストールします。

コマンド
$ su -
Password:k5rancher
# curl https://releases.rancher.com/install-docker/1.12.6.sh | sh
・
・(途中省略)
・
Client:
 Version:      1.12.6
 API version:  1.24
 Go version:   go1.6.4
 Git commit:   78d1802
 Built:        Tue Jan 10 20:38:45 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.6
 API version:  1.24
 Go version:   go1.6.4
 Git commit:   78d1802
 Built:        Tue Jan 10 20:38:45 2017
 OS/Arch:      linux/amd64

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

ubuntuユーザをdockerグループに追加

sudo無しで、ubuntuユーザがdockerコマンドを実行できるようにします。

コマンド
# usermod -aG docker ubuntu
# id ubuntu
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev),110(lxd),999(docker)
# exit
$ exit

6.RKEのインストールと実行

今回はMacにRKEをインストールします。

事前準備

キーペアー作成時にダウンロードした秘密鍵「rke-keypair.pem」を「id_rsa」とリネームして「~/.ssh/」に保存します。

コマンド
$ cd ~/.ssh
$ mv rke-keypair.pem id_rsa
$ chmod 600 id_rsa

RKEのインストール

ターミナルを起動して、以下の作業を行います。

1.GitHubからRKE v0.0.8-dev 「rke_Darwin-amd64」をダウンロードします。

2.rke_Darwin-amd64.dmsファイルのリネーム

コマンド
$ mv rke_darwin-amd64.dms rke

3.rke_Darwin-amd64.dmsファイルのリネーム

コマンド
$ chmod +x rke

4.rke_Darwin-amd64.dmsファイルのリネーム

コマンド
$ ./rke
NAME:
   rke - Rancher Kubernetes Engine, Running kubernetes cluster in the cloud
USAGE:
   rke [global options] command [command options] [arguments...]
VERSION:
   v0.0.8-dev
AUTHOR(S):
   Rancher Labs, Inc.
COMMANDS:
     up              Bring the cluster up
     remove          Teardown the cluster and clean cluster nodes
     version         Show cluster Kubernetes version
     config, config  Setup cluster configuration
     help, h         Shows a list of commands or help for one command
GLOBAL OPTIONS:
   --debug, -d    Debug logging
   --help, -h     show help
   --version, -v  print the version

RKEの実行

1.cluster.ymlの作成

コマンド
$ vim cluster.yml
-------------------------------------------------------
nodes:
    - address: k8s-01のIPアドレス
      user: ubuntu
      role: [controlplane]
    - address: k8s-02のIPアドレス
      user: ubuntu
      role: [worker]
    - address: k8s-03のIPアドレス
      user: ubuntu
      role: [etcd]

services:
    etcd:
       image: quay.io/coreos/etcd:latest
    kube-api:
       image: rancher/k8s:v1.8.3-rancher2
    kube-controller:
       image: rancher/k8s:v1.8.3-rancher2
    scheduler:
       image: rancher/k8s:v1.8.3-rancher2
    kubelet:
       image: rancher/k8s:v1.8.3-rancher2
    kubeproxy:
       image: rancher/k8s:v1.8.3-rancher2
-------------------------------------------------------
:wq

2.kubernetesクラスタの構築

コマンド
$ ./rke up
INFO[0000] Building Kubernetes cluster
INFO[0000] [ssh] Checking private key
・
・(途中省略)
・
・
INFO[0215] Finished building Kubernetes cluster successfully 

3.kubectlコマンドの実行

kubernetes cluster構築後に、「.kube_config_cluster.yml」ファイルが作成されるので、このファイルを「~/.kube/config」にコピーします。

コマンド
$ cp .kube_config_cluster.yml ~/.kube/config

kubectlコマンドを実行して、nodeを確認します。

コマンド
$ kubectl get nodes
NAME              STATUS    AGE       VERSION
133.162.150.112   Ready     2m        v1.8.3-rancher1
133.162.150.113   Ready     1m        v1.8.3-rancher1

7.Rancher2.0 Serverの構築

Fujitsu K5のrancher-serverにログインして、以下の作業を行います。

Rancher2.0 Technical Previewのインストール

1.Rancher2.0 Technical Previewのインストールします。

コマンド
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:preview
sudo: unable to resolve host rancher-server
Unable to find image 'rancher/server:preview' locally
preview: Pulling from rancher/server

d5c6f90da05d: Pull complete
1300883d87d5: Pull complete
c220aa3cfc1b: Pull complete
2e9398f099dc: Pull complete
dc27a084064f: Pull complete
fb057b4f9d32: Pull complete
7c2367c9da10: Pull complete
128f718d684b: Pull complete
7506cb06dccd: Pull complete
c03c29278db6: Pull complete
1d034432ac3a: Pull complete
8ef692ea6d39: Pull complete
9bda041b46da: Pull complete
351adca835a1: Pull complete
f7f9f4c42531: Pull complete
675994dd3785: Pull complete
2fddecfa7289: Pull complete
adf3afe279d6: Pull complete
1c4c29606398: Pull complete
6c0321314e4d: Pull complete
49d6d97dfd08: Pull complete
9c54e8aae030: Pull complete
d70c4ce6fa87: Pull complete
Digest: sha256:24133c805eed31d307b908fa4c78c76f395ede0e3401af274d291cdaa4f1ec48
Status: Downloaded newer image for rancher/server:preview
12c2eb82bc09a10c71f41f81e3628c02abbee0c0cdbcb40472a223369e04b67a

2.ブラウザを起動して「http://rancher-serverグローバルIP:8080/」にアクセスして、「Got it」ボタンをクリックします。

image.png

3.「Select」ボタンをクリックします。

image.png

4.「Save」ボタンをクリックします。

image.png

5.表示されたkubectlコマンドをコピーして、「Close」ボタンをクリックします。

image.png

6.Macのターミナルで、コピーしたkubectlコマンドをペーストして実行します。

コマンド
$ kubectl apply -f http://133.162.150.116:8080/v3/scripts/E2A971C771C2490D37DA:1483142400000:bFtbg8NB4xKJxFuhFu7ODaN2gik.yaml
namespace "cattle-system" created
serviceaccount "rancher" created
clusterrolebinding "rancher" created
secret "rancher-credentials-a75c00ba" created
pod "cluster-register-a75c00ba" created
daemonset "rancher-agent" created

7.上部メニューの「Hosts」を選択すると、K5上のkubernetesクラスタが表示され、インポート完了となります。

image.png

kubernetesクラスタの削除

kubernetesクラスタも簡単に削除できます。

コマンド
$ ./rke remove
Are you sure you want to remove Kubernetes cluster [y/n]: y
INFO[0001] Tearing down Kubernetes cluster
・
・(途中省略)
・
INFO[0017] Cluster removed successfully

以上で、Fujitsu K5上にRKEでkubernetesクラスタを構築して、Rancher2.0 Technical Previewでインポートは完了となります。
Fujitsu K5に限らず、仮想サーバが用意できれば他のクラウドベンダーおよびオンプレミスで同様のことはできますので、この記事をベースに試してみましょう!!

8.参考資料

11
7
2

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
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?