关于Rancher 2.0 技术预览2
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集群。不论这些Kubernetes集群托管在何处,Rancher都会实施集中管理的身份验证和授权。
- Rancher为所有的Kubernetes集群提供了一个简单的工作负载管理界面。这个工作还在进行中。我们将继续提供直观的Rancher 1.0风格的以容器为中心的界面。我们还增加了许多先进的工作负载管理功能,如应用程序目录、CI/CD和监控集成、精细的统计数据、日志集中管理等。
比较技术预览1的架构和技术预览2的架构。
MySQL在Tech Preview 1之前是存在的,但现在已经消失了,并且组件也发生了变化。让我们来比较一下Tech Preview 1和2的架构。
技术预览1的架构。

コンポーネント概要Rancher ServerRancher Serverは、Rancher2.0からDockerからKubernetesの仕組みとなり、クライアント、ホスト、インポートしたKubernetesクラスタを管理します。ステートレスなコンポーネントです。Rancher ControllerRancher 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-agentNetes-agentは、Rancherコンテナー群の定義を取得してKubernetes Podとして実装して、管理下にあるすべてのKubernetesクラスタに接続します。Auth ProxyAuth Proxyは、クライアントからのKubectlコマンドやkubernetes APIの窓口となります。Embedded Kubernetes MasterEmbedded Kubernetes Masterは、マルチテナントAPIサーバ、コントローラマネージャ、スケジューラで構成されています。全てがステートレスで、障害に強いコンポーネントです。Rancher agentRancher agentはWebsocketプロキシ経由でRancher Serverに接続します。Websocketプロキシはポート8080でリッスンしてポート8081でRancher Serverに接続します。Websocket接続により、エージェントは全二重通信を実行できます。さらに、コンソールセッション、統計情報、およびログエントリもまた、ホストからRancher Serverに配信されます。エージェントは1分ごとにステータスパケットをRancher Serverに送信します。ステータスパケットには、すべてのコンテナとそのステータスのリストを含んでいます。多数の欠落したステータスパケットにより、ホストは、「再接続」状態となります。KubeletKubeletは、kubernetesのコンポートです。Podの起動や管理を行います。Docker DaemonDocker Daemonは、Kubeletと連携してコンテナーの起動、実行を行います。
・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-agentNetes-agentは、Rancherコンテナー群の定義を取得してKubernetes Podとして実装して、管理下にあるすべてのKubernetesクラスタに接続します。Auth ProxyAuth Proxyは、クライアントからのKubectlコマンドやkubernetes APIの窓口となります。Embedded Kubernetes MasterEmbedded Kubernetes Masterは、マルチテナントAPIサーバ、コントローラマネージャ、スケジューラで構成されています。全てがステートレスで、障害に強いコンポーネントです。Rancher agentRancher agentはWebsocketプロキシ経由でRancher Serverに接続します。Websocketプロキシはポート8080でリッスンしてポート8081でRancher Serverに接続します。Websocket接続により、エージェントは全二重通信を実行できます。さらに、コンソールセッション、統計情報、およびログエントリもまた、ホストからRancher Serverに配信されます。エージェントは1分ごとにステータスパケットをRancher Serverに送信します。ステータスパケットには、すべてのコンテナとそのステータスのリストを含んでいます。多数の欠落したステータスパケットにより、ホストは、「再接続」状態となります。KubeletKubeletは、kubernetesのコンポートです。Podの起動や管理を行います。Docker DaemonDocker Daemonは、Kubeletと連携してコンテナーの起動、実行を行います。
技术预览2的架构

コンポーネント概要Rancher API ServerEmbedded 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 AgentsCluster 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 ProxyAuth Proxyは、全てのKubernetes API呼び出しをプロキシして、ローカル認証、Active DirectoryやGitHubのような認証サービスと統合します。Kubernetes APIを呼び出すたびに、Auth Proxyは、呼び出し元を認証し、Kubernetes Masterへ呼び出しを転送する前に適切なKubernetesの偽装ヘッダーを設定します。Rancherは、サービスアカウントを使用してKubernetesクラスタと通信します。RKE/GKE Kubernetes MasterKubernetes Masterはkubernetesのコンポーネントで、API Server、Scheduler、Controller、etcd等の機能を有しています。図では、RKEとGKEですが、将来的にはEKS、AKS等も利用できる予定です。KubeletKubeletは、kubernetesのコンポートです。Podの起動や管理を行います。
1.ユーザ管理機能。Rancher API Serverは、Active DirectoryやGitHubのような外部の認証プロバイダに対応するユーザIDを管理します。
2.認可。Rancher API Serverは、アクセス制御とセキュリティポリシーを管理します。
3.プロジェクト。プロジェクトは、クラスタ内の複数のnamespaceをグループ化したものです。
4.ノード。Rancher API Serverは、全クラスタ内の全ノードのIDを追跡します。Cluster Controller and Cluster AgentsCluster 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 ProxyAuth Proxyは、全てのKubernetes API呼び出しをプロキシして、ローカル認証、Active DirectoryやGitHubのような認証サービスと統合します。Kubernetes APIを呼び出すたびに、Auth Proxyは、呼び出し元を認証し、Kubernetes Masterへ呼び出しを転送する前に適切なKubernetesの偽装ヘッダーを設定します。Rancherは、サービスアカウントを使用してKubernetesクラスタと通信します。RKE/GKE Kubernetes MasterKubernetes Masterはkubernetesのコンポーネントで、API Server、Scheduler、Controller、etcd等の機能を有しています。図では、RKEとGKEですが、将来的にはEKS、AKS等も利用できる予定です。KubeletKubeletは、kubernetesのコンポートです。Podの起動や管理を行います。
开始使用 Rancher 2.0
准备下表中的Linux主机。
項目スペックOS64-bit Ubuntu 16.04Memat least 4GB of memoryDisk80GB +DockerInstall 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. 浏览器访问
※ 最初的用户名「admin」和最初的密码「admin」

Rancher2.0技术预览2的主要功能

目前,您可以使用Rancher2.0服务器从GKE、EKS和AKS创建Kubernetes集群。请注意,目前(截至2018年2月),仅支持在GKE上创建。
您可以使用RKE(Rancher Kubernetes Engine)与AWS、Azure、DigitalOcean、Packet、VMware(截止至2018年2月)进行集成,创建Kubernetes集群。
「导入现有集群」是Rancher 2.0 从 Tech Preview1 开始提供的功能,允许将现有的 Kubernetes 集群导入到 Rancher 2.0 服务器并进行管理。
我希望能够另外发布验证结果,涉及到上述主要功能。
-
- Rancher2.0 Tech Preview2 ~Create a Cloud Cluster~
- Rancher2.0 Tech Preview2 ~Create a RKE Cluster~
请参考以下资料。
牧场主2.0技术预览2
-
- 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