8.4.3. Pod 内でのメモリー要求および制限の検索
Downward API を使用するようにコンテナーを設定することで、Pod 内からメモリー要求と制限を動的に検出できます。これにより、アプリケーションは API サーバーを使用することなく、これらのリソースをより適切に管理できるようになります。
手順
MEMORY_REQUESTとMEMORY_LIMITスタンザを追加するように Pod を設定します。以下のような YAML ファイルを作成します。
apiVersion: v1 kind: Pod metadata: name: test spec: securityContext: runAsNonRoot: false seccompProfile: type: RuntimeDefault containers: - name: test image: fedora:latest command: - sleep - "3600" env: - name: MEMORY_REQUEST valueFrom: resourceFieldRef: containerName: test resource: requests.memory - name: MEMORY_LIMIT valueFrom: resourceFieldRef: containerName: test resource: limits.memory resources: requests: memory: 384Mi limits: memory: 512Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: [ALL]ここでは、以下のようになります。
spec.consinters.env.name.MEMORY_REQUEST- この節では、アプリケーションのメモリー要求値を検出します。
spec.consinters.env.name.MEMORY_LIMIT- この節では、アプリケーションのメモリー制限値を検出します。
以下のコマンドを実行して Pod を作成します。
$ oc create -f <file_name>.yaml
検証
リモートシェルを使用して Pod にアクセスします。
$ oc rsh test要求された値が適用されていることを確認します。
$ env | grep MEMORY | sort出力例
MEMORY_LIMIT=536870912 MEMORY_REQUEST=402653184
メモリー制限値は、/sys/fs/cgroup/memory/memory.limit_in_bytes ファイルによってコンテナー内から読み取ることもできます。