12.3. Downward API를 사용하여 Huge Page 리소스 사용
Downward API를 사용하여 컨테이너에서 사용하는 Huge Page 리소스에 대한 정보를 삽입할 수 있습니다.
리소스 할당을 환경 변수, 볼륨 플러그인 또는 둘 다로 삽입할 수 있습니다. 컨테이너에서 개발하고 실행하는 애플리케이션은 지정된 볼륨에서의 환경 변수 또는 파일을 읽고 사용할 수 있는 리소스를 확인할 수 있습니다.
프로세스
다음 예와 유사한
hugepages-volume-pod.yaml
파일을 생성합니다.apiVersion: v1 kind: Pod metadata: generateName: hugepages-volume- labels: app: hugepages-example spec: containers: - securityContext: capabilities: add: [ "IPC_LOCK" ] image: rhel7:latest command: - sleep - inf name: example volumeMounts: - mountPath: /dev/hugepages name: hugepage - mountPath: /etc/podinfo name: podinfo resources: limits: hugepages-1Gi: 2Gi memory: "1Gi" cpu: "1" requests: hugepages-1Gi: 2Gi env: - name: REQUESTS_HUGEPAGES_1GI <.> valueFrom: resourceFieldRef: containerName: example resource: requests.hugepages-1Gi volumes: - name: hugepage emptyDir: medium: HugePages - name: podinfo downwardAPI: items: - path: "hugepages_1G_request" <.> resourceFieldRef: containerName: example resource: requests.hugepages-1Gi divisor: 1Gi
<.>
requests.hugepages-1Gi
에서 리소스 사용을 읽고 값을REQUESTS_HUGEPAGES_1GI
환경 변수로 표시하도록 지정합니다. <.>는requests.hugepages-1Gi
에서 리소스 사용을 읽고 값을 파일/etc/podinfo/hugepages_1G_request
로 표시하도록 지정합니다.volume-pod.yaml
파일에서 Pod를 생성합니다.$ oc create -f hugepages-volume-pod.yaml
검증
REQUESTS_HUGEPAGES_1GI
환경 변수 값을 확인합니다.$ oc exec -it $(oc get pods -l app=hugepages-example -o jsonpath='{.items[0].metadata.name}') \ -- env | grep REQUESTS_HUGEPAGES_1GI
출력 예
REQUESTS_HUGEPAGES_1GI=2147483648
/etc/podinfo/hugepages_1G_request
파일의 값을 확인합니다.$ oc exec -it $(oc get pods -l app=hugepages-example -o jsonpath='{.items[0].metadata.name}') \ -- cat /etc/podinfo/hugepages_1G_request
출력 예
2