Cloud Toolkit.xを使ったKubernetesのコンテナサービスへの移植

この記事では、Cloud Toolkitを利用してContainer Service for **Kubernetes**上にアプリケーションをデプロイする方法を紹介します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/deploying-an-application-to-container-service-for-kubernetes_594804)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

前回の記事では、ローカルのJavaアプリケーションをAlibaba Cloud ECSインスタンスに直接デプロイする方法を説明しました。すでにAlibaba Cloud Container Service for Kubernetesを利用している方にとっては、このプラグインを使って [Container Service for Kubernetes](https://www.alibabacloud.com/ja/product/kubernetes)上にアプリケーションをデプロイする方法が気になるかもしれません。この記事では、この疑問に答え、Alibaba Cloud Container Service for Kubernetesにアプリケーションをデプロイする方法を解説します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/9b11a670-b086-8c88-c4b6-8691af94db28.png)

#Kubernetesのコンテナサービスについて
Alibaba Cloud Container Service for Kubernetesは、アプリケーションのライフサイクルを通じて、エンタープライズレベルの高性能かつ柔軟なKubernetesコンテナ化アプリケーションの管理を提供します。このサービスは、クラスタの作成と拡張を簡素化し、仮想化、ストレージ、ネットワーク、およびセキュリティにおけるAlibaba Cloudの機能を統合して、Kubernetesコンテナ化アプリケーションの実行環境を改善します。

#アプリケーションのローカル開発
この記事では、Webページに「Hello World」を印刷するためのJavaサーブレットを例に、展開方法を説明します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/e2175303-42c6-ef58-7861-214ad240aef9.png)

```
public class IndexServlet extends HttpServlet {
    private static final long serialVersionUID = -112210702214857712L;

    @Override
    public void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        // Demo: Use Alibaba Cloud Toolkit to modify the code of a local application and deploy the application to the cloud.
        writer.write("Deploy from alibaba cloud toolkit. 2018-10-24");
        return;
    }
    @Override
    protected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException {
        return;
    }}
```

[このリンク](https://alicloud-common.oss-ap-southeast-1.aliyuncs.com/Cloud_Toolkit_Blog/IndexSer...%5B%E9%93%B6%E6%97%B6%5D.1540514368.zip?spm=a2c65.11461447.0.0.540f69c3aAQxL1&file=IndexSer...%5B%E9%93%B6%E6%97%B6%5D.1540514368.zip)からソースコードをダウンロードできます。

先ほどのコードは、Webページに "Hello World "という文字列を表示するための標準的なJavaプロジェクトです。

Dockerfileファイル（[ダウンロードファイル](https://alicloud-common.oss-ap-southeast-1.aliyuncs.com/Cloud_Toolkit_Blog/Dockerfi...%5B%E9%93%B6%E6%97%B6%5D.1541638004.zip?spm=a2c65.11461447.0.0.540f69c3aAQxL1&file=Dockerfi...%5B%E9%93%B6%E6%97%B6%5D.1541638004.zip)）を書き、プロジェクトのルートディレクトリに保存します。

```
FROM tomcat:8.5.34-jre8
COPY target/javademo.war /usr/local/tomcat/webapps/
```

#プラグインのインストール
Alibaba Cloudは、開発者がローカルIDEで書かれたアプリケーションを効率的にContainer Service for KubernetesにデプロイするためのEclipseベースのプラグインを提供しています。

プラグインのURL：[https://www.aliyun.com/product/cloudtoolkit_en](https://www.aliyun.com/product/cloudtoolkit_en?spm=a2c65.11461447.0.0.540f69c3aAQxL1)

このEclipseベースのプラグインのインストール手順は、一般的なプラグインと似ているため、ここでは詳細を説明しません。

#プラグインの環境設定
プラグインをインストールしたら、選択して環境設定を行います。

トップメニュー > ウィンドウ > 環境設定 > Alibaba Cloud Toolkit > アカウント

以下のページが表示されたら、Alibaba CloudアカウントのAKとSKを設定して、環境設定の設定は完了です(RAMユーザーアカウントを使用している場合は、RAMユーザーのAKとSKを入力してください)。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/fc3df97b-e8d5-3868-01a7-861896340774.png)

プロジェクトをローカルにイメージとしてパッケージ化するようにDocker接続を設定します。

トップメニュー＞ウィンドウ＞環境設定＞Alibaba Cloud Toolkit＞Dockerを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/1a820b42-c761-ff61-e7ab-9eff1568cf4e.png)

#アプリケーションのデプロイ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/0960762b-1051-0602-81bf-7a7286735d7c.png)

Eclipseでプロジェクト名を右クリックし、ショートカットメニューからAlibaba Cloud > Deploy to CS Kubernetesを選択します。以下のようなデプロイ画面が表示されます。

ステップ 1

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/496000a5-4b4f-9dd9-b960-f263cd0797f0.png)

パッケージ方法の選択:
ダイアログボックスで、ローカルアプリケーションのコンテキストディレクトリとDockerfileを設定し(通常はローカルアプリケーションに応じて自動的に識別され設定されます)、[次へ]をクリックします。

要件に応じてMavenを使用してアプリケーションをビルドするには、[Use Maven build]を選択することができます。

ステップ 2

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/837818ae-a4b9-cdb6-d453-57bec5c641e5.png)

リポジトリを選択:
ダイアログボックスで、コンテナ レジストリのリージョン、ネームスペース、イメージ リポジトリを選択し、[次へ] をクリックします。

注：まだイメージ リポジトリがない場合は、ダイアログ ボックスの右上にある [新規リポジトリの作成] をクリックしてイメージ リポジトリを作成します。作成手順の詳細については、[このドキュメント](https://www.alibabacloud.com/help/ja/doc-detail/86307.htm)を参照してください。

ステップ3

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/d6ba4d27-3f01-e0ab-cd20-cddf30289362.png)


プロジェクトを CS Kubernetes に配置する] ダイアログ ボックスで、Container Service for Kubernetes のクラスタ、ネームスペース、および配置を選択し、[完了] をクリックします。

注: Container Service for Kubernetes の配置を作成していない場合は、ダイアログボックスの右上にある [Create a new Kubernetes deployment] をクリックして Container Service ¨C Kubernetes コンソールに移動し、配置を作成します。作成手順の詳細については、[このドキュメント](https://www.alibabacloud.com/help/ja/doc-detail/86488.htm)を参照してください。

Finish をクリックして、ローカル アプリケーションを Container Service for Kubernetes にデプロイします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/3d660aa1-3d82-001d-4e74-525254d11845.png)

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*