在 Docker 中使用 Postgres 在 HA 中部署 Keycloak 时出现问题
Posted
技术标签:
【中文标题】在 Docker 中使用 Postgres 在 HA 中部署 Keycloak 时出现问题【英文标题】:Problems deploying Keycloak in HA using Postgres in Docker 【发布时间】:2017-06-29 04:26:05 【问题描述】:我们按照本网站上的步骤进行操作:
http://blog.keycloak.org/2015/04/running-keycloak-cluster-with-docker.html
并使用以下命令部署 keycloak:
一、PostgreSQL数据库:
docker run --name postgres -e POSTGRES_DATABASE=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password -e POSTGRES_ROOT_PASSWORD=password -d postgres
然后,我们启动了 Keycloak 的第一个实例:
docker run -p 8080:8080 --name keycloak --link postgres:postgres -e POSTGRES_DATABASE=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password -d jboss/keycloak-ha-postgres
最后,我们启动了 Keycloak 的第二个实例:
docker run -p 8081:8080 --name keycloak2 --link postgres:postgres -e POSTGRES_DATABASE=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password -d jboss/keycloak-ha-postgres
当我们查看第二个实例的日志时,我们看到:
Received new cluster view for channel keycloak: [a0cc503233bf|0] (1) [a0cc503233bf]
Received new cluster view for channel server: [a0cc503233bf|0] (1) [a0cc503233bf]
Received new cluster view for channel web: [a0cc503233bf|0] (1) [a0cc503233bf]
Received new cluster view for channel hibernate: [a0cc503233bf|0] (1) [a0cc503233bf]
Received new cluster view for channel ejb: [a0cc503233bf|0] (1) [a0cc503233bf]
如您所见,仅检测到 1 个节点。
根据博客,我们将看到类似这样的内容(检测到 2 个节点):
Received new cluster view: [b5356f1050cc/keycloak|1] (2) [b5356f1050cc/keycloak, f25f922ce14d/keycloak]
我们还查看了 docker hub 上此图像 (jboss/keycloak-ha-postgres) https://hub.docker.com/r/jboss/keycloak-ha-postgres/ 上的 Readme,这与我们运行的步骤相同,但似乎没有任何东西可以让 Keycloak使用 postgres 从 HA 开始。
【问题讨论】:
检查这个:github.com/i6e/keycloak4cf/blob/master/README-more.md 【参考方案1】:根据有关集群的文档。 9.4 部分解释了如何配置多播。 实例使用它进行通信。
私人地址应该改变。
根据对 keycloak-ha-mysql 所做的操作。 https://github.com/Reposoft/keycloak-ha-kubernetes/blob/keycloak-ha-mysql/server-ha-mysql/jgroups-jdbc.xsl
您可以编辑standalone-ha.xml文件并将私有接口值设置为
<nic xmlns="urn:jboss:domain:4.0" name="eth0" />
【讨论】:
以上是关于在 Docker 中使用 Postgres 在 HA 中部署 Keycloak 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
Django 无法在 Docker 设置中连接到 Postgres
如何在 docker-compose 中访问 Postgres 数据库
无法在 docker-compose 中使用 Postgres DB - ECONNREFUSED
如何在Docker环境中启动时,如何从节点服务器连接到postgres