# 概要
webプラットフォーム マイクロサーバ化プロジェクト
# 担当
設計によるkubernetesマニフェストの実装
prometheusによるコンポーネント監視設定の調査・実装
elasticserachによるログ監視設定の調査・実装
分散ストレージrook-cephの調査・実装
マイクロサーバの構築自動化・手順作成
# 使用技術
azure
openstack
kubernetes(helm 3)
rancher2
terraform
ansible
prometheus
node-exporter
mtail
fluentd
elasticserach
kibana
redis
mysql
nginx
java
shellscript
# 詳細情報
参画段階の初期タスクとして、
上長の設計指示した、マイクロサービスアキテクチャを
kubernetesのマニフェストファイルへ落とす作業を行いました。
成果として「nginx」「tomcat」「redis」「mysql」のdockerファイルとpodデプロイ用yamlの設計の合意が取れました。
続いて社内で初使用する監視OSSであるprometheusによる、各podのメトリクス取得方法の調査検証を行いました。
成果として「nginx」「tomcat」「redis」「mysql」をデプロイする、マニフェストに、各種exporterを組み込むことで、
prometheusサーバからの監視を実現する方法と、alertmanagerを用いた閾値設定を超えるとメールを送信する
設定方法(PromQL)の情報共有とひな形設計の合意が取れました。
続いてOpenstack内に社内で初使用する仮想ストレージ化ソフトであるrook-cephを実装するための検証を行いました。
具体的には複数パターンの設定によるIOPS性能試験を行いました。
パターン1: openstackで使用可能な標準~最高のI/O性能ディスクのIOPS性能検証
パターン2: クラスター上に構築したrook-ceph(仮想ストレージ)PVCをpodから読み書きした時のI/O性能ディスクのIOPS性能検証
成果として「openstackの使用ディスク」と「cephfsとRBD」「podからpvへの読み書きの並列数」など設計するにあたりどのopenstackのブロックストレージを使用するのが現実的か、情報を提供することが出来ました。
他、担当するrookceph・prometheus関連のpodリソースが指定nodeに配置されるように、
マニフェストにノードアフィニティ、ポッドアンチアフィニティの設定を記述し、
指定ノードへ配置される業務を担当。
他、セキュリティポリシーリソース(kubernetesのFW機能)を用いて、アクセス制御(allow。、deny)を行い各ネームスペース毎にpod間で適切な通信が出来るように設定する業務を担当。
他、prometheusによるVM単位・cluster node単位・pod単位で、「cpu」「メモリ」「ストレージ」「セッション数」「受送信トラフィック量」のメトリクスを取得と、閾値を超えたらアラートが起きるようにする設定を担当。
他、prometheusとgrafanaを連携し各メトリクスのダッシュボード可視化させる業務を担当。