首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:致命: Minikube中的用户“用户名”密码验证失败

:致命: Minikube中的用户“用户名”密码验证失败
EN

Stack Overflow用户
提问于 2021-05-14 11:52:34
回答 1查看 392关注 0票数 0

我正在开发一个多容器Flask应用程序,它涉及一个Web容器(Flask应用程序)、Postgres容器(用于DB服务)和一个Redis容器(用于缓存服务)。

网络应用程序有web_deployment.yamlweb_service.yaml文件。Postgres应用程序有postgres_deployment.yamlpostgres_service.yaml文件。Redis应用程序有redis_deployment.yamlredis_service.yaml文件。

我的web_deployment.yaml文件如下所示:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        component: my-web-app
    spec:
      containers:
      - name: my-web-app-container
        image: web_app_image:latest
        ports:
        - containerPort: 80
        env:
          - name: REDIS_HOST
            value: redis-service
          - name: REDIS_PORT
            value: '6379'
          - name: POSTGRES_USER
            value: username
          - name: POSTGRES_HOST
            value: postgres-service
          - name: POSTGRES_PORT
            value: '5432'
          - name: POSTGRES_DB
            value: postgres_db
          - name: PGPASSWORD
            valueFrom:
              secretKeyRef:
                name: pgpassword
                key: PGPASSWORD
  selector:
    matchLabels:
      component: my-web-app

postgres_deployment.yaml文件如下所示:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment 
metadata:
  name: postgres-deployment 
spec: 
  replicas: 1 
  selector:
    matchLabels:
      component: postgres 
  template:
    metadata:
      labels:
        component: postgres
    spec: 
      volumes: 
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: database-persistent-volume-claim 
      containers:
        - name: postgres
          image: postgres:12-alpine
          ports:
            - containerPort: 5432
          volumeMounts: 
            - name: postgres-storage
              mountPath: /var/lib/postgresql/data 
              subPath: postgres
          env:
            - name: POSTGRES_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: pgpassword
                  key: PGPASSWORD

在尝试与postgres容器建立web容器的连接时,我遇到了以下问题:

代码语言:javascript
复制
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
    raise exception
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 599, in __connect
    connection = pool._invoke_creator(self)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/create.py", line 578, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 584, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.8/site-packages/psycopg2/__init__.py", line 127, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)

psycopg2.OperationalError: FATAL:  password authentication failed for user "username"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-14 11:52:34

我成功地修好了它!

错误是,我刚才在posgres_deployment.yaml文件中提到了密码,但我也应该提到数据库名和用户名,web_deployment.yaml试图使用它们来访问这个db服务。

现在,更正后的新postgres_deployment.yaml文件如下所示:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment 
metadata:
  name: postgres-deployment 
spec: 
  replicas: 1 
  selector:
    matchLabels:
      component: postgres 
  template:
    metadata:
      labels:
        component: postgres
    spec: 
      volumes: 
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: database-persistent-volume-claim 
      containers:
        - name: postgres
          image: postgres:12-alpine
          ports:
            - containerPort: 5432
          volumeMounts: 
            - name: postgres-storage
              mountPath: /var/lib/postgresql/data 
              subPath: postgres
          env:
            - name: POSTGRES_USER
              value: username
            - name: POSTGRES_DB
              value: postgres_db
            - name: POSTGRES_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: pgpassword
                  key: PGPASSWORD
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67533890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档