按照下面keydropeat文档站点上的说明,我正在尝试将keydropeat设置为在Kubernetes集群中运行。我设置了一个入口控制器,它成功地用于一个简单的测试页面。Cloudflare将域指向入口控制器IP。
Keyclope成功部署(管理控制台正在侦听http://127.0.0.1:9990但当我进入域名时,我从NGINX收到一条消息:503服务暂时不可用。
https://www.keycloak.org/getting-started/getting-started-kube
这是库伯内特斯配置:
apiVersion: v1
kind: Service
metadata:
name: keycloak-cip
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8080
selector:
name: keycloak
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
kubernetes.io/ingress.class: nginx
service.beta.kubernetes.io/linode-loadbalancer-default-protocol: https
service.beta.kubernetes.io/linode-loadbalancer-port-443: '{ "tls-secret-name": "my-secret", "protocol": "https" }'
spec:
rules:
- host: my.domain.com
http:
paths:
- backend:
serviceName: keycloak-cip
servicePort: 8080
tls:
- hosts:
- my.domain.com
secretName: my-secret
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: keycloak
namespace: default
labels:
app: keycloak
spec:
replicas: 1
selector:
matchLabels:
app: keycloak
template:
metadata:
labels:
app: keycloak
spec:
containers:
- name: keycloak
image: quay.io/keycloak/keycloak:12.0.3
env:
- name: KEYCLOAK_USER
value: "admin"
- name: KEYCLOAK_PASSWORD
value: "admin"
- name: PROXY_ADDRESS_FORWARDING
value: "true"
ports:
- name: http
containerPort: 8080
- name: https
containerPort: 8443
readinessProbe:
httpGet:
path: /auth/realms/master
port: 8080
initialDelaySeconds: 90
periodSeconds: 5
failureThreshold: 30
successThreshold: 1
revisionHistoryLimit: 1
编辑:
TLS应由入口控制器处理。
--
编辑2:
如果我使用kubectl exec进入控制器,我可以执行curl-Lhttp://127.0.0.1:8080/auth
成功检索页面:
如果我改用ClusterIP,但保持上述调用不变,我会得到
连接超时
。我尝试了端口80和8080,结果相同。
你好,你有没有尝试添加这一行:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
您的配置文件中似乎缺少该文件,导致503错误,请检查此文件以获取有关K8s配置的更多输入。
需要以下配置才能在入口控制器后运行Keyclope:
- name: PROXY_ADDRESS_FORWARDING
value: "true"
- name: KEYCLOAK_HOSTNAME
value: "my.domain.com"
因此,我认为添加正确的keydropage\u主机名值应该可以解决您的问题。
我对Traefik Ingress Controller也有类似的问题:无法在带有Traefik Ingress Controller和AWS HTTPS负载平衡器的AWS上公开Keyclope服务器
您可以在此处找到我的配置的完整代码:https://github.com/skyglass-examples/user-management-keycloak
我有一个springcloudmicroservices项目,它使用springcloudconfig服务器管理配置,使用Eureka服务器进行服务发现。 我的应用程序一直做得很好,直到我想添加一个新的带有键斗篷的微服务。这个新的微服务只是我的Vue前端应用程序的一个Rest应用编程接口,用户管理预计将由KeyCloak处理。 新服务运行正常,并将其自身注册到Eureka,直到我将KeyClope
我正在开发一个连接到java(Spring框架)后端的角webapp。身份验证是通过密钥斗篷服务器完成的。 在我的带有嵌入式tomcat服务器的本地机器上,angular应用程序和spring应用程序运行正常。 对于部署,我需要使用传统的方式,使用现有的tomcat服务器。 角度前端在根目录中通过http://myurl/spring后端作为war文件放置,可以通过http://myurl/api
我用这个例子:https://github.com/foo4u/keycloak-spring-demo 我有钥匙斗篷。json文件在我的WEB-INF文件夹中,但当我运行应用程序时,会出现以下异常: 此异常的完整堆栈: 这段代码只是Spring Boot和KeyCloak集成的一个例子。 你能告诉我我做错了什么吗? 谢谢你的回答和时间。
我正在我的应用程序(app1)中使用KeyClope(版本8.0.1)作为身份代理。在我的应用程序中,用户可以使用外部idp(谷歌、fb)或从我们的登录页面进行签名。现在,我设置了另一个keyclope实例,并使用OIDC将其配置为IDP。它工作得很好。 如果用户已准备就绪,请登录外部idp(谷歌、fb),并从app2的网页上单击我的应用程序(app1)。有没有办法,我可以自动让用户进入,而不是将
我在windows 10中创建了两个在我的minikube环境中运行的POD。一个POD带有Spring boot应用程序容器,另一个POD带有mysql容器。对于Spring boot应用程序,服务类型为nodePort,对于MYSQL pod,服务类型为club sterIP。这意味着Mysql pod只需要在集群内部进行通信。但是对于Spring boot应用程序,需要从浏览器访问,所以我配