IBM Cloud ではじめるAlfresco お試し環境:k8s編(1)

# 切っ掛け
ふとした切っ掛けで、久しぶりにAlfrescoに触れました。2CPU、メモリ4GBのLinuxサーバーで動かしていたのですが、それでも月々数千円かかりますので評価環境と割り切って、お金がかからない方法でAlfrescoを再実装した備忘録です。SharePointを業務データのポータルとして運用している人であれば、Alfrescoも似た感じで使用できます。

# Kubernetes環境を用意
クレジットカード登録なしで気軽に取得できる[IBM Cloud ライトアカウント](https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/)を取得し、Kubernetesを使用するためにデビットカードを登録します。VISAデビットを用意しました。本来であれば、IBM Cloud ライトアカウントでKubernetesを使用可能なはずですが、2018年2月現在、Kubernetesクラスターを作成することができなくなっています。

bluemix.netからログインし、[ダッシュボード](https://console.bluemix.net/dashboard/apps/)の画面左上の「三」→コンテナの順にクリックします。
![k8s_新規クラスタ作成_1.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/b433b747-c3fe-7159-9f52-7ee08911c9e0.png)

地域で好みのデータセンターを選び、画面右上の「クラスターの作成」をクリックします。本記事では地域(Region)は「英国」を使用し、Cluster typeは無料を使用しています。
![k8s_新規クラスタ作成_2.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/e7d4c467-4c8e-77ec-1263-0c717e95df81.png)

しばらく待ち、「デプロイ中」が「準備完了」になるまで待ちます。
![k8s_新規クラスタ作成_3.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/e406e995-32f5-5d55-e02f-ae3b28aa6d3a.png)

名前に表示されている「クラスター名」→「ワーカー・ノード」の順にクリックし、割り当てられた「パブリックIP」を確認します。
![k8s_新規クラスタ作成_5.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/4759d79b-91f0-1995-42c3-b9c62f3c6c52.png)

Kubernetesダッシュボードでアプリケーション作成後に使用します。

# Kubernetesへアクセス
ここからは、Linux環境を用意します。Windowsに操作が似ているものとして、Zorin OS LiteやChalet OSが使い易いでしょう。ここではVirtual Box上でZorin OS Liteを使用しています。Linux環境を起動し、ターミナルエミュレータを起動します。
下記の各コマンドを実行してきます。

IBM Cloud CLIとKubernetes CLI のインストール

```
$ cd /usr/local/src/
$ sudo wget https://public.dhe.ibm.com/cloud/bluemix/cli/bluemix-cli/0.6.5/IBM_Cloud_CLI_0.6.5_amd64.tar.gz
$ sudo tar -xzf IBM_Cloud_CLI_0.6.5_amd64.tar.gz
$ cd Bluemix_CLI/
$ sudo ./install_bluemix_cli
$ cd /usr/local/src/
$ sudo curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
$ sudo chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl
```

IBM Cloud CLIとKubernetes CLIをインストールしましたら、いよいよKubernetes環境にアクセスします。

```
$ bx plugin install container-service -r Bluemix
$ bx login -a https://api.eu-gb.bluemix.net
```
今回は、IBM Cloudの英国リージョン(地域)を使っていますので、https://api.eu-gb.bluemix.net を使用しています。次は、IBM Cloud にターミナルエミュレータからログインします。
IBM Cloudでお使いのメールアドレスとパスワードを求められます。またアカウントについても選択します。

```
$ bx cs region-set uk-south
$ bx cs cluster-config mycluster
```
export KUBECONFIG=xxxx と表示されます。最後までコピーし、実行します。

```
$ export KUBECONFIG=xxxx 
$ kubectl get nodes
$ kubectl proxy &
$ Starting to serve on 127.0.0.1:8001
```
と表示されます。Linux上のWebブラウザを開き、http://127.0.0.1:8001/ui にアクセスします。Kubernetesダッシュボード画面です。

![k8s_ダッシュボード_1.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/ae37363e-e66f-bfc9-537d-a86936ec70d9.png)

「Token」を選びます。早速、認証トークン(英数字の文字列)を発行するために、ターミナルエミュレータに戻ります。

```
$ kubectl -n kube-system get secret
Name欄から、default-tokenで始まる文字列を探します。
例 default-token-xxxxx
$ kubectl -n kube-system describe secret default-token-xxxxx
```
token :以降が認証トークンです。最後までコピーします。
コピーしたものを先ほどの画面に貼り付け、「SIGN IN」をクリックします。

# アプリケーション作成
Kubernetesダッシュボード画面、画面右上の「作成」をクリックします。

![k8s_dashboard_アプリケーション作成_1a.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/e891589e-9410-cb96-1cb0-43f04548c545.png)

「アプリケーションの詳細を設定」を選択します。
各項目は、次のように入力し、画面下の「配備」をクリックします。

- アプリケーション名：alfresco-trial
- コンテナイメージ：gui81/alfresco
- ポッド数：1
- サービス：外部
- ポート：8080
    - 外から接続するポート。無料プランなので自動で変更される。
- ターゲットポート：8080
    - コンテナ(pod)内の規定のポート。
- プロトコル：TCP

「配備」をクリック後、しばらく待ちます。5～10分くらいです。

![k8s_dashboard_アプリケーション作成_2.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/038bf34e-1825-2433-edd9-d807a13b087a.png)

Kubernetesダッシュボード画面左側の「Overview」をクリックし、上図のような状態になれば、アプリケーションが稼働状態にあります。
内部エンドポイントの、アプリケーション名(ここでは、alfresco-trial:8080 TCP)の下に表示されているポートと、クラスター作成時に確認したパブリックIPアドレスで外部からKubernetes上で稼働するAlfrescoにアクセスすることができます。
Alfrescoは、ユーザー名とパスワードは、ともに、adminで管理者としてログインすることができます。他にユーザーを作成しファイル共有などを試してみましょう。

![k8s_dashboard_アプリケーション作成_3.PNG](https://qiita-image-store.s3.amazonaws.com/0/41414/b432ab83-d6e5-db7c-631b-bdf7b38f4e2b.png)

#まとめ
さくっとシングルサーバー構成なので、Kubernetesダッシュボードの操作にWeb UIを使用しました。評価環境とはいえ、ストレージの永続化も行っていませんので、次は永続化に取り組んでみようと思います。

#履歴
- 2018年2月21日 公開
- 2018年2月21日 修正