addon-resizer@ハードウェアリソース管理¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. addon-resizer¶
アーキテクチャ¶
addon-resizerは、サイドカーコンテナとして稼働し、指定したコンテナのハードウェアリソースの要求量を動的に垂直スケーリングする。
マイクロサービスのためというよりは、インフラのために使用する。
特に、NodeでDaemonSetとして稼働するテレメトリー収集系のコンテナ (例:metrics-server、kube-state-metrics、heaper) では、Node内のコンテナが増えるほどハードウェアリソースの要求量が増える。
コンテナの増加に合わせて要求量を動的に変更できるように、addon-resizerを使用する。
01-02. マニフェスト¶
マニフェストの種類¶
addon-resizerは、Deployment (nanny) 、ConfigMap (nanny-config) 、などのマニフェストから構成されている。
Deployment配下のPod¶
▼ nanny¶
記入中...
apiVersion: v1
kind: Pod
metadata:
name: foo-pod
namespace: foo-namespace
spec:
serviceAccountName: pod-nanny
containers:
- image: registry.k8s.io/autoscaling/addon-resizer:1.8.14
name: pod-nanny
command:
- /pod_nanny
- --config-dir=/etc/config
- --cpu=300m
- --extra-cpu=20m
- --memory=200Mi
- --extra-memory=10Mi
- --threshold=5
- --deployment=nanny-v1
ConfigMap (nanny-config)¶
▼ metrics-serverの場合¶
以下のようなConfigMapを作成する。
addonmanager.kubernetes.io/mode
キーにEnsureExists
を設定しないと、addon-managerがデフォルト値に上書きしてしまう。
apiVersion: v1
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: metrics-server-config
namespace: kube-system
data:
NannyConfiguration: |
apiVersion: nannyconfig/v1alpha1
kind: NannyConfiguration
baseMemory: 100Mi
memoryPerNode: 20Mi
cpuPerNode: 1m