Kubernetes中导出/导入Keycloak数据的最佳实践

nle07wnf  于 2023-01-12  发布在  Kubernetes
关注(0)|答案(2)|浏览(320)

我试图弄清楚,什么是导入/导出K8S keycloak(版本3.3.0.CR1)的最佳实践。这里是keycloak官方页面import/export的解释,他们的例子导出到一个文件json。转到/keycloak/bin文件夹,并运行此:

./standalone.sh -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=keycloak-export.json

我登录pod,运行以下命令后出现错误:

12:23:32,045 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("core-service" => "management"),
    ("management-interface" => "http-interface")
]) - failure description: {
    "WFLYCTL0080: Failed services" => {"org.wildfly.management.http.extensible" => "java.net.BindException: Address already in use /127.0.0.1:9990"},
    "WFLYCTL0288: One or more services were unable to start due to one or more indirect dependencies not being available." => {
        "Services that were unable to start:" => ["org.wildfly.management.http.extensible.shutdown"],
        "Services that may be the cause:" => ["jboss.remoting.remotingConnectorInfoService.http-remoting-connector"]
    }
}

正如我所看到的,Keycloak服务器运行在相同的端口,我运行备份脚本。这里helm/keycloak values.yml:

Service:
  Name: keycloak
  Port: 8080
  Type: ClusterIP

Deployment:
  Image: jboss/keycloak
  ImageTag: 2.5.1.Final
  ImagePullPolicy: IfNotPresent
  ContainerPort: 8080
  KeycloakUser: Admin
  KeycloakPassword: Admin

那么,在我们运行这个脚本之前,服务器应该停止吗?我不能停止pod内部的keycloak进程,因为入口会关闭pod并创建一个新的。对于导出/导入(备份/恢复)数据的其他方法有什么建议吗?或者我错过了什么?
我甚至试过UI导入/导出。导出工作很好,我看到了所有的数据。但是导入工作了一半。他给我带来了所有的“客户端”,但没有我的“领域”和“用户联盟”。

0lvr5msh

0lvr5msh1#

基本上,你只需要在与你的主示例不同的端口上启动导出Keycloak示例,我刚才用了这样的东西:
bin/standalone.sh -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=keycloak-export.json -Djboss.http.port=8888 -Djboss.https.port=9999 -Djboss.management.http.port=7777
最重要的是所有的端口,如果你得到更多的错误信息,你可能需要添加更多的属性(grep port standalone/configuration/standalone.xml是你的朋友,找出属性名称),但最后,所有的错误信息停止,你看到这个消息:
09:15:26,550 INFO [org.keycloak.exportimport.singlefile.SingleFileExportProvider] (ServerService Thread Pool -- 52) Exporting model into file /opt/jboss/keycloak/keycloak-export.json [...] 09:15:29,565 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: Keycloak 3.2.0.Final (WildFly Core 2.0.10.Final) started in 12156ms - Started 444 of 818 services (558 services are lazy, passive or on-demand)
现在可以使用Ctrl-C停止服务器,退出容器,然后使用kubectl cp复制导出文件。

2izufjch

2izufjch2#

导出功能随Quarkus发行版更改。
参见Documentation
请注意,当启用InfinispanCache时,会出现一个错误。简言之,当尝试导出. Keycloak IssueBitnami Issue, with workaround时,缓存端口会被阻塞

相关问题