運用を考慮したKubernetesを構築する

Kubernetes, helm, istio, prometheusといろいろ触ってきて今までの知識を使って、Kubernetesにロギングやモニタリング機能を追加してみよう。## アーキテクチャ

実際に運用を考慮するとなると、インストールして使える状態になるだけでなく、いつスケーリングするのか、問題が起きたときのログやトラップの送信などを考慮する必要がある。
そこで、今回Kuberenetesに必要なものについてここで考える

2019 01 01 15 44 10

ノードの役割について

以下のように各ノードの役割をわける。

  • Master(Kubernetesコントロールプレーン)
  • Worker( アプリケーション)
  • Monitoring(ログ/モニタリング アプリケーション)
  • LB(外部アクセスと内部間のLBを提供)

LB/Worker/Monitoringノードすべてがkubeletを導入し、iptables経由でClusterIPにアクセスできるようにする。

ネットワークについて

  • CNIにはcanalを使用
  • 管理用ネットワークと外部からのアクセス用ネットワークを分離する
  • 外部からのアクセスに用いるロードバランサーの冗長化を考慮する
  • 外部からのアクセス はロードバランサーを経由する

モニタリング

PrometheusとGrafanaを用いて現状の状況を提供する

ロギング

EFKスタックを用いてContainer/Nodeのログを回収し、UIの提供を行う。

インストール

概要

  • 各ノードの 構成や使用するバージョン
ノード OS Management IP External IP
k8s-lb-01 Ubuntu 16.04 192.168.1.11 192.168.0.11
k8s-lb-02 Ubuntu 16.04 192.168.1.12 192.168.0.12
k8s-master-01 Ubuntu 16.04 192.168.1.21
k8s-master-02 Ubuntu 16.04 192.168.1.22
k8s-master-03 Ubuntu 16.04 192.168.1.23
k8s-monitoring-01 Ubuntu 16.04 192.168.1.31
k8s-monitoring-02 Ubuntu 16.04 192.168.1.32
k8s-worker-01 Ubuntu 16.04 192.168.1.41
k8s-worker-02 Ubuntu 16.04 192.168.1.42

詳細手順(随時更新予定)

  • LBノードのインストール
  • Kubernetesのインストール
  • NFSを使ってPersistentStaorageで使用できるようにする
  • EFK(Kibana/ElasticSearch/Fluentd)をインストール
  • Prometheus/Grafanaのインストール

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください