Ory Kratos 无法使用 Helm 在 Kubernetes 上启动

问题描述 投票:0回答:1

每当我尝试在 Kubernetes 上使用 Helm 安装 Ory Kratos 时,它都不起作用。

这是我的 values.yaml 文件

kratos:
  config:
    dsn: postgres://admin:[email protected]:5432/postgres_db
    secrets:
      cookie:
        - randomsecret
      cipher:
        - randomsecret
      default:
        - randomsecret
      
    identity:
      default_schema_id: default
      schemas:
        - id: default
          url: file:///etc/config/identity.default.schema.json
    courier:
      smtp:
        connection_uri: smtps://username:[email protected]
        
    selfservice:
      default_browser_return_url: http://127.0.0.1:4455/
  automigration:
    enabled: true
  identitySchemas:
    'identity.default.schema.json': |
      {
        "$id": "https://schemas.ory.sh/presets/kratos/identity.email.schema.json",
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Person",
        "type": "object",
        "properties": {
          "traits": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "format": "email",
                "title": "E-Mail",
                "ory.sh/kratos": {
                  "credentials": {
                    "password": {
                      "identifier": true
                    }
                  },
                  "recovery": {
                    "via": "email"
                  },
                  "verification": {
                    "via": "email"
                  }
                }
              }
            },
            "required": [
              "email"
            ],
            "additionalProperties": false
          }
        }
      }

我输入命令 $helm install kratos -f values.yaml ory/kratos。它暂停了一会儿,然后输出 错误:安装失败:预安装失败:等待条件超时

然后它创建一个重复创建 kratos-automigrate pod 的作业,该 pod 在几分钟内崩溃,状态为“错误”并创建一个新的 pod。

kubernetes kubernetes-helm ory
1个回答
0
投票

我在将 Ory Kratos 部署到 Minikube 实例时遇到了同样的问题,并发现它与 Kratos 脚本无法连接或到达

kratos.config.dsn
中定义的数据库有关。

time=2023-03-03T21:53:26Z level=warning msg=Unable to ping database, retrying. audience=application error=map[message:failed to connect to `host=127.0.0.1 user=foo database=db`: dial error (dial tcp 127.0.0.1:5432: connect: connection refused)

由于在我的例子中 127.0.0.1 解析为容器 IP 而不是主机上的本地实例,因此无法完成此先决条件步骤。更改我机器的主机名后,它能够解析地址并连接到数据库(Postgresql)。

kratos:
  config:
    dsn: postgres://foo:bar@resovable-address-here:5432/db
...

在 mdaniel 建议使用

kubectl logs
检查 pod 的输出后发现了这一点。

© www.soinside.com 2019 - 2024. All rights reserved.