2018年1月24日にRancher LabsよりRancher2.0 Tech Preview2がリリースされました。
Tech Preview1のリリースから約4ヶ月の短期間ですが、大幅に変わっています。
一つずつ見ていきましょう。
Rancher2.0 Tech Preview2の主な特徴
- Rancher Serverは100%Go言語で書かれて、MySQLデータベースがなくなりました。
- Rancher Serverを従来のDockerホストや既存のKubernetesクラスタに展開できます。
- Rancher Kubernetes Engine(RKE)やGoogle Kubernetes Engine(GKE)などのマネージドKubernetesサービスを使用して、新しいKubernetesクラスタを作成できます。 Rancherは、RKEとGKEの両方のクラスタプロビジョニングを自動化します。将来的には、EKSやAKSなどのマネージドKubernetesサービスのサポートも追加します。
- 統一されたクラスタ管理インターフェイスから、すべてのKubernetesクラスタを管理できます。 Rancherは、これらのKubernetesクラスターがホストされている場所に関係なく、すべてのKubernetesクラスター間で集中管理された認証と認可を実装します。
- Rancherは、すべてのKubernetesクラスタに簡単なワークロード管理インターフェースを提供します。これはまだ進行中の作業です。直感的なRancher 1.0スタイルのコンテナ中心のインターフェイスを引き続き提供しています。アプリケーションカタログ、CI/CDやモニタリングの統合、洗練された統計、ログ集中管理など、多くの先進的なワークロード管理機能を追加しています。
Compare Tech Preview1 Architecture & Tech Preview2 Architecture
Tech Preview1まであったMySQLが無くなったり、コンポーネントも変わりました。Tech Preview 1と2のアーキテクチャを比較して見ていきましょう。
Tech Preview1 Architecture
コンポーネント | 概要 |
---|---|
Rancher Server | Rancher Serverは、Rancher2.0からDockerからKubernetesの仕組みとなり、クライアント、ホスト、インポートしたKubernetesクラスタを管理します。ステートレスなコンポーネントです。 |
Rancher Controller | Rancher Controllerは、Embedded Kubernetesクラスタの生成とGKEのような既存のKubernetesクラスタをインポートします。そして、以下のコンポーネントで構成されています。 ・Websocketプロキシ:RancherエージェントまたはRancher UIからコアコントローラへの要求を出す ・Compose executor:composeファイルを解釈して実行します。 ・Core controller:サービス、ロードバランサ、DNSなどのRancher constructsを実装して、Kubernetes Podsに登録する ・Core controllerはRancherにおいてJavaで書かれた唯一のコンポーネントです。他のすべてのコンポーネントはGoで書かれています。 |
Rancher Database(MySQL) | Rancher Database(MySQL)は、Rancher1.0系と同様Rancher Server用のデータベースとなります。 |
Netes-agent | Netes-agentは、Rancherコンテナー群の定義を取得してKubernetes Podとして実装して、管理下にあるすべてのKubernetesクラスタに接続します。 |
Auth Proxy | Auth Proxyは、クライアントからのKubectlコマンドやkubernetes APIの窓口となります。 |
Embedded Kubernetes Master | Embedded Kubernetes Masterは、マルチテナントAPIサーバ、コントローラマネージャ、スケジューラで構成されています。全てがステートレスで、障害に強いコンポーネントです。 |
Rancher agent | Rancher agentはWebsocketプロキシ経由でRancher Serverに接続します。Websocketプロキシはポート8080でリッスンしてポート8081でRancher Serverに接続します。Websocket接続により、エージェントは全二重通信を実行できます。さらに、コンソールセッション、統計情報、およびログエントリもまた、ホストからRancher Serverに配信されます。エージェントは1分ごとにステータスパケットをRancher Serverに送信します。ステータスパケットには、すべてのコンテナとそのステータスのリストを含んでいます。多数の欠落したステータスパケットにより、ホストは、「再接続」状態となります。 |
Kubelet | Kubeletは、kubernetesのコンポートです。Podの起動や管理を行います。 |
Docker Daemon | Docker Daemonは、Kubeletと連携してコンテナーの起動、実行を行います。 |
Tech Preview2 Architecture
コンポーネント | 概要 |
---|---|
Rancher API Server | Embedded Kubernetes APIサーバとetcdデーターベース上に構築されています。次の機能を装備しています。 1.ユーザ管理機能。Rancher API Serverは、Active DirectoryやGitHubのような外部の認証プロバイダに対応するユーザIDを管理します。 2.認可。Rancher API Serverは、アクセス制御とセキュリティポリシーを管理します。 3.プロジェクト。プロジェクトは、クラスタ内の複数のnamespaceをグループ化したものです。 4.ノード。Rancher API Serverは、全クラスタ内の全ノードのIDを追跡します。 |
Cluster Controller and Cluster Agents | Cluster ControllerとCluster Agentsは、Kubernetesを管理するために必要なビジネスロジックを実装します。Rancherインストール全体に対するグローバルな全ロジックは、Cluster Controllerによって実装されます。別のCluster Agentインスタンスは、対応するクラスタに必要なロジックを実装します。 Cluster Agentは、次のアクティビティを実行します。 1.ワークロード管理。例えば、各クラスタにPodを作成したり、デプロイします。 2.グローバルポリシーで定義されているロールとバインディングをすべてのクラスタに適用する。 3.クラスタからRancher Serverにイベント、統計、ノード情報や状態を伝播します。 Cluster Controllerは、次のアクティビティを実行します。 1.クラスタおよびプロジェクトへのアクセス制御ポリシーを構成します。 2.必要となるDockerマシンドライバとRKEやGKEのようなKubernetesエンジンを起動して、クラスタのセットアップを行います。 |
Auth Proxy | Auth Proxyは、全てのKubernetes API呼び出しをプロキシして、ローカル認証、Active DirectoryやGitHubのような認証サービスと統合します。Kubernetes APIを呼び出すたびに、Auth Proxyは、呼び出し元を認証し、Kubernetes Masterへ呼び出しを転送する前に適切なKubernetesの偽装ヘッダーを設定します。Rancherは、サービスアカウントを使用してKubernetesクラスタと通信します。 |
RKE/GKE Kubernetes Master | Kubernetes Masterはkubernetesのコンポーネントで、API Server、Scheduler、Controller、etcd等の機能を有しています。図では、RKEとGKEですが、将来的にはEKS、AKS等も利用できる予定です。 |
Kubelet | Kubeletは、kubernetesのコンポートです。Podの起動や管理を行います。 |
Get Started with Rancher 2.0
下表にあるLinuxホストを準備します。
項目 | スペック |
---|---|
OS | 64-bit Ubuntu 16.04 |
Mem | at least 4GB of memory |
Disk | 80GB + |
Docker | Install the latest stable version of Docker on the host. |
1.最新版Dockerのインストール
$ wget -qO- https://get.docker.com/ | sh
2.Rancher2.0 Tech Preview2のインストール
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/server:preview
3.ブラウザアクセス
※初期Username「admin」初期Password「admin」
Rancher2.0 Tech Preview2の主要機能
「Create a Cloud Cluster」については、Rancher2.0 ServerからGKE、EKS、AKSにkubernetesクラスタを作成できます。
※2018年2月現在では、GKEのみ可能。
「Create a RKE Cluster」については、RKE(Rancher Kubernetes Engine)を利用してAWS、Azure、DigitalOcean、Packet、VMware(※2018年2月現在)と連携してKubernetesクラスタを作成できます。
「Import an Existing Cluster」については、Tech Preview1からの機能で、既存のKubernetesクラスタをRancher2.0 Serverにインポートして管理することができます。
上記主要機能については、別途検証結果を投稿したいと思います。
参考資料
Rancher2.0 Tech Preview2
- Announcing Rancher 2.0 Tech Preview 2
- Updated Rancher 2.0 Architecture Document
- The Quick Start Guide
- Technical Release 2 page
- Hands-on with the Rancher2.0 Beta
RKE(Rancher Kubernetes Engine)
- Announcing RKE, a Lightweight Kubernetes Installer
- An Introduction to Rancher Kubernetes Engine (RKE)
- 軽量KubernetesインストーラRKEを発表
- Rancher Kubernetes Engine(RKE)の紹介
- RKEってなんじゃ?
- RKEでオンプレKubernetesクラスタを作り、その上でOpenFaaSを動かす - その1
- RKE & Rancher2.0
- Rancher Kubernetes Engine(RKE) & Rancher 2.0 Technical Preview on Fujitsu K5