GKE 1.32以降でのmackerel-container-agentの利用について

こんにちは、Mackerel開発チームアプリケーションエンジニアの id:ne-sachirou です。

この記事は、GKE (Google Kubernetes Engine) をmackerel-container-agentで監視しているユーザーに向けてご案内するものです。

GKE 1.32以降に新しく作成されたクラスターでは、kubeletのread-onlyポートがデフォルトで無効になっています。
mackerel-container-agentはデフォルトでkubeletのread-onlyポートを利用するように設定されているため、このままではメトリックを取得できません。

GKE 1.32以降でmackerel-container-agentを利用するには、kubeletのデフォルトポートを使うよう、以下の両方の設定が必要です。

  • MACKEREL_KUBERNETES_KUBELET_READ_ONLY_PORT 環境変数に 0 を設定する
  • ClusterRole を適切に設定する

詳しくはヘルプをご参照ください。

Autopilotクラスターをご利用の場合

GKE Autopilotクラスターでは、mackerel-container-agent(2025年2月26日時点でv0.11.2)が要求する nodes/proxy 権限を設定できません。
そのため、通常の方法ではkubeletのデフォルトポートを利用することができません。

Autopilotクラスターでmackerel-container-agentを利用するには、クラスターの --autoprovisioning-enable-insecure-kubelet-readonly-port オプションを設定し、read-onlyポートを有効にする必要があります。

以上の通り、GKE 1.32以降の環境でmackerel-container-agentをご利用の方は、設定の見直しをお願いいたします。

引き続き、Mackerelをよろしくお願いいたします。