Связь между заявкой на объем redis / postgres и конфигурацией приложения - PullRequest
0 голосов
/ 06 марта 2020

Я бы запустил Redis для кеширования с отдельным Pod в k8s, используя https://github.com/helm/charts/tree/master/stable/redis chart.

Так что Redis управляет PV C и использует для сохранения и, по моему мнению, мое приложение pod в идеале должен подключаться только к Redis как сервису. Итак, этого хоста: порта должно быть достаточно, насколько я могу подумать .. Эта ситуация такая же, как и для любой базы данных.

Поэтому я сомневаюсь, должен ли я делать какие-либо дополнительные настройки в yaml приложения для тома, который связан с с Redis или PostgreSQL? Я имею в виду, должен ли модуль приложения монтировать его также? Как обычно используются следующие рекомендации по подключению redis или базы данных из модуля приложения?

т.е. части конфигурации в redis для тома

   enabled: true
    path: /data
    subPath: ""
    accessModes:
    - ReadWriteOnce
    size: 8Gi
    matchLabels: {}
    matchExpressions: {}

Развертывание приложения. Yaml

env:     
      - name: REDIS_HOST
        value: redis-master
      - name: REDIS_PORT
        value: "6379"




- name: POSTGRES_HOST
              valueFrom:
                configMapKeyRef:
                  name: {{ .Release.Name }}-config
                  key: POSTGRES_HOST
            - name: POSTGRES_PORT
              valueFrom:
                configMapKeyRef:
                  name: {{ .Release.Name }}-config
                  key: POSTGRES_PORT
            - name: POSTGRES_DB
              valueFrom:
                configMapKeyRef:
                  name: {{ .Release.Name }}-config
                  key: POSTGRES_DB

1 Ответ

1 голос
/ 06 марта 2020

Насколько я понимаю, я думаю, что в вашем случае вы должны настроить PVC / PV. Правильно настроить PV C непосредственно в определении развертывания:

Пример для redis, создание PV C (только если вы включили подготовку Dynami c):

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: your-mysql-pv-claim
  labels:
    app: redis
spec:
  storageClassName: your-storage-class
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 8Gi

В файле конфигурации развертывания Redis в разделе спецификации добавьте следующие строки:

  volumes:
  - name: your-mysql-persistent-storage
    persistentVolumeClaim:
      claimName: your-mysql-pv-claim

Те же шаги, которые вы должны выполнить для последующей обработки. Не забудьте проверить, есть ли у вас класс хранения. В противном случае вам придется сделать это вручную. Также не забудьте определить путь, где должен быть установлен указанный c том.

Предоставление хранилища в облаке:

Stati c

Администратор кластера создает несколько PV , Они несут информацию о реальном хранилище, которое доступно для использования пользователями кластера. Они существуют в API Kubernetes и доступны для потребления.

Dynami c

Когда ни один из стати c PV, созданных администратором, не соответствует PersistentVolumeClaim пользователя кластер может попытаться динамически подготовить том специально для PV C. Эта подготовка основана на классах хранения: PV C должен запросить класс хранения, и администратор должен создать и настроить этот класс для обеспечения динамической подготовки. Утверждения, которые запрашивают у класса "", эффективно отключают динамическую c подготовку для себя.

Чтобы включить динамическую c подготовку хранения на основе класса хранения, администратору кластера необходимо включить контроллер доступа DefaultStorageClass на сервере API , Это можно сделать, например, гарантируя, что DefaultStorageClass входит в упорядоченный список значений, разделенных запятыми, для флага --enable-admission-plugins серверного компонента API. Для получения дополнительной информации о флагах командной строки сервера API см. Документацию kube-apiserver.

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

Более подробную информацию вы можете найти здесь: pv c, pv c -kubernetes , pv c -kubernetes-pod .

...