マスターおよびノードエージェントのインストール
次のように、マスター及びノードエージェントのインストール手順を案内します。インストール案内画面と同じです。
EKS Fargateは、対応予定です。
環境を事前に確認して設定
ユーザーのKubernetes環境によって、事前に環境設定が必要になります。Istio、GKE、OpenShiftの環境ではない場合は、次の手順に進みます。
- Istio環境
- GKE環境
- OpenShift環境
Istio環境の場合は、次のコマンドを実行し、WhaTap収集サーバーと通信するリソースであるServiceEntryを生成します。
kubectl create namespace whatap-monitoring
kubectl label namespace whatap-monitoring istio-injection=enabled
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: whatap-external
spec:
hosts:
- whatap-proxy1
- whatap-proxy2
addresses:
- 13.124.11.223
- 13.209.172.35
ports:
- name: proxy
number: 6600
protocol: tcp
location: MESH_EXTERNAL
EOF
Google Kubernetes Engine(GKE)の場合、ユーザークラスターを作成した後に権限設定をするために、次のコマンドを実行してください。
ACCOUNT=$(gcloud info --format='value(config.account)')
kubectl create clusterrolebinding owner-cluster-admin-binding \
--clusterrole cluster-admin \
--user $ACCOUNT
gcloudコマンドのインストールの詳細については、グーグルクラウド文書を参照してください。
インストール方法画面でOpenShift環境の場合の追加設定セクションを開いてwhatap_openshift_scc.yamlボタンを選択します。ファイルをダウンロードした後、次のコマンドを実行します。
oc create -f whatap_openshift_scc.yaml
Kubernetesエージェント作成
WhaTap Kubernetesエージェントのインストール時、helm チャート基準の案内と yaml ファイル基準の案内を次のように提供します。
- Helm Chart
- YAML
Helmバージョン確認とWhaTapリポジトリのネットワーク接続状態確認
-
次のコマンドでhelmのバージョンを確認します。3.xバージョン以降に対応します。
helm version
# version.BuildInfo{Version:"v3.x", GitCommit:"xxx", GitTreeState:"clean", GoVersion:"go1.20.8"} -
WhaTap Helmリポジトリに対するネットワーク接続状態を確認してください。
curl https://whatap.github.io/helm/ping
# pong
Helm Chart基準インストール
ワタブHelmリポジトリを追加した後、ユーザーのContainer Runtimeに合った適切なデフォルト設定ファイルを作成して、エージェントをインストールしてください。
-
次のコマンドを実行して、WhaTap Helmリポジトリを追加します。
helm repo add whatap https://whatap.github.io/helm/
helm repo update -
次のコマンドを実行して、ユーザーのCONTAINER-RUNTIMEを確認します。
kubectl get nodes -o wide
-
CONTAINER-RUNTIMEを確認し、インストールに必要なデフォルト設定ファイル(values.yaml)を次のように作成します。
containerRuntime: #CONTAINER-RUNTIME
whatap:
license: #WHATAP-LICENESE-KEY
host: "13.124.11.223/13.209.172.35"
port: "6600" -
次のようにエージェントアプリケーションをインストールします。
-
エージェントを初めてインストールするユーザーは、次のコマンドを実行してエージェントアプリケーションをインストールします。
helm install whatap-kube-agent whatap/kube -f values.yaml
-
既存WhaTap Kubernetesエージェントのユーザーは、次のコマンドを実行してエージェントアプリケーションをインストールします。
kubectl delete ns whatap-monitoring
kubectl delete clusterrole whatap
kubectl delete clusterrolebinding whatap
helm install whatap-kube-agent whatap/kube -f values.yaml
ノート既にyamlファイル方式でWhaTap Kubernetesエージェントをインストールした場合、Clean Installが必要です。既存のKubernetesエージェントを削除した後、helmチャートによるインストールが可能です。
-
values.yamlの主な設定項目
WhaTap Kubernetesエージェントの設定を修正するには、設定ファイル(values.yaml)の修正が必要です。values.yamlの主な設定項目を次のように案内します。
キー | タイプ | 既定値 | 説明 |
---|---|---|---|
whatap.license | String | # <license-key> | Whatapライセンスキー |
whatap.host | String | # <whatap-server-host> | Whatapサーバーのホストアドレス |
whatap.port | Int | # <whatap-server-port> | Whatapポート番号 |
containerRuntime | String | "docker" | 使用中のコンテナランタイム。"docker" 、"containerd" 、"crio" のいずれかを選択 |
daemonSet.name | String | whatap-node-agent | DaemonSetの名前 |
daemonSet.label | String | whatap-node-agent | DaemonSetに指定するラベル |
daemonSet.initContainers.nodeDebugger.enabled | Bool | true | Whatapノードデバッガコンテナの活性化有無 |
daemonSet.containers.nodeHelper.image | String | whatap/kube_mon | nodeHelperコンテナのイメージ |
daemonSet.containers.nodeHelper.requests.memory | String | 100Mi | nodeHelper MEMORY request |
daemonSet.containers.nodeHelper.requests.cpu | String | 100m | nodeHelper CPU request |
daemonSet.containers.nodeHelper.limits.memory | String | 350Mi | nodeHelper MEMORY limit |
daemonSet.containers.nodeHelper.limits.cpu | String | 200m | nodeHelper CPU limit |
daemonSet.containers.nodeAgent.image | String | whatap/kube_mon | nodeAgentコンテナのイメージ |
daemonSet.containers.nodeAgent.requests.memory | String | 300Mi | nodeAgent MEMORY request |
daemonSet.containers.nodeAgent.requests.cpu | String | 100m | nodeAgent CPU request |
daemonSet.containers.nodeAgent.limits.memory | String | 350Mi | nodeAgent MEMORY limit |
daemonSet.containers.nodeAgent.limits.cpu | String | 200m | nodeAgent CPU limit |
deployment.name | String | whatap-master-agent | Deploymentの名前 |
deployment.label | String | whatap-master-agent | Deploymentに指定するラベル |
deployment.replicas | Int | 1 | Deploymentのreplica数 |
deployment.containers.controlPlaneHelper.enabled | Boolean | true | whatap-control-plane-helperコンテナの活性化有無 |
deployment.containers.controlPlaneHelper.image | String | "whatap/kube_mon" | controlPlaneHelperコンテナのイメージ |
deployment.containers.controlPlaneHelper.port | String | 9496 | controlPlaneHelperコンテナのポート番号 |
deployment.containers.controlPlaneHelper.resources.requests.memory | String | "300Mi" | controlPlaneHelperコンテナMEMORY request |
deployment.containers.controlPlaneHelper.resources.requests.cpu | String | "100m" | controlPlaneHelperコンテナCPU request |
deployment.containers.controlPlaneHelper.resources.limits.memory | String | "350Mi" | controlPlaneHelperコンテナMEMORY limit |
deployment.containers.controlPlaneHelper.resources.limits.cpu | String | "200m" | controlPlaneHelperコンテナCPU limit |
deployment.containers.masterAgent.name | String | whatap-master-agent | masterAgentコンテナ名 |
deployment.containers.masterAgent.image | String | "whatap/kube_mon" | masterAgentコンテナイメージ |
deployment.containers.masterAgent.port | Int | 6600 | masterAgentコンテナポート番号 |
deployment.containers.masterAgent.resources.requests.memory | String | "300Mi" | masterAgentコンテナMEMORY request |
deployment.containers.masterAgent.resources.requests.cpu | String | "100m" | masterAgentコンテナCPU request |
deployment.containers.masterAgent.resources.limits.memory | String | "350Mi" | masterAgentコンテナMEMORY limit |
deployment.containers.masterAgent.resources.limits.cpu | String | "200m" | masterAgentコンテナCPU request |
Helmチャート基準でのインストール問題の解決についての案内は、次の文書を参照してください。
YAMLファイル基準インストール
KubernetesバージョンとContainer Runtimeに合わせてYAMLファイルをダウンロードし、エージェントを作成します。
-
次のコマンドを実行し、VERSIONとCONTAINER-RUNTIMEを確認します。
kubectl get node -o wide
-
エージェントのインストール画面でVERSIONとCONTAINER-RUNTIMEに合わせてYAMLファイルを選択し、ダウンロードボタンをクリックします。
-
ダウンロードしたYAMLファイルをマスターノードにアップロードします。
-
エージェントを作成するには、次のコマンドを実行します。
# {whatap_kube_X.YZ.yaml}ファイル名をダウンロードしたファイル名と一致するように変更してください。
kubectl apply -f {whatap_kube_X.YZ.yaml} -
次のようにエージェントを正常に作成(create)したことを確認します。
マスターエージェントが使用するリソース量は、ユーザー環境のノード数にある程度比例します。つまり、クラスタ内にノード数が多い場合、既定値に設定されたメモリLimit(350MB)以上のリソースを使ってOOM(Out Of Memory)が発生する場合があります。マスターエージェントに割り当てられたメモリLimitは、エージェントのインストールYAMLファイルで変更できます。
Kubernetesエージェントのインストール確認
Kubernetesエージェントのインストールが正常に完了した場合、次のコマンドを実行してマスターエージェントとノードエージェントの状態を確認できます。
kubectl get pod -n whatap-monitoring
Running状態の場合
次のようにSTATUS項目がRunningである場合インストールを完了した状態です。マスター及びノードエージェントのインストールを完了すると、Kubernetes環境のリソースモニタリングが始まります。WhaTapモニタリングサービスに移動し、プロジェクトリストとダッシュボード > コンテナマップメニューから性能情報が収集されるのを確認してください。
Running状態でない場合
次のようにSTATUS項目がRunningでない場合、インストールが正しく行われていない状態です。
-
マスターノードで次のコマンドを実行し、Podの生成に失敗した原因を特定します。
kubectl describe pod {POD_NAME} -n whatap-monitoring
-
実行結果の下部の Events: 項目を確認してください。
kubectl
コマンドを使用する場合、-n {ネームスペース}
オプションを使用して、特定のネームスペースを対象にタスクを実行します。WhaTapエージェントは、基本的にwhatap-monitoring
というネームスペースにインストールされるため、-n whatap-monitoring
というオプションを追加します。