volumes: downwardAPI
downwardAPI – не определяется при помощи kind. Используется для того, чтобы сделать данные API доступными для приложений. Он монтируется как каталог и записывает запрошенные данные в текстовые файлы.
Поддерживается получение следующих данных:
- Annotations;
- Labels;
- Name;
- Namespace;
- Resource limits и request:
- limits.cpu;
- limits.memory;
- request.cpu;
- request.memory.
Пример подключения downwardAPI в виде volume:
apiVersion: apps/v1
kind: Deployment
metadata:
name: openresty
namespace: volumes-sample
labels:
app: openresty
spec:
replicas: 1
selector:
matchLabels:
app: openresty
template:
metadata:
labels:
app: openresty
spec:
containers:
- name: openresty
image: openresty/openresty:centos-rpm
env:
- name: NGINX_HOST
valueFrom:
fieldRef:
fieldPath: metadata.name
resources:
limits:
cpu: "0.2"
memory: "300Mi"
requests:
cpu: "0.1"
memory: "100Mi"
ports:
- containerPort: 80
name: http
protocol: TCP
volumeMounts:
- mountPath: "/etc/pod-info"
name: pod-info
readOnly: true
volumes:
- name: pod-info
downwardAPI:
items:
- path: limit-cpu-millicores
resourceFieldRef:
containerName: openresty
resource: limits.cpu
divisor: 1m
- path: limit-memory-kibibytes
resourceFieldRef:
containerName: openresty
resource: limits.memory
divisor: 1Ki
- path: labels
fieldRef:
fieldPath: metadata.labels
Параметр path определяет имя файла или директории, которая будет создаваться в томе.
resourceFieldRef определяет, что мы будем получать информацию о запросах и лимитах ресурсов контейнера. Напомню, что в поде может быть несколько контейнеров, поэтому необходимо явно указать имя контейнера. Дальше указываем какой ресурс необходимо получить (resource). Если необходимо, указываем множитель (divisor: 1m). Значение по умолчанию у множителя = 1.
В случае annotations, labels и name, все эти данные берутся из раздела metadata. Какой конкретно ресурс требуется получить, определяется при помощи параметра fieldPath.
Volume к контейнеру подключается стандартный способом.