Kubernetes, helm, istio, prometheusといろいろ触ってきて今までの知識を使って、Kubernetesにロギングやモニタリング機能を追加してみよう。## アーキテクチャ
実際に運用を考慮するとなると、インストールして使える状態になるだけでなく、いつスケーリングするのか、問題が起きたときのログやトラップの送信などを考慮する必要がある。
そこで、今回Kuberenetesに必要なものについてここで考える
目次
ノードの役割について
以下のように各ノードの役割をわける。
- 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のインストール