arghhh 2022-11-23 22:30:23 +1
Siema, mam kubernetesową zagwozdkę, z którą nie umiem sobie poradzić. Może ktoś ma wolną chwilę, żeby rzucić okiem i napisać, czego nie widzę (╯︵╰,)

Chciałbym postawić w statefulsecie bazę danych uruchomioną z obrazu mongo.
Ich dokumentacja (https://hub.docker.com/_/mongo) wskazuje następująco:
#v+
MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD

These variables, used in conjunction, create a new user and set that user's password. This user is created in the admin authentication database and given the role of root, which is a "superuser" role.
#v-

Więc dodałem do definicji kontenera w yamlu takie zmienne:
#v+
containers:
- name: mongo
image: mongo
ports:
- containerPort: 27017
volumeMounts:
- name: database-storage
mountPath: /data/db
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: admin
- name: MONGO_INITDB_ROOT_PASSWORD
value: pass
#v-

Po wywołaniu describe na uruchomionym podzie zmienne się pokazują:
#v+
mongo:
Container ID: docker://ef17595eb5da4f096eed09229dcd7426ae1401e9ed773c5e1ac99ff9045d2ecf
Image: mongo
Image ID: docker-pullable://mongo@sha256:8bed0be3e86595283d67836e8d4f3f08916184ea6f2aac7440bda496083ab0c8
Port: 27017/TCP
Host Port: 0/TCP
State: Running
Started: Wed, 23 Nov 2022 22:07:28 +0100
Ready: True
Restart Count: 0
Environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: pass
#v-

Natomiast uwierzytelnienie nie działa:
#v+
kc exec -ti pod/database-0 -- mongosh
Current Mongosh Log ID: 637e8c17aa828f64d211fcdb
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.0
Using MongoDB: 6.0.3
Using Mongosh: 1.6.0

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

test> use admin
switched to db admin
admin> db.auth('admin', 'pass')
MongoServerError: Authentication failed.
admin> db.auth(admin, pass)
ReferenceError: admin is not defined
admin>
#v-

Jeżeli ktoś dotrwał do końca to i tak dziękuję ( ͡° ͜ʖ ͡°) (na zdjęciu literalnie ja)

#devops #kubernetes #k8s #mongodb #docker
zamknij_morde_waski 2022-11-23 22:47:35 +1
@arghhh: Bazy danych w kubełkach to nie jest dobry pomysł.
arghhh [OP] 2022-11-23 22:49:27 +1
@zamknij_morde_waski: Dlaczego? :'D
Gennwat 2022-11-23 22:34:13 +0
[komentarz usunięty]
cabeiu 2022-11-23 22:39:23 +0
@arghhh: wrzuć te logi albo na pastebina, albo użyj opcji kod bo tak to średnio widać czy wszystko jest ok
arghhh [OP] 2022-11-23 22:49:14 +0
@cabeiu:

`
apiVersion: apps/v1
kind: StatefulSet
metadata:
creationTimestamp: null
labels:
app: database
name: database
spec:
serviceName: "database"
replicas: 1
selector:
matchLabels:
role: database
template:
metadata:
labels:
role: database
environment: test
spec:
terminationGracePeriodSeconds: 30
containers:
- name: mongo
image: mongo
ports:
- containerPort: 27017
volumeMounts:
- name: database-storage
mountPath: /data/db
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: admin
- name: MONGO_INITDB_ROOT_PASSWORD
value: pass
volumeClaimTemplates:
- metadata:
name: database-storage
annotations:
volume.beta.kubernetes.io/storage-class: "persistent"
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 2Gi
`

`
kc describe pod/database-0
Name: database-0
Namespace: proj
Priority: 0
Service Account: default
Node: minikube/192.168.59.100
Start Time: Wed, 23 Nov 2022 22:07:24 +0100
Labels: controller-revision-hash=database-5d9fdfcdf4
environment=test
role=database
statefulset.kubernetes.io/pod-name=database-0
Annotations:
Status: Running
IP: 172.17.0.7
IPs:
IP: 172.17.0.7
Controlled By: StatefulSet/database
Containers:
mongo:
Container ID: docker://ef17595eb5da4f096eed09229dcd7426ae1401e9ed773c5e1ac99ff9045d2ecf
Image: mongo
Image ID: docker-pullable://mongo@sha256:8bed0be3e86595283d67836e8d4f3f08916184ea6f2aac7440bda496083ab0c8
Port: 27017/TCP
Host Port: 0/TCP
State: Running
Started: Wed, 23 Nov 2022 22:07:28 +0100
Ready: True
Restart Count: 0
Environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: pass
Mounts:
/data/db from database-storage (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-5t2pz (ro)
`
arghhh [OP] 2022-11-23 22:51:04 +0
@arghhh: ale się z-----y taby :(
jmeta0 2022-11-23 23:37:58 +0
Uruchomiłeś może to mongo wczesniej bez tych envów i dodałeś je dopiero później? Może być tak że trzeba wywalić volume żeby został stworzony na nowo
arghhh [OP] 2022-11-24 00:29:51 +0
@jmeta0: meh, wywaliłem pv i nie pomogło
bruuh 2022-11-24 08:00:20 +0
@arghhh: no a co masz w logach po odpaleniu kontenera może hasło jest za krótkie i odmawia utworzenia usera? poza tym baza danych w k8s.. rób jak uważasz ale wyleczysz się z tego po pierwszej utracie danych ( ͡° ͜ʖ ͡°)