30
21

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.

Kubernetes2Advent Calendar 2017

Day 3

RancherでKubernetes on AWS

Last updated at Posted at 2017-11-22

概要

Rancherを使ってAWS上のKubernetes環境をつくります。

構成イメージ

こんな環境をつくります。
Untitled(3).png

Nodeは1台でも構いません。


IAMユーザの作成、キーの発行

Rancher UIからEC2インスタンスを起動するため、IAMキーが必要になりますので、ユーザーを作成し、発行します。

AWSマネージメントコンソールのサービスからIAMを選択します。
Kobito.XDYtdH.png


ユーザーを選択します。

Kobito.I2lRhg.png


ユーザーを追加 を選択します。

Kobito.0OpqP9.png


任意のユーザー名を入力し、アクセスの種類でプログラムによるアクセスにチェックを入れ、次に進みます。

Kobito.8Fd0id.png


既存のポリシーを直接アタッチを選択し、ポリシー名AmazonEC2FullAccessにチェックを入れ、次に進みます。
Kobito.DUlU26.png


ユーザーの作成をクリックします。

Kobito.ZyCCkT.png


.csvのダウンロードをクリックし、CSVファイルをローカルにダウンロードしておきます。
Kobito.MEgOpV.png


Rancherの起動

マネージメントコンソールのサービス一覧からEC2を選択します。

image.png


インスタンスインスタンスの作成を選択します。
image.png


AWS Marketplace を選択します。
image.png


Rancher on RancherOSのイメージを選択します。
image.png


Continueをクリックします。
image.png


インスタンスタイプを選択します。選択できる最安のものはt2.smallになります。
image.png

選択後、確認と作成をクリックします。
デフォルトVPCへの構築を前提としていますので、必要であれば、VPCの選択等の設定を実施してください。


作成をクリックします。

image.png


必要に応じて、キーペアを選択します。
今回のハンズオンではSSHログインしませんので、キーペアなしでも構いません。
image.png


インスタンスの表示をクリックし、インスタンス一覧を表示します。
image.png


作成したインスタンスのIPv4パブリックIPを確認します。
image.png

※ MarketplaceからRancherのAMIを起動すると、Rancher on RancherOS-v1-1-0-AutogenByAWSMP-というセキュリティグループが自動的に作成され、インスタンスに適用されます。SSHポートとTCP/8080がすべて許可される設定になっていますので、継続して利用する場合は、ソースの設定を適切に実施することを推奨します。TCP/8080はAPIの利用ポートにもなりますので、後ほど作成するノードからアクセスできるように構成する必要があります。
image.png


ブラウザで先程のパブリックIPの8080番ポートにアクセスします。
http://xx.xx.xx.xx:8080
Welcome to Rancher!と表示されることを確認してください。

image.png


Rancherのアクセス制限

デフォルトではRancherのUIに対して、アクセス制限がかかっていませんので、ユーザー名、パスワードによる認証を有効にします。
RancherUIの上段メニューからAdminAccess Controlを選択します。

image.png


Access Controlの一覧からLocal を選択し、ユーザー名、パスワードを入力し、`Enable Loacl Auth`をクリックします。
image.png


確認のため、一旦ログアウトします。
image.png


先程指定したユーザー名、パスワードでログインできることを確認します。
必要であれば、言語を日本語に変更することも可能です。

image.png


Kubernetesクラスタの作成

上段メニューの環境を管理を選択します。

image.png


環境を追加をクリックします。
image.png


名前を入力し、環境のテンプレートでKubernetesを選択し、作成をクリックします。
image.png


メニューの環境を作成したKubernetesに切り替えます。
image.png


メニューのインフラストラクチャホストを選択します。
image.png


ホストを追加をクリックします。
image.png


サイトのアドレスにチェックが入っていることを確認し、保存をクリックします。
image.png


AMAZON EC2を選択し、リージョンを指定、先に作ったIAMユーザのアクセスキー、秘密キーを入力し、次に進みます。

image.png


アベイラビリティゾーン、サブネットを指定し、次に進みます。

image.png


セキュリティグループを選択します。 rancher-machineを選択し、次に進みます。

image.png

rancher-machine を選択することにより、必要なポートが許可されたセキュリティグループが生成されますが、SSHポート等がすべて許可される設定になっていますので、継続して利用する場合は、ソースの設定を適切に実施することを推奨します。SSHはRancherからアクセスできるように構成する必要があります。


名前を指定し、その他のオプションを選択し(そのままでも構いません)、作成をクリックします。

image.png


同様にもう一方のアベイラビリティゾーンにもホストを作成します。(1台のみでも構いません。)
ホストが正常に起動し、rancher-agent-bootstrap以外が緑の◯になっていることを確認します。

image.png


作成したホストにSSHでログインしたい場合は、ホスト右上のメニューボタンをクリックし、マシン設定を選択すると、ZIPファイルがダウンロードできます。SSHの秘密鍵が、展開したディレクトリのmachines/ホスト名/id_rsaにありますので、このファイルを指定し、SSHログインが可能です。
image.png


メニューのKUBERNETESインフラストラクチャスタックを選択し、すべて緑になっていることを確認します。
image.png


メニューKUBERNETESダッシュボードを選択し、Kubernetes UIをクリックします。

image.png


別ウインドウでKubernetes UIが起動します。

image.png


ノードに適用するセキュリティグループに設定を追加します。
AWSマネージメントコンソールからセキュリティグループ一覧を表示し、rancher-machineを選択、インバウンドタブを選択、編集をクリックします。

image.png


下記の2つのルールを追加します。

タイプ プロトコル ポート範囲 ソース
HTTP TCP 80 任意の場所
カスタムTCP TCP 30000-32767 任意の場所

1行目はハンズオンの中で、Webサーバのコンテナを起動して、アクセスするためにHTTPを許可しています。
2行目はインスタンスのパブリックIPを送信元とした通信を許可するために設定します。(ポート番号の仕様はよく分かっていません。30000台が使われる?)
継続して利用する場合は、ソースの設定を適切に実施することを推奨します。

image.png


nginxコンテナの起動

Kubernetes UIから 作成をクリックします。

image.png


以下のように入力し、配備をクリックします。

  • アプリケーション名
    • nginx(任意)
  • コンテナイメージ
    • nginx
  • ポッド数
    • 1
  • サービス
    • 外部
  • ポート
    • 80
  • ターゲットポート
    • 80
  • プロトコル
    • TCP

image.png


左メニューのワークロードを選択し、すべて正常に起動していることを確認します。

image.png


左メニューのサービスを選択し、正常に起動していることを確認し、外部エンドポイントのリンクをクリックします。

image.png


nginxの画面が表示されることを確認します。

image.png


その他Kubernetesチュートリアル

kubectlはRancher UIメニューの KUBERNETESCLI から実行可能


削除

Rancher UIのメニューからインフラストラクチャホストを選択します。
表示されているホストの非アクティブ化ボタンをクリックします。
image.png


表示がINACTIVEになったことを確認した後、メニューボタンから削除を選択します。
image.png

ホストがないことを確認します。


AWSマネージメントコンソールから以下を削除します。

  • 作成したIAMユーザー
  • Marketplaceから起動したEC2インスタンス
  • セキュリティグループ
    • Rancher on RancherOS-v1-1-0-AutogenByAWSMP-
    • rancher-machine

30
21
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
30
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?