ToDo List
始める前に
- インストールの手順に従って、Verrazzanoをインストールします。
- サンプル・イメージをダウンロードするには、まずライセンス契約に同意する必要があります。
- ブラウザで、https://container-registry.oracle.com/に移動してサインインします。
example-todo
およびweblogic
を検索します。- それぞれに対して、次を行います:
- 結果の中でイメージ名を選択します。
- ドロップダウン・メニューから、ご使用の言語を選択し、「続行」をクリックします。
- 次に、ライセンス契約を読み、同意してください。
ノート: ToDo Listサンプル・アプリケーションのデプロイメント・ファイルは、<VERRAZZANO_HOME>/examples/todo-list
にあるVerrazzanoプロジェクトに含まれています(<VERRAZZANO_HOME>
はVerrazzanoプロジェクトのルートです)。
このドキュメントのすべてのファイルとパスは、<VERRAZZANO_HOME>/examples/todo-list
からの相対パスです。
アプリケーションのデプロイ
ToDo Listは、WebLogicコンポーネントを含むサンプル・アプリケーションです。このアプリケーションの詳細およびソース・コードについては、Verrazzanoの例を参照してください。
ノート
このアプリケーションをデフォルトのネームスペースで実行するには:
$ kubectl label namespace default verrazzano-managed=true istio-injection=enabled
デフォルトのネームスペースを選択した場合は、ステップ1をスキップして、残りのコマンドの-n
オプションを無視できます。
-
ToDo Listサンプルのネームスペースを作成し、ネームスペースがVerrazzanoによって管理されることを示すラベルを追加します。
$ kubectl create namespace todo-list $ kubectl label namespace todo-list verrazzano-managed=true istio-injection=enabled
-
docker-registry
シークレットを作成して、レジストリからToDo Listサンプル・イメージを取得できるようにします。$ kubectl create secret docker-registry tododomain-repo-credentials \ --docker-server=container-registry.oracle.com \ --docker-username=YOUR_REGISTRY_USERNAME \ --docker-password=YOUR_REGISTRY_PASSWORD \ --docker-email=YOUR_REGISTRY_EMAIL \ -n todo-list
YOUR_REGISTRY_USERNAME
、YOUR_REGISTRY_PASSWORD
およびYOUR_REGISTRY_EMAIL
を、レジストリへのアクセスに使用する値に置き換えます。 -
WebLogicドメインのシークレットを作成およびラベル付けしますパスワードは、少なくとも1つの数字または特殊記号が含まれた8文字以上の英数字である必要があります。
# Replace the values of the WLS_USERNAME and WLS_PASSWORD environment variables as appropriate. $ export WLS_USERNAME=<username> $ export WLS_PASSWORD=<password> $ kubectl create secret generic tododomain-weblogic-credentials \ --from-literal=password=$WLS_PASSWORD \ --from-literal=username=$WLS_USERNAME \ -n todo-list $ kubectl create secret generic tododomain-jdbc-tododb \ --from-literal=username=$WLS_USERNAME \ --from-literal=password=$WLS_PASSWORD \ -n todo-list $ kubectl -n todo-list label secret tododomain-jdbc-tododb weblogic.domainUID=tododomain
ToDo Listサンプル・アプリケーションは、特定のシークレット名を使用するように事前構成されています。このアプリケーションのソース・コードについては、Verrazzanoの例を参照してください。
-
アプリケーションをデプロイするには、サンプル・リソースを適用します。
$ kubectl apply -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.5.7/examples/todo-list/todo-list-components.yaml -n todo-list $ kubectl apply -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.5.7/examples/todo-list/todo-list-application.yaml -n todo-list
-
ToDo Listアプリケーションの準備ができるまで待ちます。進捗をモニターするには、ポッドをリストしたり出力を調べたりします。
$ kubectl get pods -n todo-list
または、
kubectl wait
コマンドを使用できます。ただし、それぞれのポッドが作成される前に実行した場合、kubectl wait
コマンドによってerror: no matching resources found
が報告されることがあります。具体的には、tododomain-adminserver
ポッドが作成されてReady
になるまでしばらく時間がかかることがあるため、kubectl wait
コマンドが成功するまで何回か繰り返す必要があります。$ kubectl wait pod \ --for=condition=Ready \ -l app.oam.dev/component=todo-mysql-deployment \ -n todo-list \ --timeout=5m $ kubectl wait pod \ --for=condition=Ready \ -l weblogic.serverName=AdminServer \ -n todo-list \ --timeout=5m
-
アプリケーション用に生成されたホスト名を取得します。
$ HOST=$(kubectl get gateways.networking.istio.io \ -n todo-list \ -o jsonpath='{.items[0].spec.servers[0].hosts[0]}') $ echo $HOST # Sample output todo-appconf.todo-list.10.11.12.13.nip.io
-
istio-ingressgateway
サービスのEXTERNAL_IP
アドレスを取得します。$ ADDRESS=$(kubectl get service \ -n istio-system istio-ingressgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}') $ echo $ADDRESS # Sample output 10.11.12.13
-
ToDo Listアプリケーションにアクセスします
-
コマンドラインの使用
# The expected response of this query is the HTML of a web page $ curl -sk \ https://${HOST}/todo/ \ --resolve ${HOST}:443:${ADDRESS}
nip.io
を使用している場合は、--resolve
を含める必要はありません。 -
ブラウザによるローカル・テスト
一時的に、
/etc/hosts
ファイル(MacまたはLinuxの場合)またはc:\Windows\System32\Drivers\etc\hosts
ファイル(Windows 10の場合)を変更して、ホスト名をイングレス・ゲートウェイのEXTERNAL-IP
アドレスにマップするエントリを追加します。たとえば:10.11.12.13 todo.example.com
その後、ブラウザで
https://todo.example.com/todo
からアプリケーションにアクセスできます。nip.io
を使用している場合は、HOST
変数(https://${HOST}/todo
など)を使用してブラウザでアプリケーションにアクセスできます。- プロキシを使用する場合は、
*.nip.io
をNO_PROXY
リストに追加する必要がある場合があります。
-
独自のDNS名の使用
独自のDNS名をイングレス・ゲートウェイの
EXTERNAL-IP
アドレスにポイントします。-
この場合、ToDo Listアプリケーションをデプロイする前に、
todo-list-application.yaml
ファイルを編集してhosts
セクション(yourhost.your.domain
など)で適切な値を使用する必要があります。 -
その後、ブラウザを使用して
https://<yourhost.your.domain>/todo/
でアプリケーションにアクセスできます。ブラウザでアプリケーションにアクセスすると、「Derek's ToDo List」ページが開き、編集フィールドと「Add」ボタンでタスクを追加できます。
-
-
-
デプロイしたToDo Listアプリケーションに関連付けられた様々なエンドポイントを使用して、ログやメトリックなどをさらに調査できます。ここの指示に従ってアクセスできます。
WebLogic Server管理コンソールにアクセスします
kubectl
を実行しているマシンからコンソールにアクセスするには:
-
ポート転送を設定します。
$ kubectl port-forward pods/tododomain-adminserver 7001:7001 -n todo-list
ノート: Oracle Cloud Infrastructure Cloud Shellを使用して
kubectl
を実行する場合、ポート転送を使用してコンソールにアクセスするには、別のマシンでkubectl
を実行する必要があります。 -
ブラウザからWebLogic Server管理コンソールにアクセスします。
http://localhost:7001/console
ノート
WebLogic Server管理コンソールは公開しないことをお薦めします。デプロイされたアプリケーションの確認
-
アプリケーション構成、ドメインおよびイングレス・トレイトがすべて存在することを確認します。
$ kubectl get ApplicationConfiguration -n todo-list # Sample output NAME AGE todo-appconf 19h $ kubectl get Domain -n todo-list # Sample output NAME AGE todo-domain 19h $ kubectl get IngressTrait -n todo-list # Sample output NAME AGE todo-domain-trait-7cbd798c96 19h
-
WebLogic管理サーバーおよびMySQLポッドが作成され、実行中であることを確認します。これには数分かかります。
$ kubectl get pods -n todo-list # Sample output NAME READY STATUS RESTARTS AGE mysql-5c75c8b7f-vlhck 2/2 Running 0 19h tododomain-adminserver 4/4 Running 0 19h
アプリケーションのアンデプロイ
-
アプリケーションをアンデプロイするには、ToDo List OAMリソースを削除します。
$ kubectl delete -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.5.7/examples/todo-list/todo-list-application.yaml -n todo-list $ kubectl delete -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.5.7/examples/todo-list/todo-list-components.yaml -n todo-list
-
アプリケーション・ポッドの終了後にネームスペース
todo-list
を削除します。WebLogicドメイン用に作成されたシークレットも削除されます。$ kubectl delete namespace todo-list