ToDo List
ToDo Listは、WebLogicコンポーネントを含むサンプル・アプリケーションです。このアプリケーションの詳細およびソース・コードについては、Verrazzanoの例を参照してください。
始める前に
- インストール手順に従って、マルチクラスタVerrazzano環境を設定します。
- この例では、マルチクラスタ環境に関連付けられている
managed1
という名前の管理対象クラスタがあることを前提としています。環境にその名前のクラスタがない場合、デプロイメント・ファイルを編集し、placement
セクションにリストされているクラスタ名を変更する必要があります。 - サンプル・アプリケーション・イメージをダウンロードするには、まずライセンス契約に同意する必要があります。
- ブラウザで、https://container-registry.oracle.com/に移動してサインインします。
example-todo
を検索し、結果でイメージ名を選択します。- 「Continue」をクリックし、ライセンス契約を読んで同意します。
ノート: ToDo Listアプリケーションのデプロイメント・ファイルは、<VERRAZZANO_HOME>/examples/multicluster/todo-list
にあるVerrazzanoプロジェクトに含まれています(<VERRAZZANO_HOME>
は、Verrazzanoプロジェクトのルートです)。
ToDo Listサンプル・アプリケーションのデプロイ
-
Verrazzanoプロジェクト・ファイルを適用して、マルチクラスタのToDo Listサンプル用のネームスペースを作成します。
$ kubectl --kubeconfig $KUBECONFIG_ADMIN apply \ -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/multicluster/todo-list/verrazzano-project.yaml
-
mc-docker-registry-secret.yaml
ファイルをダウンロードします。$ wget https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/multicluster/todo-list/mc-docker-registry-secret.yaml
-
mc-docker-registry-secret.yaml
ファイルを編集し、<BASE 64 ENCODED DOCKER CONFIG JSON>
プレースホルダを次のコマンドで生成される値に置き換えます。$ kubectl --kubeconfig $KUBECONFIG_ADMIN create secret docker-registry temp \ --dry-run=client \ --docker-server=container-registry.oracle.com \ --docker-username=YOUR_REGISTRY_USERNAME \ --docker-password=YOUR_REGISTRY_PASSWORD \ --docker-email=YOUR_REGISTRY_EMAIL \ -o jsonpath='{.data.\.dockerconfigjson}'; echo
YOUR_REGISTRY_USERNAME
、YOUR_REGISTRY_PASSWORD
およびYOUR_REGISTRY_EMAIL
を、レジストリへのアクセスに使用する値に置き換えます。 -
mc-docker-registry-secret.yaml
ファイルを適用して、マルチクラスタ・シークレットを作成します。マルチクラスタ・シークレット・リソースは、mc-todo-list
ネームスペースに必要なシークレットを生成します。$ kubectl --kubeconfig $KUBECONFIG_ADMIN apply -f mc-docker-registry-secret.yaml
-
mc-weblogic-domain-secret.yaml
およびmc-tododb-secret.yaml
ファイルをダウンロードします。$ wget https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/multicluster/todo-list/mc-weblogic-domain-secret.yaml $ wget https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/multicluster/todo-list/mc-tododb-secret.yaml
-
mc-weblogic-domain-secret.yaml
およびmc-tododb-secret.yaml
ファイルを編集し、THE_USERNAME
およびTHE_PASSWORD
プレースホルダをそれぞれWebLogicユーザー名とパスワードに置き換えます。username: THE_USERNAME password: THE_PASSWORD
-
mc-weblogic-domain-secret.yaml
およびmc-tododb-secret.yaml
ファイルを適用します。マルチクラスタ・シークレット・リソースは、mc-todo-list
ネームスペースに必要なシークレットを生成します。$ kubectl --kubeconfig $KUBECONFIG_ADMIN apply -f mc-weblogic-domain-secret.yaml $ kubectl --kubeconfig $KUBECONFIG_ADMIN apply -f mc-tododb-secret.yaml
-
マルチクラスタ・コンポーネントとアプリケーション・リソースを適用して、ToDo Listアプリケーションをデプロイします。
$ kubectl --kubeconfig $KUBECONFIG_ADMIN apply \ -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/multicluster/todo-list/todo-list-components.yaml $ kubectl --kubeconfig $KUBECONFIG_ADMIN apply \ -f https://raw.githubusercontent.com/verrazzano/verrazzano/v1.0.4/examples/multicluster/todo-list/todo-list-application.yaml
-
ToDo Listサンプル・アプリケーションの準備ができるまで待ちます。
tododomain-adminserver
ポッドが作成されてReady
になるまで数分かかる場合があります。$ kubectl --kubeconfig $KUBECONFIG_MANAGED1 wait pod \ --for=condition=Ready tododomain-adminserver \ -n mc-todo-list
-
アプリケーション用に生成されたホスト名を取得します。
$ HOST=$(kubectl --kubeconfig $KUBECONFIG_MANAGED1 get gateway \ -n mc-todo-list \ -o jsonpath={.items[0].spec.servers[0].hosts[0]}) $ echo $HOST todo-appconf.mc-todo-list.11.22.33.44.nip.io
-
istio-ingressgateway
サービスのEXTERNAL_IP
アドレスを取得します。$ ADDRESS=$(kubectl --kubeconfig $KUBECONFIG_MANAGED1 get service \ -n istio-system istio-ingressgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}') $ echo $ADDRESS 11.22.33.44
-
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
アドレスにマップするエントリを追加します。例:11.22.33.44 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」ボタンでタスクを追加できます。
- 独自のDNS名をイングレス・ゲートウェイの
-
-
デプロイしたToDo Listアプリケーションに関連付けられた様々なエンドポイントを使用して、ログやメトリックなどをさらに調査できます。これらにアクセスする場合、次が必要になることがあります:
-
次のコマンドを実行して、テレメトリ・コンポーネント用に生成されたパスワードを取得します:
$ kubectl --kubeconfig $KUBECONFIG_ADMIN get secret \ --namespace verrazzano-system verrazzano -o jsonpath={.data.password} | base64 \ --decode; echo
関連付けられているユーザー名は
verrazzano
です。 -
エンドポイントに関連付けられた証明書を受け入れる必要があります。
次のコマンドを使用して、使用可能なイングレスのリストを取得できます:
$ kubectl --kubeconfig $KUBECONFIG_MANAGED1 get ingress -n verrazzano-system NAME CLASS HOSTS ADDRESS PORTS AGE verrazzano-ingress <none> verrazzano.default.140.141.142.143.nip.io 140.141.142.143 80, 443 7d2h vmi-system-es-ingest <none> elasticsearch.vmi.system.default.140.141.142.143.nip.io 140.141.142.143 80, 443 7d2h vmi-system-grafana <none> grafana.vmi.system.default.140.141.142.143.nip.io 140.141.142.143 80, 443 7d2h vmi-system-kibana <none> kibana.vmi.system.default.140.141.142.143.nip.io 140.141.142.143 80, 443 7d2h vmi-system-prometheus <none> prometheus.vmi.system.default.140.141.142.143.nip.io 140.141.142.143 80, 443 7d2h
イングレス・ホスト情報を使用すると、使用可能なエンドポイントの一部は次のようになります:
説明 アドレス 資格証明 Kibana https://[vmi-system-kibana ingress host]
verrazzano
/telemetry-password
Grafana https://[vmi-system-grafana ingress host]
verrazzano
/telemetry-password
Prometheus https://[vmi-system-prometheus ingress host]
verrazzano
/telemetry-password
-
トラブルシューティング
-
アプリケーション構成、ドメインおよびイングレス・トレイトがすべて存在することを確認します。
$ kubectl --kubeconfig $KUBECONFIG_MANAGED1 get ApplicationConfiguration -n mc-todo-list NAME AGE todo-appconf 19h $ kubectl --kubeconfig $KUBECONFIG_MANAGED1 get Domain -n mc-todo-list NAME AGE todo-domain 19h $ kubectl --kubeconfig $KUBECONFIG_MANAGED1 get IngressTrait -n mc-todo-list NAME AGE todo-domain-trait-7cbd798c96 19h
-
WebLogic管理サーバーおよびMySQLポッドが作成され、実行中であることを確認します。これには数分かかります。
$ kubectl --kubeconfig $KUBECONFIG_MANAGED1 get pods -n mc-todo-list NAME READY STATUS RESTARTS AGE mysql-5c75c8b7f-vlhck 1/1 Running 0 19h tododomain-adminserver 2/2 Running 0 19h