エラスティックコンテナインスタンス(ポッド)を作成する際に、指定したvCPUとメモリの仕様がエラスティックコンテナインスタンスの仕様要件を満たしていない場合、システムはポッドの仕様をエラスティックコンテナインスタンスでサポートされている最も近い仕様に自動的に調整します。調整後の仕様が必要以上に大きい場合、リソースの無駄が発生する可能性があります。このような場合、サイドカーコンテナなど、ビジネスに影響を与えないコンテナの環境変数を設定して、仕様調整中にコンテナを無視することができます。これにより、リソースの無駄を防ぎ、ポッドの使用コストを削減できます。
機能の説明
エラスティックコンテナインスタンスを作成するためにvCPUとメモリの仕様を指定する場合、各コンテナのvCPUとメモリの仕様を指定できます。すべてのコンテナのvCPUとメモリの仕様の合計は、インスタンスの仕様を超えることはできません。作成するエラスティックコンテナインスタンスのvCPUとメモリの仕様を指定しない場合、システムはすべてのコンテナのvCPUとメモリの仕様の合計を使用してインスタンスを作成します。合計がエラスティックコンテナインスタンスでサポートされている仕様と一致しない場合、システムはvCPUとメモリの仕様の合計を自動的に調整してインスタンスを作成します。
各コンテナに指定する仕様は、コンテナのリソースの上限です。システムがインスタンスを作成するときに、システムは各コンテナのリソース割り当てを動的に調整します。ビジネスに影響を与えない特定のコンテナに対して、__ECI_RESOURCE_IGNORE__:TRUE
環境変数を設定できます。このようにして、システムはリソース調整中にコンテナを無視します。これにより、過大なサイズのインスタンスが作成されるのを防ぎ、リソースを節約できます。
例:
前の図に示すように、中国(杭州)リージョンにエラスティックコンテナインスタンスを作成するとします。インスタンスには3つのコンテナが含まれています。コンテナ1と2(ビジネスコンテナ)はそれぞれ2 vCPUと4 GiBのメモリで構成されています。コンテナ3(サイドカーコンテナ)は0.25 vCPUと0.5 GiBのメモリで構成されています。通常の場合、システムはインスタンスの仕様を6 vCPUと10 GiBのメモリに自動的に調整します。ただし、実際には6 vCPUと10 GiBのメモリは必要ない場合があります。この場合、サイドカーコンテナに_ECI_RESOURCE_IGNORE_:TRUE
環境変数を設定できます。環境変数を設定した後、システムはサイドカーコンテナを無視し、インスタンスの仕様を4 vCPUと8 GiBのメモリに調整します。
構成の説明
仕様調整中にシステムが特定のコンテナを無視するようにするには、コンテナに次の環境変数を設定します。
env:
- name: "__ECI_RESOURCE_IGNORE__"
value: "TRUE"
構成例
次のYAMLファイルに基づいてデプロイメントが作成されます。各ポッドには2 vCPUと4 GiBのメモリが含まれています。デプロイメントはnginx1コンテナの制限を使用し、nginx2コンテナの制限は無視します。
nginx2コンテナに__ECI_RESOURCE_IGNORE__:TRUE
環境変数が設定されていない場合、nginx1コンテナとnginx2コンテナのリソース要件の合計は3 vCPUと6 GiBのメモリになります。デプロイメントが中国(杭州)リージョンに作成された場合、実際に作成されるポッドには、システムがポッドの仕様を上方調整した後、4 vCPUと6 GiBのメモリが含まれます。
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
spec:
containers:
- name: nginx1
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
resources:
limits:
cpu: "2000m" // CPU制限を2000mに設定
memory: "4096Mi" // メモリ制限を4096Miに設定
- name: nginx2
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
resources:
limits:
cpu: "1000m" // CPU制限を1000mに設定
memory: "2048Mi" // メモリ制限を2048Miに設定
env:
- name: "__ECI_RESOURCE_IGNORE__"
value: "TRUE"
restartPolicy: Always