(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【IBMCloud】Kubernetesクラスターの監視にSysdigをカタログから導入する流れ

スポンサーリンク

はじめに

IBM CloudのIKSに対してSysdigを導入することで簡単に監視環境を実装できます。
本記事ではブラウザ上からSysdigのインスタンスを作成し、Kuberneteクラスターに対するエージェントの導入をコマンドラインから実施しました。

環境情報
$ ibmcloud version
C:\Program version 1.4.0+...
Sysdig Agent version 11.3.0

インスタンスの作成

IBM Cloudのカタログサービスにて「sysdig」と入れると「IBM Cloud Monitoring with Sysdig」が選定できます。
その中でプランを選択しますが、今回は無料で利用できるライトプラン(最大 1K の時系列 (Prometheus、JMX、appchecks、StatsD を含む)、50 個のコンテナー、および 1M 回の API 呼び出し)でオーダー。

デフォルトの設定で以下のように注文しました。

ロケーション: ダラス
プラン: ライト
サービス名: IBM Cloud Monitoring with Sysdig-sk
リソース・グループ: default

そうするとサービスにてSysdigが確認できます。

f:id:mtiit:20210614182238p:plain
サービスとしてSysdigが追加されている

エージェントの追加

サービスよりSysdigを選択すると、モニタリングの画面で「ソースの追加」が可能です。
これをクリックするとKubernetes/OpenShift/Linux/Dockerでエージェントをインストールする手順が表示されます。

Kuberneteの場合は

curl -sL https://ibm.biz/install-sysdig-k8s-agent | bash -s -- -a XX -c XX-ac 'sysdig_capture_enabled: false'

が表示されます。

同コマンドを実行するとインストール用のbashスクリプトが実行され、その中でyamlのインストールやKuberneteオブジェクトの適用が行われます。ちなみに確認できるコマンド例には既に「SYSDIG_ACCESS_KEY」と「COLLECTOR_ENDPOINT」が入っています。

コマンドの実行をすると諸々のリソースが作成されて

* Detecting operating system
* Downloading Sysdig cluster role yaml
...
* Deploying the sysdig agent
daemonset.apps/sysdig-agent created

ibm-observeという名前空間にデーモンセットに紐づくポッドが生成されています。

$ kubectl get ds -n ibm-observe
NAME           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
sysdig-agent   1         1         0       1            0           <none>          X

ちなみにデフォルトの設定ではコンテナの展開に大きなリソースをリクエストしているので場合によってはリソース不足によるコンテナ作成失敗が起きます。

Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  22s (x2 over 22s)  default-scheduler  0/1 nodes are available: 1 Insufficient cpu.

そうなった場合はNodeのリソースを増強するか、DaemonSetで要求するリソース量を変更して対応します。

リソースを確認

Podが展開されると、IBM Cloudのサービスよりダッシュボードを開くことでGUIでリソース使用状況が可視化されます。

f:id:mtiit:20210614213152p:plain
グラフでリソースが確認できる

また、Prometheus同様に「PromQL Query」を入れて欲しい値を検索することも可能です。

終わりに

IKSクラスターのリソースをカタログからオーダーしたSysdigで監視する流れについて解説しました。
curlコマンドでインストールする際にjqコマンド等が必要なので事前準備は必要ですが、手順自体はシンプルなので監視環境を簡単に実装したい場合には便利なサービスです。

以上、ご参考になれば幸いです。