Andrey
"кубер решит ваши проблемы" но знать, как ACL в линуксе работает, всё-таки надо
Sergei
дефолтный постгрес чмодит всё что нужно ему перед запуском:
https://github.com/docker-library/postgres/blob/eff90effc6b5578be90bef93d96b3fceb1082a7c/10/docker-entrypoint.sh#L34
Anonymous
Oleg
контейнера
Anonymous
контейнера
А вы подмаунтили директорию к pv?
Oleg
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: postgres-pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 3Gi
storageClassName: "standart"
hostPath:
path: {{ .Values.persistence.mountPath }}/pg
type: DirectoryOrCreate
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: postgres-pvc
spec:
volumeName: postgres-pv
storageClassName: "standart"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
Oleg
в деплое
volumeMounts:
- name: postgres-volume-mount
mountPath: /var/lib/postgresql/data
Oleg
volumes:
- name: postgres-volume-mount
persistentVolumeClaim:
claimName: postgres-pvc
Oleg
все стандартно вроде
Valerii
Коллеги, а если у Deployment стоит imagePullPolicy: Always, образ в реестре обновили, то kubectl apply -f yaml же не заставит Deployment этот образ выкачать, т.к. сам yaml не поменялся? Как заставить его вытянуть новый образ?
Oleg
что-то многовато заморочек у minikube и hostPath
Anonymous
Oleg
промазал с пробелами, поэтому по факту маунт не происходил
Oleg
сейчас происходит, вернулся к исходной проблеме с правами. То есть pv или сразу hostPath значение не имеет
Oleg
В общем оставил пока файло pg внутри minikube - все работает. С подмаунченными папками из хоста именно для для pgdata не решил, из других контейнеров запись в hostPath идет ОК. chown 999:999 и прочее не помогает.
Sergei
а никто не сталкивался с такой смешной проблемой? вот есть у меня rook, отдаю вольюм postgres'у, а он ругается что директория которую ему дали не пустая. а там директория lost+found 🙂 ось на нодах centos7, может в ней как-то можно отключить создание этой директории при создании файловой системы?
Sergei
Sergei
https://hub.docker.com/_/postgres/
The default is /var/lib/postgresql/data, but if the data volume you're using is a fs mountpoint (like with GCE persistent disks), Postgres initdb recommends a subdirectory (for example /var/lib/postgresql/data/pgdata ) be created to contain the data.
Andrey
Sergei
Andrey
и дальше что
Sergei
контейнеры почти всегда стартуют от рута, понижаются привилегии после.
Andrey
энтрипоинт от кого запускается?
Sergei
энтрипоинт от кого запускается?
очевидно это конфигурабл. об этом по моей ссылке внезапно написано на 31-32-й строке.
и если контейнер может, то он поправит себе права на нужные директории. может или нет - зависит от того, как именно вы запустили контейнер.
Nikolay
вообще, можно запустить init container с busybox, который выставит нужные права на папку, ему тоже нужно будет примонтировать pvc
Andrey
Oleg
initdb: could not create directory "/var/lib/postgresql/data/pgdata/pg_wal": Permission denied
Sergei
Andrey
вообще я подозреваю что он не стандартный образ использует
Andrey
или вообще не в контейнере
Andrey
> fixing permissions on existing directory /home/olegsmetanin/urhome/pgdata ... ok
Andrey
Andrey
ты явно что-то не то делаешь
Dmitryi
Подскажите как лучше быть. Есть кластер в AWS и в нем есть Ingress. Как лучше или как будет практичнее, выводить Ingress через Service с типо LoadBalancer или запускать Ingress через DaemonSet и потом на него натравить TCP LB ?
Andrey
первое более распространено
Anonymous
╋VX,QQ(同号):253239090 专业工作室推广拉人【电报群拉国内外有无username都可拉、指定群拉人】【机器人定制】【社群代运营】【twitter关注、转发】【facebook关注、转发】【youtube点赞、评论】【出售成品电报账号】 (欢迎社群运营者、项目方、交易所洽谈合作)优质空投分享QQ群473157472 本工作室全网最低价、服务最好、活人质量最高 招收代理
Anonymous
We can ADD 1000+ 10000+ or ANY NUMBER REAL and ACTIVE MEMBERS for your TELEGRAM GROUPS-LEAVE NO JOIN ALERTS,QUALITY&QUANTITY GUARANTEED,DEMO AVAILABLE.We also provide READY-MADE TELEGRAM ACCOUNTS and BROADCASTING SERVICE now you read.(To get our sevice or more details,please pm at smartworkshop via telegram directly,or write Email to stockcraft at hotmail.com.We focus on all you needs in telegram.)
Alexander
Anonymous
/report
Stanislav
/report
Sergei
/photo_debilnih_ptic
Anton
Anton
Ребят, теперь можно репортить по райтклику)
Logan
/zapustenie_i_upadok
Logan
а вообще не понятно как с такими боротся
Andor
У меня в телефоне нет райтклика
Logan
у них классная фишка – такой человек цепляется к чату и молчит
Logan
Alexander
у тебя неправильные пчелы, у меня тоже нет такой опции
Sergei
Logan
заколебали уже
Stanislav
/nu_poklikajte_ewe
Andor
Sergey
/photo_debilnih_ptic
Logan
Denis
/photo_debilnih_ptic
Denis
Черт)
Dmitryi
/photo_debilnih_ptic
Andor
/photo_debilnih_ptic
Andor
Поддержал чем мог!
Driver
снова началось?
Denis
/photo_debilnih_ptic
Denis
Oleg
ты явно что-то не то делаешь
У меня работающая кофигурация от неработающей отличается только одной строчкой
kind: PersistentVolume
apiVersion: v1
metadata:
name: postgres-pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 3Gi
storageClassName: "standart"
hostPath:
# here!
# store in shared folder - not working
#path: {{ .Values.persistence.mountPath }}/pg
# store in minikube - working
path: /data/pg/
type: DirectoryOrCreate
Если pv в minikube - то работает, если pv в папке расшариваемой то нет.
И это чисто проблема с правами в postgres. Другие контейнеры спокойно маунтятся и пишут файло в расшириваемую папку.
Andrey
это вольюм
Andrey
я про деплой говорю
Andrey
мне интересно, какой образ ты запускаешь
Andrey
и от какого пользователя
Oleg
postgres:10
Andrey
а пользователь?
Andrey
если не указываешь, то запускается от рута, так как в Dockerfile директивы USER нет
Andrey
Oleg
А тот лог был от просто postgres без версии
Andrey
в час по чайной ложке я готов выпытывать подробности только за деньги. Не можешь деплой файл показать, иди сам решай свои проблемы
Oleg
fixing permissions on existing directory /var/lib/postgresql/data ... ok
initdb: could not create directory "/var/lib/postgresql/data/pg_wal": Permission denied
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "fullname" . }}
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
selector:
matchLabels:
app: {{ template "name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "name" . }}
release: {{ .Release.Name }}
spec:
hostname: {{ template "name" . }}
containers:
# Postgres
- name: {{ template "fullname" . }}postgres
image: postgres:10
ports:
- name: postgresql
containerPort: 5432
protocol: TCP
envFrom:
- configMapRef:
name: {{ template "fullname" . }}
volumeMounts:
- name: postgres-volume-mount
mountPath: /var/lib/postgresql/data
# Volumes
volumes:
- name: postgres-volume-mount
persistentVolumeClaim:
claimName: postgres-pvc