У меня есть кластер Azure Container Service (aks). Он переведен на версию 1.8.1. Я пытаюсь развернуть базу данных postgres и использовать AzureFileVolume
для сохранения данных postgres.
По умолчанию, если я развертываю базу данных postgres без монтирования тома, все работает как исключено, т.е. создается модуль и инициализируется база данных.
Когда я пытаюсь смонтировать том с помощью приведенного ниже yaml, я получаю initdb: не удалось получить доступ к каталогу «/ var / lib / postgresql / data»: в разрешении отказано.
Я пробовал различные приемы, предложенные в этом длинном потоке github, например: установка контекста безопасности для pod или запущенные команды chown в initContainers. Результат был тот же - в разрешении отказано.
Любые идеи поощряются.
apiVersion: v1
kind: Service
metadata:
labels:
app: myapp
component: test-db
name: test-db
spec:
ports:
- port: 5432
selector:
app: myapp
component: test-db
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: test-db
spec:
template:
metadata:
labels:
app: myapp
component: test-db
spec:
securityContext:
fsGroup: 999
runAsUser: 999
containers:
- name: test-db
image: postgres:latest
securityContext:
allowPrivilegeEscalation: false
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: myappdb
- name: POSTGRES_USER
value: myappdbuser
- name: POSTGRES_PASSWORD
value: qwerty1234
volumeMounts:
- name: azure
mountPath: /var/lib/postgresql/data
volumes:
- name: azure
azureFile:
secretName: azure-secret
shareName: acishare
readOnly: false
runAsUser: 999
, но помните, что все тома Docker будут смонтированы как root. Это может привести к проблемам с разрешениями. Кроме того, я заметил, что кубернеты иногда перемонтируют том, поэтому начальногоchmod
может быть недостаточно. - person user3151902   schedule 08.11.2017