$30 off During Our Annual Pro Sale. View Details »

Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPrometheusを破壊したのか〜 #prometheustokyo

Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPrometheusを破壊したのか〜 #prometheustokyo

whywaita
PRO

June 03, 2019
Tweet

More Decks by whywaita

Other Decks in Technology

Transcript

  1. Prometheus monitoring
    from outside of Kubernetes

    〜どうして我々はKubernetes上のPrometheusを破壊したのか〜
    株式会社サイバーエージェント 技術本部 プライベートクラウドグループ

    Nakanishi Kento @whywaita
    Prometheus Tokyo Meetup #2
    !1

    View Slide

  2. Nakanishi Kento / whywaita
    • 株式会社サイバーエージェント 技術本部

    プライベートクラウドグループ 開発チーム
    • 2019年年新卒⼊入社 (⼊入社して2ヶ⽉月経ちました)
    • 仕事: OpenStack / Kubernetes ベースの

    プライベートクラウドのお守り, 新機能の開発
    • 趣味: ⾃自宅サーバ / ⾃自宅インフラ, アニソン
    最近趣味で我が家とAS59105がBGPで繋がりました
    !2

    View Slide

  3. 1.最初のPrometheus
    2.破滅、突然に
    3.そして未来へ……
    !3

    View Slide

  4. 最初のPrometheus
    !4

    View Slide

  5. Prometheus Tokyo Meetupですが

    皆さんPrometheus運⽤用してますか?
    !5

    View Slide

  6. Prometheus Tokyo Meetupですが

    皆さんどこで運⽤用してますか?
    !6

    View Slide

  7. 【緊急アンケート】Prometheusどこに置いてますか?
    •Kubernetesの上にPodとして
    •EC2 / GCEなどVMの上にプロセスとして
    •タンスの上に良い感じに
    •その他
    !7

    View Slide

  8. (結果は⾒見見てないけど)

    やはり皆さんKubernetesの上ですね!
    !8

    View Slide

  9. 我々のチームもそんな感じ
    !9

    View Slide

  10. 我々のチームもそんな感じでした…
    !10

    View Slide

  11. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    !11

    View Slide

  12. 必要なものと⾔言えば?
    !12

    View Slide

  13. Persistent Volumeですよね!
    !13

    View Slide

  14. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    !14

    View Slide

  15. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    !15

    View Slide

  16. Prometheusをk8sの上に置くと嬉しい
    •k8s_sd_config がバリバリ動く
    •TLS証明書周りは⾃自動的に良い感じに更更新
    •クラスタエンドポイント設定不不要
    •ClusterIPなどにそのままアクセス可
    !16

    View Slide

  17. 最⾼高じゃん!!!!😊😊😊
    !17

    View Slide

  18. 最⾼高の⽇日々を過ごしていた
    !18

    View Slide

  19. 破滅、突然に
    !19

    View Slide

  20. が…………
    !20

    View Slide

  21. 免責事項
    •ここからの話は開発環境で⾏行行われたものです
    •本番ではここからの話と同様のものは起きていません
    •説明簡易易化のため実際の挙動とは若⼲干違う説明をします
    !21

    View Slide

  22. ある⽇日
    !22

    View Slide

  23. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    !23

    View Slide

  24. 「メンテしますね〜」

    『は〜い!』
    !24

    View Slide

  25. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !25

    View Slide

  26. カチャカチャカチャ……
    !26

    View Slide

  27. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !27

    View Slide

  28. 「…ん?」
    !28

    View Slide

  29. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !29

    View Slide

  30. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !30

    View Slide

  31. 「…あ!!!!」
    !31

    View Slide

  32. 🔥🔥障害発⽣生🔥🔥
    !32

    View Slide

  33. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !33

    View Slide

  34. • 普段のetcd クラスタ台数は5台
    • メンテナンスで -2台
    • 障害で更更に -1台
    あとは分かるな…?
    !34

    View Slide

  35. 🔥etcdクラスタ崩壊🔥
    !35

    View Slide

  36. 🔥Kubernetesクラスタ崩壊🔥
    !36

    View Slide

  37. 😱😱😱
    !37

    View Slide

  38. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !38

    View Slide

  39. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !39

    View Slide

  40. つまり
    !40

    View Slide

  41. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !41

    View Slide

  42. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !42

    View Slide

  43. 🔥Cephも死亡🔥
    !43

    View Slide

  44. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !44

    View Slide

  45. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !45

    View Slide

  46. 🔥PVC提供も失敗🔥
    !46

    View Slide

  47. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !47

    View Slide

  48. ざっくり図 (on Private Cloud)
    m01
    物理理 k8s-worker(s)
    etcd
    m02 m03 m04 m05
    etcd etcd
    etcd
    etcd
    コンテナ
    PVC
    ストレージ

    アプライアンス
    リクエスト
    pvc-prom
    提供
    メンテナンス
    !48

    View Slide

  49. 🔥Prometheusも無事死亡🔥
    !49

    View Slide

  50. 🔥アラート発砲できず🔥
    !50

    View Slide

  51. 🔥🔥🔥🔥🔥🔥🔥🔥
    !51

    View Slide

  52. 復復旧は淡々と⾏行行われた…
    •etcdクラスタ復復旧
    •ちゃんと設定を⼊入れるとスッと直って優秀!
    •kube masterクラスタ復復旧
    •Cephクラスタ復復旧
    •3台⽬目を急遽差し込みブートストラップ
    •PVC提供再開
    •Prometheus含め完全復復旧!
    !52

    View Slide

  53. 😥
    !53

    View Slide

  54. こうして我々はPrometheusを

    Kubernetesの外に置くことに……
    !54

    View Slide

  55. そして未来へ……
    !55

    View Slide

  56. 【再掲】Prometheusをk8sの上に置くと嬉しい
    •k8s_sd_config がバリバリ動く
    •TLS証明書周りは⾃自動的に良い感じに更更新
    •クラスタエンドポイント設定不不要
    •ClusterIPなどにそのままアクセス可
    !56

    View Slide

  57. では外に置くときは?
    !57

    View Slide

  58. Prometheusをk8sの外から監視するときは
    • k8s_sd_config がバリバリ動くかもしれない
    • TLS証明書周りは⾃自動的に良い感じに更更新されない
    • しっかり更更新する仕組みを⼊入れましょう
    • クラスタエンドポイント設定不不要必要
    • しっかり設定しましょう
    • ClusterIPなどにそのままアクセス可不不可
    • しっかりプロキシするルールを書きましょう
    !58

    View Slide

  59. Kubernetes APIアクセス⽤用証明書の設定
    •Prometheusを動作させているVMに配置
    •/etc/prometheus/ca.pem などファイルシステム直置き
    •監視 / アラートルールをansibleで管理理しているため、

    証明書も同じタイミングで適⽤用する運⽤用
    •定期的に流さないといけないのでもうちょっと

    良い⽅方法があればそちらにしたい……
    !59

    View Slide

  60. クラスタエンドポイントの設定
    •kubernetes_sd_config の api_server で設定可能
    •弊社の場合はansibleのjinja2で本番 / 開発を切替
    •APIエンドポイント向けの証明書とPodアクセス向けの
    TLS証明書は切替可能なので適宜やってください!!
    !60

    View Slide

  61. クラスタエンドポイントの設定
    !61

    View Slide

  62. Podへの監視プロキシの設定
    •NodePortがあるものはKubernetesのプロキシ
    • /api/v1/nodes/${node名}/proxy/metrics
    •Serviceがあるものはrelabel_configを駆使して頑張る!!
    •blackbox_exporterは
    •__address__ をblackboxが動作している所に書き換え
    •__param_target を監視先に書き換え
    !62

    View Slide

  63. 今はk8s上とVM上の並⾏行行運⽤用中

    (統合タスクが進⾏行行中)
    !63

    View Slide

  64. まとめ
    • Kubernetesは意外と壊れる
    • 監視のためのプロセスが⼀一緒に壊れたら破滅する
    • ストレージってやっぱり⼤大変
    • PrometheusはKubernetesの外からでもちゃんと監視

    できます!!!!
    • もっと良いソリューションあれば懇親会で教えて

    ください!!!
    !64

    View Slide

  65. ありがとうございました

    Thank you!!!
    !65

    View Slide