Csi-livenessprobe#

Csi-livenessprobe – вспомогательный контейнер (sidecar), отслеживающий работоспособность драйвера CSI. Он сообщает об этом DropApp Plus через механизм проверки работоспособности, который использует kubelet, предоставляя конечную точку HTTP/healthz, перехватывающую livenessProbe kubelet.

Последовательность выполнения#

Для проверки работоспособности драйвера CSI сsi-livenessprobe используется вызов метода Probe().

Рекомендуемые флаги приведены в таблице:

Синтаксис флага

Значение

--csi-address <path to CSI socket>

Флаг, с помощью которого указывается путь к сокету драйвера CSI (<path to CSI socket>) внутри pod, который контейнер будет использовать для выполнения операций CSI (по умолчанию /run/csi/socket)

--health-port <number>

Флаг, с помощью которого указывается TCP-порт (<number>) для прослушивания запросов healthz (по умолчанию 9808)

--probe-timeout <duration>

Флаг, с помощью которого указывается продолжительность одного вызова Probe() (по умолчанию 1 с)

--metrics-address <port>

Флаг, с помощью которого указывается TCP-порт, на котором будет прослушиваться конечная точка метрик Prometheus (например, 8080). По умолчанию используется пустая строка. Это означает, что конечная точка метрики отключена

--metrics-path <path>

Флаг, с помощью которого указывается HTTP-путь, по которому будут доступны метрики Prometheus (по умолчанию /metrics)

--http-endpoint <endpoint>

Флаг, с помощью которого указывается TCP-адрес сети, по которому расположен HTTP-сервер, где содержится информация о проверках работоспособности драйвера CSI и го показателях. По умолчанию используется пустая строка, которая означает, что сервер отключен

Также поддерживаются все флаги журналирования инструментов glog и klog (например, -v <log-level>, где <log-level> – уровень журнала).

Запуск контейнера осуществляется с использованием манифеста hostpath-with-livenessprobe.yaml:

kind: Pod
spec:
 containers:
# Container with CSI driver
 - name: hostpath-driver
    image: quay.io/k8scsi/hostpathplugin:v0.2.0
    # Defining port which will be used to GET plugin health status
    # 9808 is default, but can be changed.
    ports:
 - containerPort: 9808
      name: healthz
      protocol: TCP
    # The probe
    livenessProbe:
 failureThreshold: 5
      httpGet:
 path: /healthz
        port: healthz
      initialDelaySeconds: 10
      timeoutSeconds: 3
      periodSeconds: 2
    volumeMounts:
 - mountPath: /csi
      name: socket-dir
  # ...
  # The liveness probe sidecar container
 - name: liveness-probe
    imagePullPolicy: Always
    image: registry.k8s.io/sig-storage/livenessprobe:v2.7.0
    args:
 - --csi-address=/csi/csi.sock
    volumeMounts:
 - mountPath: /csi
      name: socket-dir
    # ...

Сsi-livenessprobe предоставляет только конечную точку HTTP и не содержит раздела livenessProbe. livenessProbe установлен в контейнере с драйвером CSI, что обеспечивает перезапуск контейнера драйвера в случае сбоя проверки.

Результат#

Csi-livenessprobe настроен и готов к использованию.