5
3

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.

Rancher2.0 v2.0.3でEKSにkubernetesクラスタ構築

Last updated at Posted at 2018-06-23

AWSのEKS(Amazon Elastic Container Service for Kubernetes)がGAとなり、Rancher2.0 v2.0.2で試したところこちらのissueの内容によりうまくいきませんでした。
v2.0.3で修正されたようなので早速試してみました。

リリースノート

#Rancher2.0 v2.0.3環境の構築

EC2の準備

EC2で以下の内容で1インスタンス作成します。

EKSは2018年6月現在ではus-east-1米国東部(バージニア北部)とus-west-2米国西部 (オレゴン)のみ利用可能なので、Rancherサーバもus-west-2米国西部 (オレゴン)に立てることにしました。
もちろんどのリージョンでも問題ありません。

項目 入力概要
リージョン us-west-2米国西部 (オレゴン)
インスタンスタイプ t2.medium
ブートディスク Ubuntu 16.04 LTS

Rancher2.0 v2.0.3のインストール

TeraTermやターミナルを使用して、SSHでログインします。
ちなみに、AWSでUbuntuサーバにログインする際のユーザ名はUbuntuで、
秘密鍵を利用したログインとなります。
秘密鍵はインスタンスを作成する際に新規または既存のものを利用できます。

1.Dockerのインストール

1.12.6, 1.13.1, 17.03.2のいずれかのDockerをインストールします。

コマンド
$ curl https://releases.rancher.com/install-docker/17.03.2.sh | sh
・
・(省略)
・
+ sudo -E sh -c docker version
Client:
 Version:      17.03.2-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   f5ec1e2
 Built:        Tue Jun 27 02:31:19 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.2-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   f5ec1e2
 Built:        Tue Jun 27 02:31:19 2017
 OS/Arch:      linux/amd64
 Experimental: false

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 iyutaka2018

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

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.

2.Rancher2.0 v2.0.0のインストール

コマンド
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Unable to find image 'rancher/rancher:latest' locally
latest: Pulling from rancher/rancher
6b98dfc16071: Pull complete
4001a1209541: Pull complete
6319fc68c576: Pull complete
b24603670dc3: Pull complete
97f170c87c6f: Pull complete
870d5b269ab8: Pull complete
a19a69d4b1f9: Pull complete
a6dcc0296365: Pull complete
3b0fc6158a0c: Pull complete
4313aa3e477c: Pull complete
Digest: sha256:d7ac3b1213f9388a32d57236ab630b61716c05a068967c35f14d2c1e80d07003
Status: Downloaded newer image for rancher/rancher:latest
ed35766b4e4a245f24fb22675c76766fa3076d57006244077ee2eddf573a30b0

3.ブラウザを起動して、UIにアクセスします。

事前にAWSのセキュリティグループのインバウンドでhttpとhttpsを許可しておきましょう。

デフォルトユーザであるadminユーザのパスワード設定。

image.png

「Save URL」ボタンを押下します。

image.png

ログイン完了となります。

screencapture-34-209-50-34-g-clusters-2018-06-23-23_11_23.png

上部メニューから「Catalogs」を選択し、「Helm stable」を「Enable」に変更します。

image.png

上部メニューから「Global」を選択します。

image.png

Rancher2.0 v2.0.3からEKSにクラスタ構築

「Add Cluster」ボタンを押下します。

image.png

「In a hosted Kubernetes provide」で「Amazon EKS」を選択します。
「Cluster Name」に任意の名前を入力します。
「Region」で「us-west-2」を選択します。※「us-east-1」と「us-west-2」しか選択できないようになっています。(2018年6月現在)
「Access Key」と「Secret Key」はAWSのIAMで作成したものを入力します。
最後に「Next: Authenticate & configure nodes」ボタンを押下します。

image.png

「Instance Type」で「t2.medium」を選択します。
「Create」ボタンを押下します。

image.png

10分ほどでクラスタが完成します。Activeステータスになったらクラスタ名をクリックします。

image.png

クラスタのリソースを確認できます。

screencapture-34-209-50-34-c-c-jbgg5-2018-06-23-23_50_40.png

kubectlのインストールと設定

Rancherサーバにkubectlコマンドを実行できるようにします。

1.kubectl(linux用)をダウンロード

コマンド
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 52.5M  100 52.5M    0     0  34.5M      0  0:00:01  0:00:01 --:--:-- 34.5M

2.実行権限の付与

コマンド
$ chmod +x ./kubectl

3.kubectlファイルの移動

コマンド
$ sudo mv ./kubectl /usr/local/bin/kubectl

4.kubectlコマンドの実行

コマンド
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5", GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean", BuildDate:"2018-06-21T11:46:00Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

5.Kubeconfig Fileの設定

「Kubeconfig File」ボタンを押下します。

image.png

「Copy to Clipboard」をクリックして、「Close」ボタンを押下します。

image.png

コマンド
$ mkdir .kube
$ vim .kube/config
-----------------------------
apiVersion: v1
kind: Config
clusters:
- name: "eks-cluster"
  cluster:
    server: "https://34.209.50.34/k8s/clusters/c-jbgg5"
    api-version: v1
    certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM3akNDQ\
      WRhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFvTVJJd0VBWURWUVFLRXdsMGFHVXQKY\
      21GdVkyZ3hFakFRQmdOVkJBTVRDV05oZEhSc1pTMWpZVEFlRncweE9EQTJNak14TXpVNE1EbGFGd\
      zB5T0RBMgpNakF4TXpVNE1EbGFNQ2d4RWpBUUJnTlZCQW9UQ1hSb1pTMXlZVzVqYURFU01CQUdBM\
      VVFQXhNSlkyRjBkR3hsCkxXTmhNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ\
      0tDQVFFQXBsTStMV1AwUGtsUmxWYUkKc3l0dDVYZXlVOVcrbUpwYXVmMXRab1Jrb1JKdC9vNmpBR\
      zhrdGlUYmlPSkh6WDJzTTV0cDkwNWI0NXVRMkJEQgpyc0Z3a0lMbjZnalJZbUtqZ2xnSndGN1VCZ\
      kZYdVdjUzlVMFp6a0ZEcGRVNkJ1YmhPYUh0SFNidGFBQm0xZ04vCkRrTHR0c3RNWkRZUGJUUmpGW\
      S9rL2owWXZCYitMQzRHcG5LNzNZMkxlWWhjMFA5bmZPRDk0b3daWFNRSDVJZnYKMUhSZnRVdStIQ\
      kEwM1lsZVV2UzExZEpUQzdZNGpqdFJtZUNOTzFVU3BzS3JvZ2J4SG5MNTlKcDR4dk5rQU9OdQpzV\
      FJJL1pzdlhGaEFDLzkzNDFiYklWU1dTOGJGYnhIckc2bmtvcUlNaVd4bnB4YUdXZTVXYzlBSElvZ\
      XpIbFlnCjdsREpJUUlEQVFBQm95TXdJVEFPQmdOVkhROEJBZjhFQkFNQ0FxUXdEd1lEVlIwVEFRS\
      C9CQVV3QXdFQi96QU4KQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBTEtOd1E3WjZjcFhhMGxjTGZwQ\
      Tg0TDVGMHlOZWk3elBXTnN1bGk2bQpHQWtyZEV0TFJRMzBvUThGRCtOT3V3SUJKK1FhNjdDdHMra\
      DhmVSthL0d5VitEQ2ZnTlg0OHdCTS9MaFgvM0hwClhENkxINkxsTFRuMVZPWVZnMmlKSjh0N20ve\
      VJ5S2piT1NoTm9vUnUxNnNNNUI3d05aekxwK05KM3lUR2VpQXIKcDVxZk13dVUvTnRGTDQ4QVpUO\
      W1uQUhCRHdmYVZ6YTd1L0N2NjkzTWo0VEFqNkxvaGhHaGlRdWdON0REOVlwcQp0azRGYWVaUGFCb\
      kV6THJCT2FTbnRzZlprYTFJU2FEUmUxRjM5ZVhQNkY2U3VxYzhYSExTZEdpNlZHNUdMN1lhCnN3V\
      2NsSGdSSSt5QSs5SXRIVXV2a0F6R3pXVWswdnRqazRuN3RVZkFpOVJVV1E9PQotLS0tLUVORCBDR\
      VJUSUZJQ0FURS0tLS0tCg=="

users:
- name: "user-kbcwm"
  user:
    token: "kubeconfig-user-kbcwm:5pxd4hmm8mfk54gn7zgvdrvbkxjshfdfm2tsx7zxmlmll59gs6dl88"

contexts:
- name: "eks-cluster"
  context:
    user: "user-kbcwm"
    cluster: "eks-cluster"

current-context: "eks-cluster"
-----------------------------
:wq

6.kubectlコマンドでノードを確認します。

コマンド
$ kubectl get nodes
NAME                                            STATUS    ROLES     AGE       VERSION
ip-192-168-126-237.us-west-2.compute.internal   Ready     <none>    19m       v1.10.3
ip-192-168-179-17.us-west-2.compute.internal    Ready     <none>    19m       v1.10.3
ip-192-168-251-193.us-west-2.compute.internal   Ready     <none>    19m       v1.10.3

7.AWSのダッシュボードからもクラスタが構築できていることを確認します。

image.png

Rancher2.0 v2.0.3からEKSにクラスタを削除

対象のクラスタにチェックを入れて、「Delete」ボタンを押下します。

image.png

「Delete」ボタンを押下します。

screencapture-34-209-50-34-g-clusters-2018-06-24-00_20_48.png

削除されたことを確認します。

screencapture-34-209-50-34-g-clusters-2018-06-24-00_23_14.png

AWSのダッシュボードからもクラスタが削除されていることを確認します。

image.png

特に問題なく簡単にEKSクラスタを作成することができました。
ただ、事前に一度、EKSにCLIでクラスタを構築したことがあり、VPC等作成済みだったこともあると思います。
一度こちらのサイトを参考にしてEKSクラスタを作成してから実施する必要があるかもしれません。

5
3
0

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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?