このリポジトリには、Hands-On Kubernetes Sessionのラボが含まれています。このハンズオンでは、Google Kubernetes Engine (GKE)を使用しますが、他のPaaSプラットフォームでも使用可能です。

ハンズオンの目的は、参加者のためにステップを自動化し、シームレスにすることです。

事前準備

学習内容

Google Cloud Platform アカウントの登録

https://cloud.google.com/free/ にアクセスして、既存のGoogleアカウントで無料のGCPアカウントを登録してください。

Googleアカウントをお持ちでない方は、新規にご登録いただくことも可能です。

サインアップすると、GCPアカウントに関連付けられた無料のクレジットが得られます。12ヶ月分+30,000円

GCPコンソールへのログインはこちらから行えます。

GCP-Homepage

Kubernetes Engine APIの有効化

また、Kubernetes Engine APIでAPI Billingを有効にする必要があります。

k8s-Engine

GKEインスタンスをセットアップする際に、請求書作成ページが表示されるはずです。

表示されない場合は、こちらの手順に従ってください。

クラウドシェルの起動

GKE-Menu

右上の「ターミナル」アイコンをクリックします。

クラウドベースのターミナルのようなものがページの下に表示されます。

GKEクラスタの設定を開始します。

3. GKE クラスタの作成

GKE-CLI

以下のコマンドで、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クラスタが動作するようになります。

GKE-CLIkubectl get nodesを実行すると、ノードの数が表示されます。

Kubernetesインテグレーションの公式説明書こちらの通り、まずEnvironment Activegateをセットアップする必要があります。

Dynatrace-Activegate ターミナルに SSH で入り、Activegate をインストールする。

  1. Google Cloud の左のナビゲーションバーで、Compute Engine -> VM instances に移動します。 Activegate-connected
  2. dynatrace-activegate**の行にあるSSHボタンをクリックして、インスタンスにSSH接続します。 Activate-connected
  3. Dynatrace内で、左メニューの「Deploy Dynatrace」をクリックします。
  4. ページ下部の「Install Activegate」をクリックします。
  5. "Linux "をクリックします。
  6. 手順2をコピーし、ターミナルに貼り付ける。
  7. 手順4をコピーして、"sudo"(rootとしてインストール)をターミナルに追加する

インストールが完了すると、「Deployment Status」にActivegateが表示されます。

Activegate-connected

K8S概要ダッシュボードの設定

[設定] -> [プロセスとコンテナ] -> [プロセスグループの検出] -> [クラウドアプリケーションとワークロードの検出の有効化]に進みます。

Enable Cloud Workload

公式の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に値を入力します。

K8S-integration

  1. GKE K8S」など、接続の名前を付けます。
  2. Kubernetes APIのURLを入力してください。
    • SSHターミナルからKubernetes APIのURLをコピーします。
  3. 3.Kubernetes Bearer Tokenの入力
    • SSHターミナルからBearer Tokenをコピーします。
  4. "Require valid certificates for communication with API server "を無効にする。
  5. 別のイベントフィールドセレクタを追加
  6. フィールドセレクターの名前を以下のようにしてください。 Hipster shop
  7. フィールドセレクタの式を以下のようにしてください。 metadata.namespace=hipster-shop
  8. Save and Click on Connect

接続に成功したら、左メニューの「Kubernetes」をクリックし、KubernetesのUIを見てみましょう。

K8S-integration

  1. Google Cloud Consoleの左のナビゲーションバーにあるKubernetes Engine -> Applicationsに進みます。
  2. "Deploy From Marketplace "をクリックします。
  3. 上記の検索欄で「Dynatrace」と検索します。 Activegate-connected
  4. Dynatrace OneAgent Operator」をクリックし、「Configure」をクリックします。
  5. 以下のフィールドに入力します。

GCPコンソールに値をコピーする Activegate-connected

  1. Deployをクリックします。 Activegate-connected

完了したら、左パネルの「ホスト」をクリックすると、接続されているK8Sノード(3ノード)が表示されます。

GKE-Hosts

# Hipster Shopの立ち上げ

今回のハンズオンでは、GoogleのサンプルアプリケーションであるHipster Shopを起動する必要があります。

Hipster Shopの実行

wget -O- https://raw.githubusercontent.com/Dynatrace-APAC/Workshop-Kubernetes/master/deploy.sh | bash

デプロイされたら、GCPからフロントエンドのエンドポイントを見つけることができます(Kubernetes Engine -> Services & Ingress)。

JSON

実行すると、露出したfrontend-external IPにアクセスしてHipster Shopに行くことができます。

JSON

サービスの自動検出

Dynatraceの「トランザクションとサービス」で、自動検出された5つのサービスを見ることができます。 Discovered Services

いくつかのサービスは発見されていますが、Hipster Shop's Service architectureと一致しないものもあることがわかります。 Hipster Shopは最先端のテクノロジー(GPRCなど)を使用しており、Dynatraceはクラウドの絶え間ない進化をサポートしています。

Architecture

OneAgentでの追加機能の利用

OneAgentは急速に変化しているため、アーリーアクセスの機能はデフォルトでは自動的に有効になっていません。 これは、本番環境に影響を与えるような不測の事態を避けるためです。今回のワークショップでは、これらの機能を有効にすることができます。Settings -> Service-side service monitoring -> Deep Monitoring -> New Oneagent Featuresにアクセスします。

Global Settingsで、以下の機能フラグを有効にします。これらは異なるページにあるので、ページを切り替える必要があります。

検索フィルターバーを使用して、"GRPC "を検索することができます。 GRPC-Features

Features

2つの追加NodeJS機能フラグを含め、以下の機能がすべて有効になっていることを確認してください。 All-Features

OneAgents の機能を有効にするには、ポッドの再起動が必要です。以下のコマンドを実行して、ポッドを再起動します。

kubectl delete pods --all -n hipster-shop

Restart

Dynatraceに戻り、「トランザクションとサービス」にアクセスして、更新されたサービスのリストを確認します。 Discovered Services

":8080 "をクリックし、続いてService Flowをクリックすると、サービスが自動的に検出され、上のアーキテクチャ図と一致することがわかります。

Service Flow

Kubernetes View内の様々な機能(Cluster Utilization、Cluster Workloads、K8S Eventsなど)を確認できます。

KubernetesUI

Kubernetes Clusterの利用状況を分析する

KubernetesUI

Kubernetes Cluster Workloadsの分析

KubernetesUI

Kubernetesのイベントを分析する

KubernetesUI

Kubernetesの名前空間を分析する

KubernetesUI

クラウドアプリケーションをクリックして探索

KubernetesUI

このラボを楽しんでいただき、お役に立てれば幸いです。ご意見、ご感想をお待ちしております。

このラボでの全体的な経験はどうでしたか?

とても良い 良い 普通 悪い とても悪い

このラボで最も役立ったことは何ですか?

OneAgent Operatorを使ってKubernetesにデプロイする方法 Kubernetesの統合の設定 Kubernetesのプロセスグループネーミングとサービスネーミング DynatraceにおけるKubernetesの理解

このラボを友人や同僚に勧める可能性はどの程度ありますか?

強く勧めたい 勧めたい わからない 勧めない 全く勧めない