hostPath

Используется, когда необходимо предоставить доступ к локальной файловой системе. Например, к логам приложений в /var/log. Не поддерживают управление правами доступа или перемаркировку SELinux.

Файлы на хостах доступны для записи только подам, запущенным с правами пользователя root. Если контейнер будет запускаться с правами другого пользователя, вы должны заранее позаботиться об установке необходимых прав на файл или директории.

Если в кубернетес добавляется планирование с учетом ресурсов, volumes типа hostPath не учитываются в таком планировании.

Ссылка на API.

Параметры:

  • path – путь к файлу (директории) на сервере.
  • Type – тип подключения.

Некоторые значения параметра type:

  • DirectoryOrCreate — Если по данному пути ничего не существует, при необходимости будет создан пустой каталог с разрешением 0755, имеющим ту же группу и владельца, что и Kubelet.
  • Directory — Каталог должен существовать по указанному пути.
  • FileOrCreate — Если по указанному пути ничего не существует, при необходимости будет создан пустой файл с разрешением 0644, имеющим ту же группу и владельца, что и Kubelet.
  • File — Файл должен существовать.

Необходимо учитывать, что в случае DirectoryOrCreate и FileOrCreate, должны существовать все директории, указанные в пути к конечному файлу.

Пример подключения volume типа hostPath.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: openresty
  namespace: volumes-sample
  labels:
    app: openresty
spec:
  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
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
        volumeMounts:
          - name: logs-volume
            mountPath: /host_logs
            readOnly: true
      volumes:
        - name: logs-volume
          hostPath:
            path: /var/log
            type: Directory

В данном примере том подключается в режиме «только для чтения». Режим определяется параметром readOnly.