Rancherってどんなもの?
3. Single Node Installation(単一ノードインストール)
Single Node Installation(単一ノードインストール)は簡単に始めることができます。本連載では、Single Node Installation(単一ノードインストール)を中心に話を進めていきたいと思います。実際にGoogle Cloud Platform(GCP)を利用して、インストールを実施してみましょう。
Google Cloud Platformは、Googleが提供するパブリッククラウドサービスです。無料トライアルとして1年間で300ドル分試すことができます(https://cloud.google.com/)。
Step 1. Linuxホストの準備
前述の「1. Rancherインストール」の表1を参照して、オンプレミスまたは仮想マシンを準備します。
例として、表3にあるGoogle Compute Engine(GCE)のインスタンスを準備します。
項目 | 入力概要 |
---|---|
名前 | rancher-server |
リージョン | asia-northeast1(東京) |
ゾーン | asia-northeast1-b |
マシンタイプ | vCPUx1 |
ブートディスク | Ubuntu 16.04 LTS ディスクサイズ10GB |
ファイアウォール | 「HTTPトラフィックを許可する」「HTTPSトラフィックを許可する」の 両方にチェックを入れます |
Step 2. Dockerインストール
準備したLinuxホストにSSHクライアントからログインして、Dockerをインストールします。Dockerのバージョンについては「1. Rancherインストール」の表2を参照してください。
$ curl https://releases.rancher.com/install-docker/18.09.sh | sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 15225 100 15225 0 0 21881 0 --:--:-- --:--:-- --:--:-- 21875 + sudo -E sh -c apt-get update ・ ・途中省略 ・ Git commit: 6247962 Built: Sun Feb 10 04:13:50 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.2 API version: 1.39 (minimum version 1.12) Go version: go1.10.6 Git commit: 6247962 Built: Sun Feb 10 03:42:13 2019 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.
Step 3. SSL/TLSオプション
セキュリティ上の理由から、RancherはSSL(Secure Sockets Layer)/TLS(Transport Layer Security)が必要となります。インストールの際に使用する証明書には、以下の4つのオプションがあります。
- Rancherデフォルトの自己署名証明書利用
- 自己署名証明書利用
- 認証局に認定された証明書利用
- Let's Encrypt※3証明書利用
※3:Let's Encrypt(レッツ・エンクリプト)は、SSL/TLSの暗号化通信に用いる証明書の認証局(CA:Certificate Authority)。安全ではない平文のHTTP通信を、すべて暗号化したHTTPSに変えようという試みで、自由かつオープンに利用できる自動証明発行機関。
(1)デフォルトの自己署名証明書利用
Rancherのインストール時に生成される自己署名証明書を利用するので、証明書を別途準備する必要はありません。個人の開発環境やテスト環境での利用に適しています。
(2)自己署名証明書利用
OpenSSHを利用して自己署名証明書を作成して、Rancherのインストール時に指定することで反映されます。
(3)認証局に認定された証明書利用
正式な認証局に認定された証明書をRancherのインストール時に指定することで反映されます。
(4)Let's Encrypt証明書利用
以下の前提条件を満すことで、取得したLet's Encrypt証明書を利用してRancherをインストールできます。
- Let's Encryptは、インターネットサービスです。したがって、このオプションはインターナル/エアギャップネットワークでは使用不可。
- DNSに、LinuxホストのIPアドレスをRancherへのアクセスに使用するホスト名(例えば、rancher.mydomain.com)に紐づけるレコードを登録。
- LinuxホストでTCP/80ポートを開放。Let's Encrypt http-01チャレンジタイプはどの送信元IPアドレスからでもアクセスする可能性があるので、ポートTCP/80はすべてのIPアドレスに対して開放。
Step 4. Rancherインストール
本連載では、Rancherデフォルトの自己署名証明書を利用したインストールを実行します。
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.1.5 Unable to find image 'rancher/rancher:latest' locally latest: Pulling from rancher/rancher 84ed7d2f608f: Pull complete be2bf1c4a48d: Pull complete a5bdc6303093: Pull complete e9055237d68d: Pull complete eaddf133ba2d: Pull complete 1aa56187fc29: Pull complete 1253c9d24915: Pull complete bf77b269856e: Pull complete a8fea8f1f733: Pull complete 400d7955b7f5: Pull complete f0f204912ecb: Pull complete 01c9232cc45b: Pull complete Digest: sha256:71980cad338aa1630f7401cda3298dc7f579ade71a22b99dff5800291282e669 Status: Downloaded newer image for rancher/rancher:latest a57621d5304a7c45ead1cfc21611dd77b7691d1794397636a933d161384a5421
Webブラウザを起動して、「https://LinuxホストのIPアドレス/」にアクセスして、「詳細設定」ボタンをクリックします(図2)。
「<LinuxホストIPアドレス>にアクセスする(安全ではありません)」を選択します(図3)。
以下の画像のようにRancherのログイン画面が表示されたら、インストールは完了です(図4)。
Step 5. Rancher初期セットアップ
初回インストール直後は、上の「Welcome to Rancher」画面が表示されます。最初に、初期adminユーザのパスワードを設定します。ここでは、adminpasswordとします。
「New Password」と「Confirm Password」にadminpasswordと入力して、「Continue」ボタンをクリックします(図5)。
Rancher Server URL画面では、インスタンスの外部IPが表示されます。そのまま「Save URL」ボタンをクリックします(図6)。
以下の「Clusters」画面が表示されます。これでRancher初期セットアップは完了となります(図7)。
Step 6. Single Node Installationの仕組み
Rancherはバージョン1.0のDockerベースから、バージョン2.0ではKubernetesベースの仕組みに変わりました。High Availability Installationの場合は、Kubernetesクラスタ上での稼働となるので理解できますが、Single Node Installationの場合は、Dockerコマンドでイメージが展開されるため、どこがKubernetesベースとなるのか疑問が生じます。その仕組みについて説明します。
Rancherは自身のKubeconfigファイルを生成する際に、外部からKubeconfigファイルが渡されていれば外部Kubernetesを、すでに内部のKubeconfigファイルがあれば内部Kubernetesを、そのどちらでもない場合は、新たに内部Kubernetesを構築するという仕組みになっています。
外部Kubernetesというのは、高可用性インストールでRancherが稼働する外部のKubernetesクラスタのパターンとなります。一方内部Kubernetesとは、Embedded kubernetes※4と呼ばれるもので、インストール時の「docker run」コマンド実行後、Rancherが稼働するためのKubernetesがないと判断された場合に、Rancher自身がKubernetesとしてふるまう組込Kubernetesのことになります。
※4:Embedded Kubernetesの構築ロジック詳細は、こちらを参照(https://github.com/rancher/rancher/blob/v2.1.5/pkg/embedded/embedded.go#L36)。
この仕組みの詳細については、本連載の後半でピックアップ予定です。
第一回は、Rancherの紹介と単一ノードインストールまでの流れを紹介しました。次回は、もう一台ノードを追加して、Kubernetesクラスタ構築、カタログ機能からアプリケーションデプロイ、Ingressの追加をRancher UIから行う流れを紹介します。