ToDo List
始める前に
- インストールの手順に従って、Verrazzanoをインストールします。
- サンプル・イメージをダウンロードするには、まずライセンス契約に同意する必要があります。
- ブラウザで、https://container-registry.oracle.com/に移動してサインインします。
example-todoを検索し、結果でイメージ名を選択します。- 「Continue」をクリックし、ライセンス契約を読んで同意します。
ノート: ToDo Listサンプル・アプリケーションのデプロイメント・ファイルは、<VERRAZZANO_HOME>/examples/todo-listにあるVerrazzanoプロジェクトに含まれています(<VERRAZZANO_HOME>はVerrazzanoプロジェクトのルートです)。
このドキュメントのすべてのファイルとパスは、<VERRAZZANO_HOME>/examples/todo-listからの相対パスです。
ToDo Listアプリケーションのデプロイ
ToDo Listは、WebLogicコンポーネントを含むサンプル・アプリケーションです。このアプリケーションの詳細およびソース・コードについては、Verrazzanoの例を参照してください。
-
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-listYOUR_REGISTRY_USERNAME、YOUR_REGISTRY_PASSWORDおよびYOUR_REGISTRY_EMAILを、レジストリへのアクセスに使用する値に置き換えます。 -
WebLogicドメインのシークレットを作成およびラベル付けします:
# 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=tododomainToDo Listサンプル・アプリケーションは、特定のシークレット名を使用するように事前構成されています。このアプリケーションのソース・コードについては、Verrazzanoの例を参照してください。
-
アプリケーションをデプロイするには、サンプル・リソースを適用します。
$ kubectl apply -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/todo-list/todo-list-components.yaml $ kubectl apply -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/todo-list/todo-list-application.yaml -
ToDo Listアプリケーションの準備ができるまで待ちます。ポッドのリストおよび出力の検査によって進行状況をモニターするか、
kubectl waitコマンドを使用できます。成功するまで、kubectl waitコマンドを複数回繰り返す必要がある場合があります。tododomain-adminserverポッドが作成されてReadyになるまで時間がかかる場合があります。$ kubectl get pods -n todo-list # -or- # $ kubectl wait pod \ --for=condition=Ready tododomain-adminserver \ -n todo-list -
アプリケーション用に生成されたホスト名を取得します。
$ HOST=$(kubectl get gateway \ -n todo-list \ -o jsonpath='{.items[0].spec.servers[0].hosts[0]}') $ echo $HOST 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 10.11.12.13 -
ToDo Listアプリケーションにアクセスします:
-
コマンドラインの使用
$ 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からアプリケーションにアクセスできます。 -
独自の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アプリケーションに関連付けられた様々なエンドポイントを使用して、ログやメトリックなどをさらに調査できます。これらにアクセスする場合、次が必要になることがあります:
-
次のコマンドを実行して、テレメトリ・コンポーネント用に生成されたパスワードを取得します:
$ kubectl get secret \ --namespace verrazzano-system verrazzano \ -o jsonpath='{.data.password}' | base64 \ --decode; echo関連付けられているユーザー名は
verrazzanoです。 -
エンドポイントに関連付けられた証明書を受け入れる必要があります。
次のコマンドを使用して、使用可能なイングレスのリストを取得できます:
$ kubectl get ingress -n verrazzano-system NAME CLASS HOSTS ADDRESS PORTS AGE verrazzano-ingress <none> verrazzano.default.10.11.12.13.nip.io 10.11.12.13 80, 443 7d2h vmi-system-es-ingest <none> elasticsearch.vmi.system.default.10.11.12.13.nip.io 10.11.12.13 80, 443 7d2h vmi-system-grafana <none> grafana.vmi.system.default.10.11.12.13.nip.io 10.11.12.13 80, 443 7d2h vmi-system-kibana <none> kibana.vmi.system.default.10.11.12.13.nip.io 10.11.12.13 80, 443 7d2h vmi-system-prometheus <none> prometheus.vmi.system.default.10.11.12.13.nip.io 10.11.12.13 80, 443 7d2hイングレス・ホスト情報を使用すると、使用可能なエンドポイントの一部は次のようになります:
説明 アドレス 資格証明 Kibana https://[vmi-system-kibana ingress host]verrazzano/telemetry-passwordGrafana https://[vmi-system-grafana ingress host]verrazzano/telemetry-passwordPrometheus https://[vmi-system-prometheus ingress host]verrazzano/telemetry-password -
WebLogic Server管理コンソールにアクセスします
kubectlを実行しているマシンからコンソールにアクセスするには:
-
ポート転送を設定します。
$ kubectl port-forward pods/tododomain-adminserver 7001:7001 -n todo-listノート: OCI Cloud Shellを使用して
kubectlを実行する場合、ポート転送を使用してコンソールにアクセスするには、別のマシンでkubectlを実行する必要があります。 -
ブラウザからWebLogic Server管理コンソールにアクセスします。
http://localhost:7001/console
ノート
WebLogic Server管理コンソールは公開しないことをお薦めします。トラブルシューティング
-
アプリケーション構成、ドメインおよびイングレス・トレイトがすべて存在することを確認します。
$ kubectl get ApplicationConfiguration -n todo-list NAME AGE todo-appconf 19h $ kubectl get Domain -n todo-list NAME AGE todo-domain 19h $ kubectl get IngressTrait -n todo-list NAME AGE todo-domain-trait-7cbd798c96 19h -
WebLogic管理サーバーおよびMySQLポッドが作成され、実行中であることを確認します。これには数分かかります。
$ kubectl get pods -n todo-list NAME READY STATUS RESTARTS AGE mysql-5c75c8b7f-vlhck 1/1 Running 0 19h tododomain-adminserver 2/2 Running 0 19h