docker
Bluemix
kubernetes
ibmcloud
Liberty

Container RegistryからWAS LibertyをKubernetes Clusterにデプロイしてみた

手順メモ

1. BluemixのカタログからContainer Registryを選択します。

カタログから検索します。

image.png

IBM Public Repositoriesを選択します。

image.png

2. パブリック・リポジトリーに登録されているイメージから「ibmliberty」を選択します。

image.png

3. コンテナ・イメージのセキュリティ・レポートを確認します。

Container Registryには、Vulnerability Advisor によるイメージ・セキュリティー・コンプライアンス機能があります。

image.png

4. ローカル・マシンにイメージをダウンロード

次に、$ docker pull <イメージ名>コマンドを使ってローカル・マシンに IBM パブリック・イメージをプルします。

$ docker pull registry.ng.bluemix.net/ibmliberty
Using default tag: latest
latest: Pulling from ibmliberty

23a6960fe4a9: Pull complete
e9e104b0e69d: Pull complete
cd33d2ea7970: Pull complete
534ff7b7d120: Pull complete
7d352ac0c7f5: Pull complete
00ea380f4a2b: Pull complete
d57bd07d40be: Pull complete
52ce3f081b43: Pull complete
e74208543a5d: Pull complete
f242c506d487: Pull complete
c5e34b989108: Pull complete
b8e17ae42d42: Pull complete
ea4e983b53a3: Pull complete
c7275ef04ef2: Pull complete
c4fca8bb5fdb: Pull complete
0a325c6777e1: Pull complete
6cd97030ff5c: Pull complete
bececf98c619: Pull complete
bd8cb9401262: Pull complete
5458b5befe5d: Pull complete
Digest: sha256:d54e746b6057c5cb488d885f23e5388559ba3b3a78f7344ec9c773b69ceb7805
Status: Downloaded newer image for registry.ng.bluemix.net/ibmliberty:latest

5. Kubernetes Clusterにデプロイ

kubectl run <サービス名>コマンドを使って、Kubernetesクラスターにデプロイします。

$ kubectl run ibmliberty --image=registry.ng.bluemix.net/ibmliberty
deployment "ibmliberty" created

6. ポッドの確認

ibmlibertyのポッドがデプロイされたことを確認します。

$ kubectl get pods -o wide
NAME                               READY     STATUS    RESTARTS   AGE       IP             NODE
ibmliberty-3382093745-rfpkc        1/1       Running   0          5m        172.30.53.93   50.23.39.106

Kubernetesダッシュボードからもibmlibertyがデプロイされていることが確認できます。

image.png

7. NodePortサービスの公開

デプロイメントをNodePortサービスとして公開し、インターネットからアプリにアクセスできるようにします。このクラスターにはワーカー・ノードが 1 つしかないので、ワーカー・ノード間のロード・バランシングは不要です。

$ kubectl expose deployment/ibmliberty --type=NodePort --port=9080 --name=ibmliberty --target-port=9080
service "ibmliberty" exposed

NodePort番号を確認するために、次のコマンドを実行します。

$ kubectl get svc ibmliberty
NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
ibmliberty   10.10.10.2   <nodes>       9080:32097/TCP   27s

Kubernetesダッシュボードでサービスが稼働していることを確認できます。

image.png

8. ibmlibertyの稼働確認

ブラウザから、URL(ここでは http://50.23.39.106:32097 )にアクセスするとibmlibertyが稼働していることが確認できます。

image.png