1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

k8s運用におけるリソース管理(Turbonomicがある場合とない場合)

1
Posted at

はじめに

k8s運用でのリソース最適化ってかなり面倒、、!ということで、実際に手を動かしてEKSでのリソース最適化の流れを試してみました。

Turbonomicがないとき

Step1:Podで問題を見つける

スクリーンショット 0008-06-26 6.58.03.png

パフォーマンスが悪いなと感じた時にPod一覧を見て、再起動や止まっているPodがないか確認します。
再起動しているPodを探してメトリクスを確認、メモリ不足などの原因を探します。

Step2:Podの親(Deployment)を特定

問題のPodとその原因が特定できたら、Podの親となるDeploymentを特定します。

⚠️Podはすぐに消えるので、Pod作成元のDeploymentでリソース設定変更します

特定手順

  • EKSコンソール → 対象クラスタ
  • 「Workloads」→「Pods」
  • 該当Podをクリック
  • 詳細画面で「Controlled By(以下によって制御:)」を確認

Pod→ReplicaSet→Deploymentとドリルダウンします。

① Pod
スクリーンショット 0008-06-26 7.07.48.png

② ReplicaSet
スクリーンショット 0008-06-26 7.11.55.png

③ Deployment

image.png

ドリルダウン!!でようやくDeploymentに辿り着きました。。

Step3:Deploymentを編集

image.png

Deploymentに辿り着いたら、パフォーマンス悪化の原因となっているリソースの値を編集します。

Step4:再デプロイ(自動)

Deploymentで値を設定し直せたら、再デプロイします。
Deploymentを更新すると自動で新しいReplicaSetが作成され、ローリングアップデート(新しいPodが起動し古いPodが削除される)が起こります。

以下のコマンドで状況を確認します。

# 状態確認
kubectl rollout status deployment cartservice -n retail-store
# podの入れ替わり確認
kubectl get pods -n retail-store

Turbonomicない場合の感想

ここまでの流れを見ると、

  • Podで問題を見つける
  • Deploymentまでドリルダウンする
  • 手動で設定変更する
  • 再デプロイして様子を見る

この一連の作業を繰り返す必要があることが分かります。たった一つのリソース設定を変えるだけで、、!
さらに、

  • コンテナとノードの両方を考慮する必要
  • トラフィック変動に追従し続ける必要

もあります。とてもやってられませんね。。

Turbonomicがあるとき

Step1:環境ごとのリソース状態を把握

image.png

Podで問題を見つける前に、環境全体のリソース状態(メモリ・CPU・ストレージなどのコンピューティングリソースを指す)が確認できます。アプリケーションごとにリソース状態どんなもんかな?と確認できて便利です!

  • トップ・コンテナ・プラットフォーム・クラスター:EKSのクラスタごと
  • トップ名前空間:名前空間ごと(アプリケーションごと)

Step2:リソース最適化アクションを把握

スクリーンショット 0008-06-26 7.30.53.png
Podもそれ以外も全部含めて、パフォーマンス改善・コスト削減のためのリソース最適化アクションをTurbonomicが自動で作ってくれます。

Step3:ボタン一つで最適化

スクリーンショット 0008-06-26 7.31.22.png

アクションの詳細を見て、右下の青いボタンを押すとリソース最適化が完了します。
その際に、アクションを実行した際の前後のパフォーマンスの変化もグラフや具体的な数値で確認できるので安心です。

かなり簡単!Turbonomicが全て自動で用意してくれているので、AWS画面上で逐一色々なページに飛んで確認しなくていいし、Turbonomicが揃えた情報を確認して判断するだけでリソース最適化完了!感動です。

終わりに

今回は、k8s運用におけるリソース管理をTurbonomicがある場合・ない場合で比較してみました。
手動での最適化では、調査・設定変更・再デプロイ・検証といったプロセスを繰り返す必要があり、継続的な最適化は大きな負担、というか完璧にするのは無理だなと感じました。
一方でTurbonomicだと、全て用意されている状態なので、サクサクと直感的にリソース最適化が可能です。
k8s運用の効率化を考える上で、Turbonomicはとても役に立つなと身をもって感じられました。

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?