使用Docker中的Postgres在HA中部署Keycloak的问题

时间:2017-02-10 18:02:20

标签: postgresql docker high-availability keycloak

我们按照本网站上的步骤进行操作:

http://blog.keycloak.org/2015/04/running-keycloak-cluster-with-docker.html

并使用以下命令部署keycloak:

首先,PostgreSQL数据库:

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

最后,我们开始了第二个Keycloak实例:

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]

当我们查看第二个实例的日志时,我们看到:

Received new cluster view: [b5356f1050cc/keycloak|1] (2) [b5356f1050cc/keycloak, f25f922ce14d/keycloak]

如您所见,检测到的节点只有1个。

根据博客,我们会看到类似的内容(检测到2个节点):

shinyApp(
            ui = fluidPage(
                    fluidRow(
                            column(12,
                                   dataTableOutput('table')
                            )
                    )
            ),
            server = function(input, output) {
                    test.table <- data.frame(lapply(1:8, function(x) {1:1000}))
                    test.table[c(2,3,7), c(2,7,6)] <- NA
                    id <- which(is.na(test.table))

                    output$table <- renderDataTable(
                            test.table,
                                      options = list(drawCallback=JS(
                                              paste("function(row, data) {",
                                                    paste(sapply(1:ncol(test.table),function(i)
                                                            paste( "$(this.api().cell(",id %% nrow(test.table)-1,",",trunc(id / nrow(test.table))+1,").node()).css({'background-color': 'lightblue'});")
                                                    ),collapse = "\n"),"}" ))
                                      ), server = FALSE)

            }
    )

我们还查看了此图片的docker hub上的自述文件(jboss / keycloak-ha-postgres)https://hub.docker.com/r/jboss/keycloak-ha-postgres/这些步骤与我们运行的步骤相同,但似乎没有任何结果使用postgres在HA中启动Keycloak。

1 个答案:

答案 0 :(得分:0)

根据有关群集的文档。 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" />