前提条件
説明 アプリケーションモニタリング eBPF 版はパブリックプレビュー中です。パブリックプレビュー期間中は、Alibaba Cloud アプリケーションモニタリング eBPF 版を無料でご利用いただけます。ご不明な点がございましたら、アプリケーションモニタリング eBPF 版のサポート DingTalk グループ (グループ ID: 35568145) にご参加ください。
ARMS が有効化されていること。詳細については、「ARMS の有効化とアップグレード」をご参照ください。
Kubernetes クラスターが作成されていること。アプリケーションモニタリング eBPF 版は現在、ACK クラスターと登録済みクラスターのみをサポートしています。これらのクラスターを作成する方法は次のとおりです。
ご利用の環境がアプリケーションモニタリング eBPF 版をサポートしていることを確認します。詳細については、「アプリケーションモニタリング eBPF 版の要件と制限事項」をご参照ください。
接続手順
Kubernetes クラスターをアプリケーションモニタリング eBPF 版に接続するには、クラスターにeBPF 版コンポーネントをインストールする必要があります。
インストールする前に、ターゲットクラスターに ARMS Addon トークンがあるかどうかを確認します。ARMS Addon トークンが存在する場合、ARMS はパスワードレス認証を実行し、コンポーネントのインストール後にeBPF 版を使用できます。ARMS Addon トークンが存在しない場合、権限エラーが発生します。この場合、ARMS と Tracing Analysis のアクセスポリシーを手動で追加する必要があります。以下のセクションでは、ARMS Addon トークンの確認方法とアクセスポリシーの手動追加方法について説明します。
クラスター内の ARMS Addon トークンの存在確認
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター] ページで、クラスター名をクリックしてクラスター詳細ページに移動します。
左側のナビゲーションウィンドウで、 を選択します。ページの上部で、[名前空間] ドロップダウンリストから kube-system を選択し、[シークレット] ページに addon.arms.token が表示されているかどうかを確認します。
権限ポリシーの手動追加
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター] ページで、クラスターの名前をクリックします。
[クラスター情報] ページの [基本情報] タブで、[クラスターリソース] セクションの [ワーカー RAM ロール] の横にあるリンクをクリックします。
表示されたページで、[権限] タブの [権限の付与] をクリックします。
[権限の付与] パネルで、次のポリシーを追加し、[権限の付与] をクリックします。
説明 ACK マネージドクラスター:一部の ACK マネージドクラスターには ARMS Addon トークンがない場合があります。これらのクラスターでは、まず ARMS Addon トークンが存在するかどうかを確認する必要があります。存在しない場合は、手動で権限を付与する必要があります。
ACK 専用クラスター:デフォルトでは、ACK 専用クラスターは ARMS Addon トークンをサポートしていません。したがって、手動で権限を付与する必要があります。
アプリケーションモニタリング eBPF 版コンポーネントのインストール
既存のアプリケーションへのコンポーネントのインストール
お使いのアプリケーションにApplication Monitoring eBPF エディション コンポーネントがすでにインストールされている場合は、Container Service 管理コンソールで、ターゲットクラスターの ページに移動します。 このページで、ack-arms-cmonitor コンポーネントのバージョンが 4.0.0 以降であるかどうかを確認します。 そうでない場合は、[アップグレード] をクリックしてコンポーネントを最新バージョンにアップグレードします。
Container Service for Kubernetes (ACK) コンソールにログインします。[クラスター] ページで、ターゲットクラスターの名前をクリックします。
左側のナビゲーションウィンドウで、[運用管理] > [クラスタートポロジー] を選択します。
[クラスタートポロジー] ページで、[インストール開始] をクリックします。ACK コンソールは自動的にeBPF 版コンポーネントをインストールします。
説明 デフォルトの名前空間は arms-prom です。
ACK 専用クラスターを使用する場合は、AccessKey ペアの構成を更新します。
左側のナビゲーションウィンドウで、 を選択します。
`arms-cmonitor` を見つけて [更新] をクリックします。accessKey と accessKeySecret を Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret に設定します。詳細については、「AccessKey ペアの取得」をご参照ください。
重要 Alibaba Cloud アカウントに AliyunARMSFullAccess および AliyunSTSAssumeRoleAccess 権限があることを確認してください。
[OK] をクリックします。
アプリケーション作成時のコンポーネントのインストール
Container Service for Kubernetes (ACK) コンソールにログインします。[クラスター] ページで、ターゲットクラスターを見つけます。[アクション] 列で、[アプリケーション管理] をクリックします。
[ステートレス] ページで、[YAML で作成] をクリックします。
[サンプルテンプレート] を選択します。YAML 形式の [テンプレート] フィールドで、spec.template.metadata レベルの下に次の labels を追加します。
labels:
armseBPFAutoEnable: "on"
armseBPFCreateAppName: "<your-deployment-name>" # <your-deployment-name> をお使いのアプリケーション名に置き換えます。
次のコードは、ステートレス (Deployment) アプリケーションを作成し、ARMS アプリケーションモニタリング eBPF 版を有効にするための完全なサンプル YAML テンプレートです。
完全なサンプル YAML ファイルを展開して表示
apiVersion: v1
kind: Namespace
metadata:
name: arms-demo
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: arms-springboot-demo
namespace: arms-demo
labels:
app: arms-springboot-demo
spec:
replicas: 2
selector:
matchLabels:
app: arms-springboot-demo
template:
metadata:
labels:
app: arms-springboot-demo
armseBPFAutoEnable: "on"
armseBPFCreateAppName: "arms-k8s-demo"
spec:
containers:
- resources:
limits:
cpu: 0.5
image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
imagePullPolicy: Always
name: arms-springboot-demo
env:
- name: SELF_INVOKE_SWITCH
value: "true"
- name: COMPONENT_HOST
value: "arms-demo-component"
- name: COMPONENT_PORT
value: "6666"
- name: MYSQL_SERVICE_HOST
value: "arms-demo-mysql"
- name: MYSQL_SERVICE_PORT
value: "3306"
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: arms-springboot-demo-subcomponent
namespace: arms-demo
labels:
app: arms-springboot-demo-subcomponent
spec:
replicas: 2
selector:
matchLabels:
app: arms-springboot-demo-subcomponent
template:
metadata:
labels:
app: arms-springboot-demo-subcomponent
armseBPFAutoEnable: "on"
armseBPFCreateAppName: "arms-k8s-demo-subcomponent"
spec:
containers:
- resources:
limits:
cpu: 0.5
image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
imagePullPolicy: Always
name: arms-springboot-demo-subcomponent
env:
- name: SELF_INVOKE_SWITCH
value: "false"
- name: MYSQL_SERVICE_HOST
value: "arms-demo-mysql"
- name: MYSQL_SERVICE_PORT
value: "3306"
---
apiVersion: v1
kind: Service
metadata:
labels:
name: arms-demo-component
name: arms-demo-component
namespace: arms-demo
spec:
ports:
# the port that this service should serve on
- name: arms-demo-component-svc
port: 6666
targetPort: 8888
# label keys and values that must match to receive traffic for this service
selector:
app: arms-springboot-demo-subcomponent
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: arms-demo-mysql
namespace: arms-demo
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- resources:
limits:
cpu: 0.5
image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
name: mysql
ports:
- containerPort: 3306
name: mysql
---
apiVersion: v1
kind: Service
metadata:
labels:
name: mysql
name: arms-demo-mysql
namespace: arms-demo
spec:
ports:
# the port that this service should serve on
- name: arms-mysql-svc
port: 3306
targetPort: 3306
# label keys and values that must match to receive traffic for this service
selector:
app: mysql
関連ドキュメント
アプリケーションをアプリケーションモニタリング eBPF 版に接続した後、ACK クラスターアプリケーションの主要なメトリック、上流および下流の依存コンポーネント、トポロジーグラフを表示できます。詳細については、「アプリケーション詳細」をご参照ください。