Rancher v1.2.0へのアップデートについて

2016年12月にRancher v1.2.0 がリリースされました。
リリースノートとアップデート手順（v1.1.0-dev5からv1.2.0）を記載します。

- [Rancherリリースノート](https://github.com/rancher/rancher/releases/tag/v1.2.0)
- [RancherJPリリースノート(翻訳)](https://rancherjp.github.io/release-announce/v.1.2.0/)

※以下は個人での翻訳になりますが英文と合わせて見られるようにしてみました。

# 新機能（v1.1.4以降）

- **Kubernetes 1.4.6サポート** - 最新のk8sアップストリームディストリビューションのサポートに加えて、Rancherは次のサポートを提供します：
 - 既定のRancherオプションに加えて、ユーザーがAWSをクラウドプロバイダーとして選択できるようになりました。
 - kubectl exec、ログ、およびattachのサポートが追加されました。
 - k8sノードにラベル付けのサポートが追加されました。
 - PetSetオブジェクトを使用してステートフルアプリケーションを管理するためのサポートが追加されました。
 - 環境内のk8sクラスタのアップグレードをサポートしました。
 - K8テンプレートを個々のアプリケーションとして管理するスタックの概念に対するRancher UIのサポートが追加されました。スタックは、アプリケーションとしてアップグレードして削除することができます。
 - k8s DeploymentsとReplicaSetのためのRancher UIサポートが追加されました。

> 
- **Kubernetes 1.4.6 Support** - In addition to adding support for the latest k8s upstream distribution, Rancher now offers the following support:
 - Added ability for users to now be able to select AWS as a Cloud Provider in addition to the default Rancher option.
 - Added support for kubectl exec, logs, and attach.
 - Added support for k8s node labeling.
 - Added support for managing stateful applications through the use of PetSet objects.
 - Added support for upgrading k8s cluster within an environment.
 - Added Rancher UI support for the concept of a Stack to manage k8s templates as individual applications. Stacks can be upgraded and deleted as an application.
 - Added Rancher UI support for k8s Deployments and ReplicaSet.

- **Docker 1.12.xのサポート[[＃5179](https://github.com/rancher/rancher/issues/5179)]** - Docker 1.12.xはRancherでサポートされ、いくつかの拡張機能が追加されました。
 - Docker Swarmモードは、環境作成時にオーケストレーションフレームワークのオプションとして利用できるようになりました。
 - CattleはDocker 1.12.3以降のすべてのdocker run オプションをサポートするようになりました。更新された実行オプションの詳細なリストについては、[＃4708](https://github.com/rancher/rancher/issues/4708)を参照してください。

>
- **Docker 1.12.x Support [[＃5179](https://github.com/rancher/rancher/issues/5179)]** - Docker 1.12.x is now a supported in Rancher along with a few enhancements:
 - Docker Swarm mode is now available as an option for orchestration frameworks when creating environments.
 - Cattle now supports all docker run options as of Docker 1.12.3. Please see [＃4708](https://github.com/rancher/rancher/issues/4708) for a more detail list of updated run options.

- **改善された[ネットワーク](http://docs.rancher.com/rancher/v1.2/en/rancher-services/networking/)サポート[[＃5256](https://github.com/rancher/rancher/issues/5256)、[＃5276](https://github.com/rancher/rancher/issues/5276)]** - Rancherは、CNI（Container Network Interface）仕様用に作成されたカスタムネットワークプラグインのライフサイクル、配布、および更新管理を管理する機能を追加しました。
 - 現在のRancher IPSec管理ネットワークオプションは、CNIプラグインとして完全に書き直されており、CattleとK8sオーケストレーションフレームワークの両方で利用できます。
 - Rancherは、暗号化されていないクロスホスト（より良い性能を約束した）を管理されたネットワークオプションの代替オプションとして、VXLAN CNIプラグインを提供します。

>
- **Improved [Network](http://docs.rancher.com/rancher/v1.2/en/rancher-services/networking/) Support [[＃5256](https://github.com/rancher/rancher/issues/5256)、[＃5276](https://github.com/rancher/rancher/issues/5276)]** - Rancher now adds the ability to manage the lifecycle, distribution, and update management of custom networks plugins written for the Container Network Interface (CNI) specification.
 - The current Rancher IPSec managed networking option has been completely rewritten as a CNI plugin and is available to both Cattle and K8s orchestration frameworks.
 - Rancher now offers a VXLAN CNI plugin as an alternate option of an unencrypted cross-host (with a promise of better performance) managed networking option.

- **改良された[Load Balancer v2](http://docs.rancher.com/rancher/v1.2/en/cattle/adding-load-balancers/)のサポート[[＃2179](https://github.com/rancher/rancher/issues/2179)]** - Rancher LB Serviceは、以下のサポートで完全に改善されました。
 - SNIルーティングがLB v2で利用可能になりました。
 - HAProxyロギングがLB v2で利用可能になりました。 [[＃2414](https://github.com/rancher/rancher/issues/2414)]
 - ユーザは、既にサポートされているグローバルセクションとデフォルトセクションに加えて、フロントエンドとバックエンドのカスタム構成をHAProxy構成に追加できるようになりました。 [[＃2171](https://github.com/rancher/rancher/issues/2171)、[＃1871](https://github.com/rancher/rancher/issues/1871)]
 - ユーザーはホスト名ルーティングルールを持つセレクタを追加できるようになりました[[＃2288](https://github.com/rancher/rancher/issues/2288)]
 - ユーザーはv2のポートツーサービスマッピングをより柔軟に定義できるようになりました。 v1では、ポートをすべてのサービスにマップする必要がありました。
 - ユーザは、好きなLBエンジン（nginxなど）を使用して独自のカスタムLBサービスを実装し、Rancherのメタデータサービスと統合して、コンテナがLBに登録することを要求するタイミングを判断できるようになりました。

>
- **Improved [Load Balancer v2](http://docs.rancher.com/rancher/v1.2/en/cattle/adding-load-balancers/) Support [[＃2179](https://github.com/rancher/rancher/issues/2179)]** - The Rancher LB Service has been completely rewritten with the following support:
 - SNI Routing is now available in LB v2.
 - HAProxy logging is now available in LB v2.[[＃2414](https://github.com/rancher/rancher/issues/2414)]
 - Users can now add custom configuration to HAProxy configurations for frontend and backend in addition to the already supported global and default sections. [[＃2171](https://github.com/rancher/rancher/issues/2171)、[＃1871](https://github.com/rancher/rancher/issues/1871)]
 - Users can now add a selector with hostname routing rules [[＃2288](https://github.com/rancher/rancher/issues/2288)]
 - Users now have more flexibility in defining port to service mappings in v2. In v1, ports had to be mapped to all services.
 - Users can now implement and add their own custom LB Service using their favorite LB engine (i.e. nginx) by integrating it with Rancher’s metadata service to determine when container is requesting to have it registered to a LB.

- **改善された[ストレージサポート](http://docs.rancher.com/rancher/v1.2/en/rancher-services/storage-service/)** - RancherはカスタムK8フレックスボリュームとDockerボリュームプラグインのライフサイクル、配布、およびアップデート管理を管理する機能を追加しました。
 - Cattleは現在、NFS用のボリュームプラグインをサポートしています。*<strong>1.2では、RancherNFSがサポートしているNFS Dockerプラグインソリューションになることに注意してください。Convoy-NFSは1.2ではオプションとして利用できなくなり、1.3以降ではサポートされなくなります。</storng>*
 - [実験的] Rancherは現在、EBSとEFSをサポートしています。

>
- **Improved [Storage Support](http://docs.rancher.com/rancher/v1.2/en/rancher-services/storage-service/)** - Rancher now adds the ability to manage the lifecycle, distribution, and update management of both custom K8s flexvolume and Docker volume plugins.
 - Cattle now support volume plugins for NFS. *<strong>Please be aware that going forward in 1.2, RancherNFS will now be the supported NFS Docker plugin solution. Convoy-NFS will no longer be available as an option in 1.2, and will no longer be supported in 1.3+</strong>*
 - *<strong>[Experimental]</strong>* Rancher now has support for EBS, and EFS.

- **改善された認証サポート[[＃5265](https://github.com/rancher/rancher/issues/5265)]** - Rancherに新しい認証/認可サービスを追加する際の柔軟性を高めるために、認証フレームワークが改善されました。
 - Shibboleth v3はSAML 2.0のサポートした、Rancherの新しい認証プロバイダオプションになりました。

>
- **Improved Authentication Support [[＃5265](https://github.com/rancher/rancher/issues/5265)]** - The authentication framework has been re-written to provide more flexibility in adding new authentication/authorization services into Rancher.
 - Shibboleth v3 is now a new authentication provider option in Rancher written for SAML 2.0 support.

- **一般的なパフォーマンス/スケールの改善** - Rancherの一般的なパフォーマンスとスケーラビリティを向上させるために、さまざまな機能強化が追加されました。
 - UIインフラストラクチャビューが変更され、環境ごとにホストとコンテナを収容できるようになりました。
 - コンテナのデプロイパフォーマンスは、スケジューリングの改善とコンテナの並列起動を可能にすることで改善されました。

>
- **General Performance/Scale Improvements** - Various enhancements have been added to improve general performance and scalability in Rancher.
 - UI Infrastructure view has been changed to accommodate more hosts and containers per environment.
 - Container deployment performance has been improvement through scheduling improvements and to allow launching of containers in parallel.

- **[Rancher CLI](http://docs.rancher.com/rancher/v1.2/en/cli/)** - 以下の新しいRancher CLI機能が追加されました：
 - 管理対象ホストへのネイティブDocker CLI操作
 - 環境管理
 - スタック管理
 - サービス管理
 - ホスト管理
 - 管理対象ホストへのSSHアクセス

>
- **[Rancher CLI](http://docs.rancher.com/rancher/v1.2/en/cli/)** - Rancher now ships with a new rancher CLI with the following support:
 - Native Docker CLI interactions to your managed hosts
 - Environment management
 - Stack management
 - Service management
 - Host management
 - SSH access to your managed host

- **リソーススケジューリング** - Cattleは、CPUとメモリのリソース制約を介してコンテナをスケジュールする機能をサポートするようになりました。管理者は、ホスト単位でCPU/メモリのリソース制限を設定できるようになりました。

>
**Resource Scheduling** - Cattle now supports the ability to schedule containers via resource constraints in CPU and MEM. Admins can also now set resource limits of CPU/MEM on a per host basis.

- **[環境テンプレート](http://docs.rancher.com/rancher/v1.2/en/environments/#what-is-an-environment-template)** - Rancherは、ユーザーが必要なすべてのインフラストラクチャサービス（LB、ストレージ、ネットワークなど）を記述したテンプレートに基づいて環境を立ち上げる機能をサポートするようになりました。
 - Rancherには依然としてデフォルトのプライマリテンプレートが用意されているため、ユーザーはすぐに環境を稼働させることができます。
 - ユーザーは、環境作成時に展開されるインフラストラクチャサービスを記述する環境テンプレートの作成および管理できるようになりました。
 - ユーザーは、Rancherによって配備され、管理されるように、コミュニティによって提供されたサービスを利用することも、独自のサービスを作成することもできます。

>
- **[Environment Templates](http://docs.rancher.com/rancher/v1.2/en/environments/#what-is-an-environment-template)** - Rancher now supports the ability for users to launch their environment based on a template that describes all their required infrastructure services (i.e. LB, Storage, Networking, etc.).
 - Rancher will still have default primary templates so users can quickly get their environments up and running.
 - Users will now have the ability to create and manage environment templates that describes the infrastructure services that are to be deployed upon environment creation.
 - Users can now leverage both community contributed services or create their own to be deployed and managed by Rancher.

- **[HA](http://docs.rancher.com/rancher/v1.2/en/installing-rancher/installing-server/#launching-rancher-server---full-activeactive-ha)のサポートの向上** - Rancher HAは構成と管理を大幅に簡素化しました。RedisとZookeeperは、マルチノードRancherデプロイの要件として削除されました。

>
- **Improved [HA](http://docs.rancher.com/rancher/v1.2/en/installing-rancher/installing-server/#launching-rancher-server---full-activeactive-ha) Support** - Rancher HA has now been drastically simplified to configure and manage. Redis and Zookeeper have been removed as requirement for multi-node Rancher deployments.

- さらに多くの機能が...
 - Rancherは管理者が各Rancherデプロイで使用できる唯一のDockerレジストリをホワイトリストに登録する機能をサポートしました。
 - Rancherは、イメージにプレフィックスがない場合、管理者がデフォルトのDockerレジストリを追加できるようにサポートしています。
 - カタログバインディングはポートとラベルをサポートします。
 - gitブランチを扱うためのカタログサポート
 - RancherエージェントがGoに書き直されました。
 - DockerMachineが更新されました。Azureは新たに更新されたUIを備えた新しいドライバです。
 - RancherOS 0.6.0以降をサポート
 - サービスが適切に起動しなかった場合にユーザーにより良いログを提供できるように、サービスログのジャーナリングを追加しました。

>
- Any many more...
 - Rancher now supports the ability for admins to whitelist the only Docker registries available to each Rancher deployment.
 - Rancher supports allowing admins to add a default Docker registry if there are no prefixes to images.
 - Catalog bindings support for ports and labels.
 - Catalog support for handling git branches.
 - Rancher agent is now rewritten in Go.
 - DockerMachine was updated and Azure is a brand new driver with a new updated UI.
 - Support for RancherOS 0.6.0+
 - Added Service Log journaling to allow give users better logging when services do not launch properly.

# 1.2へのアップグレード方法

Rancher 1.2は、ネットワークの管理方法を大幅に変更しました。特に、適切なCNIプラグインへのIPSecネットワークのリファクタリングと、HAProxy構成の柔軟性の高いプロバイダユーザーへの新しいv2 LBサービスの導入です。これらの変更により、アップグレードプロセスによりネットワークのダウンタイムが発生し、接続を復元するために各環境をアップグレードする必要があります。アップグレードプロセスはRancherアップデートと個々の環境アップデートに分割されていますので、以下の手順に従って現在のバージョンを1.2に正しくアップグレードしてください：

>
Rancher 1.2 introduces some major changes to how network is managed, most notably the refactoring on the IPsec networking to a proper CNI plugin and the introduction of a new v2 LB service to provider users with more flexibility in HAProxy configurations. Due to these changes, the upgrade process will result in network downtime and will require you to upgrade each environment to restore connectivity. The upgrade process has been split into a Rancher update followed by individual environment updates so please follow the instructions below to properly upgrade your current version to 1.2:

**Rancher Serverのアップグレード**
データベースを必ずバックアップしてください。Rancher 1.2.0で使用されていた以前のバージョンにロールバックすることはできません。ロールバックする必要がある場合は、以前のバージョンを実行していたデータベースのスナップショットのみを使用できます。データベースのバックアップを作成したら、ドキュメントに従って通常のアップグレードプロセスを進めてください。

注意：AWSセキュリティグループを使用している場合は、セキュリティグループでICMPが有効になっていることを確認してください。

>
**Rancher Server Upgrade**
Make sure you back up your database. You will not be able to rollback to a previous version that has been used with Rancher 1.2.0. If you need to roll back, you will only be able to use a snapshot of a database that had been running your previous version. Once you have created a backup of your database, please proceed with the normal upgrade process as per the docs.
>>
Note: If you are using AWS security groups, please make sure ICMP is enabled in your security group. 

**環境アップグレード**
Rancherサーバーをアップグレードした後は、1.2環境に正常にアップグレードするまで、環境にアクセスできなくなります。 1.2のネットワークとLBの変更により、新しいネットワークコンポーネントが更新されて移行されるまで、アップグレードプロセスにはダウンタイムが必要になります。アップデートが必要な環境ごとに[今すぐアップグレード]画面を表示することにより、これらの環境をいつ更新するかを決定するための便利な機能を提供しました。更新を実行するまで、コンテナは機能し続ける必要がありますが、管理機能は許可されませんが、コンテナの再作成（ヘルスチェック）によってこれらのコンテナが機能しなくなる可能性があります。HA、DNSプログラミング、ヘルスチェックなど、Rancherの関与が必要な機能は、完了するまで正常に動作しない可能性があるため、環境をアップグレードすることを強くお勧めします。

[今すぐアップグレード]をクリックすると、Rancherは環境のアップグレードに進みます。ご使用の環境の規模によっては、最大10〜20分かかる場合がありますので、慎重にお待ちください。**Stacks - > Infrastructure**の下にあるすべてのスタックが**アクティブ**な状態になると、環境は正常に更新されます。

*<strong>Kubernetes環境をお持ちの方は、インフラストラクチャサービスがすべてアクティブ状態になったら、既存のk8s v1.2.6スタックをv1.4.6にアップグレードする必要があります。注：k8sをアップグレードする際、既存のポッドを削除して再作成する可能性のある既知の問題があることに注意してください。ポッドがレプリケーションコントローラの一部でない場合は、再作成されません。それに応じて計画してください。この場合も、アップグレードプロセスは環境に応じて5〜10分以上かかる可能性があり、スタックがアクティブな状態になると完了します。</strong>*

>
After your Rancher server has been upgraded, you will no longer be able to access your environments until you successfully upgrade them to the 1.2 environments. Due to the network and LB changes with 1.2, the upgrade process will require downtime until the new network components have been updated and migrated. We have provided a convenience feature for you to decide when to update these environments by displaying an **Upgrade Now** screen for each environment that requires an update. Until you perform the update, the containers should remain functional but no management capability will be allowed, but anything trigger recreation of containers (health checks) may cause these containers to no longer work. We highly suggest you upgrade the environments as any functionality that require Rancher involvement such as HA, DNS programming, healthchecks, etc. may not work properly until it has been completed.
>
Once you click "Upgrade Now", Rancher will proceed to upgrade the environment. Please be patient as this can take up to 10-20 minutes depending on the size of your environment. The environment will be successfully updated when all the stacks found under Stacks -> Infrastructure are in the active state.
>
*<strong>For those of you that have Kubernetes environments, you must upgrade your existing k8s v1.2.6 stack to v1.4.6 after all infrastructure services are in an</strong>* *active* *<strong>state. Note: When upgrading k8s, please be aware that there is a known issue that may cause existing pods to get deleted and recreated. If the pod is not part of a replication controller, it will not be recreated. Please plan accordingly. Again, the upgrade process may take upwards of 5-10 minutes depending on your environment and will be completed when the stack is in an*</strong> *active* *<strong>state.</strong>*

**アップグレードに関する既知の制限事項**

- Swarm環境のアップグレードはサポートされていません。DockerをDockerエンジンに移行することに関するDockerからの変更により、Swarmのサポートを最新のDocker 1.12 Swarmに更新しました。
- 環境テンプレートオプションを表示するために、マイグレーションフォルダであるカタログエントリがいくつかあります。 これらのカタログ・エントリーは、古いエントリーへのロールバックをサポートしていません。例えば、Kubernetes、すべての外部DNSエントリが含まれますが、これに限定されません。
- v1ロードバランサからv2ロードバランサへのアップグレード中に、セレクタを使用するルールはアップグレードされません。 これらのルールは、環境のアップグレード後にロードバランサに追加する必要があります。
- 1.2からは、Rancherはcadvisorからの統計情報を取得せず、Dockerの統計情報から取得します。 これにより、Prometheusのようなcadvisorに依存する既存のカタログ項目は、Dockerの統計情報に依存するように修正されるまで機能しなくなることに注意してください。

>
**Known Limitations with Upgrade**
>
- Upgrading Swarm environments are not supported. Due to the change from Docker regarding moving Swarm into the Docker engine, we have updated our original Swarm support to the latest Docker 1.12 Swarm.There are some catalog entries that are migrating folders in order to show up for environment template options.
- These catalog entries do not support roll back to the old entries. Examples include but not limited to: Kubernetes, all External DNS entries.
- During the upgrade from v1 load balancers to v2 load balancers, any rules using selectors will not be upgraded. These rules would need to be added into the load balancer after the environment upgrade.
- Starting with 1.2, Rancher will no longer pull stats from cadvisor but rather from docker stats. Please be aware that this will cause existing catalog items that rely on cadvisor such as Prometheus to no longer work until they have been fixed to rely on docker stats instead.

# アップデート手順

## 1.Rancher（v1.1.0-dev5）の停止

```lang:コマンド
# docker stop アップデート前のRancherコンテナID
```

## 2.volumeに退避

```lang:コマンド
# docker create --volumes-from アップデート前のRancherコンテナID --name rancher-data rancher/server:アップデート前のRancherサーバのtag名※
```
※アップデート前のRancherサーバを以下のコマンドでインストールした場合、tag名はlatestになります。

## 3.最新（v1.2.0）のRancherをpullします。

```lang:コマンド
# docker pull rancher/server:latest
```

## 4.退避したvolumeからv1.2.0のRancherを起動します。

```lang:コマンド
# docker run -d --volumes-from rancher-data --restart=always -p 8080:8080 rancher/server:latest
```

* * *
参考サイト

[【Docker】RancherOSで本格的な自宅サーバーを構築しよう(2) ~ rancher-serverをインストール ~](http://qiita.com/okamu_/items/305e0af4545901d44a94)