このリポジトリには、Hands-On Kubernetes Sessionのラボが含まれています。このハンズオンでは、Google Kubernetes Engine (GKE)を使用しますが、他のPaaSプラットフォームでも使用可能です。
ハンズオンの目的は、参加者のためにステップを自動化し、シームレスにすることです。
https://cloud.google.com/free/ にアクセスして、既存のGoogleアカウントで無料のGCPアカウントを登録してください。
Googleアカウントをお持ちでない方は、新規にご登録いただくことも可能です。
サインアップすると、GCPアカウントに関連付けられた無料のクレジットが得られます。12ヶ月分+30,000円
GCPコンソールへのログインはこちらから行えます。
また、Kubernetes Engine APIでAPI Billingを有効にする必要があります。
GKEインスタンスをセットアップする際に、請求書作成ページが表示されるはずです。
表示されない場合は、こちらの手順に従ってください。
右上の「ターミナル」アイコンをクリックします。
クラウドベースのターミナルのようなものがページの下に表示されます。
GKEクラスタの設定を開始します。
以下のコマンドで、Ubuntuが動作するk8sworkshopという名前のGKEクラスターをGKEで作成します。 また、Dynatrace Activegate用のコンピュートVMも作成します。Dynatrace ActivegateはKubernetesとの連携に使用します。
gcloud container clusters create k8sworkshop --image-type=ubuntu --zone australia-southeast1-a
gcloud compute instances create dynatrace-activegate --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud --zone australia-southeast1-a
これで、GKEクラスタが動作するようになります。
kubectl get nodesを実行すると、ノードの数が表示されます。
Kubernetesインテグレーションの公式説明書こちらの通り、まずEnvironment Activegateをセットアップする必要があります。
インストールが完了すると、「Deployment Status」にActivegateが表示されます。
[設定] -> [プロセスとコンテナ] -> [プロセスグループの検出] -> [クラウドアプリケーションとワークロードの検出の有効化]に進みます。
公式のdocumentation pageに記載されている手順を自動化し、API URLとベアラートークンをAPI経由で自動的に提供しました。メインのCloud Shellターミナルに戻り、以下を入力します。
wget -O- https://raw.githubusercontent.com/Dynatrace-APAC/Workshop-Kubernetes/master/setup-k8s-ui.sh | bash
上記の結果を受けて、Settings -> Cloud and Virtualization -> Kubernetesに値を入力します。
Hipster shop
metadata.namespace=hipster-shop
接続に成功したら、左メニューの「Kubernetes」をクリックし、KubernetesのUIを見てみましょう。
GCPコンソールに値をコピーする
完了したら、左パネルの「ホスト」をクリックすると、接続されているK8Sノード(3ノード)が表示されます。
# Hipster Shopの立ち上げ
今回のハンズオンでは、GoogleのサンプルアプリケーションであるHipster Shopを起動する必要があります。
wget -O- https://raw.githubusercontent.com/Dynatrace-APAC/Workshop-Kubernetes/master/deploy.sh | bash
デプロイされたら、GCPからフロントエンドのエンドポイントを見つけることができます(Kubernetes Engine -> Services & Ingress)。
実行すると、露出したfrontend-external IPにアクセスしてHipster Shopに行くことができます。
Dynatraceの「トランザクションとサービス」で、自動検出された5つのサービスを見ることができます。
いくつかのサービスは発見されていますが、Hipster Shop's Service architectureと一致しないものもあることがわかります。 Hipster Shopは最先端のテクノロジー(GPRCなど)を使用しており、Dynatraceはクラウドの絶え間ない進化をサポートしています。
OneAgentは急速に変化しているため、アーリーアクセスの機能はデフォルトでは自動的に有効になっていません。 これは、本番環境に影響を与えるような不測の事態を避けるためです。今回のワークショップでは、これらの機能を有効にすることができます。Settings -> Service-side service monitoring -> Deep Monitoring -> New Oneagent Featuresにアクセスします。
Global Settingsで、以下の機能フラグを有効にします。これらは異なるページにあるので、ページを切り替える必要があります。
検索フィルターバーを使用して、"GRPC "を検索することができます。
2つの追加NodeJS機能フラグを含め、以下の機能がすべて有効になっていることを確認してください。
OneAgents の機能を有効にするには、ポッドの再起動が必要です。以下のコマンドを実行して、ポッドを再起動します。
kubectl delete pods --all -n hipster-shop
Dynatraceに戻り、「トランザクションとサービス」にアクセスして、更新されたサービスのリストを確認します。
":8080 "をクリックし、続いてService Flowをクリックすると、サービスが自動的に検出され、上のアーキテクチャ図と一致することがわかります。
Kubernetes View内の様々な機能(Cluster Utilization、Cluster Workloads、K8S Eventsなど)を確認できます。
このラボを楽しんでいただき、お役に立てれば幸いです。ご意見、ご感想をお待ちしております。