You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes部署Keycloak后浏览器访问出现Connection Refused问题求助

Keycloak Kubernetes部署连接拒绝问题排查与解决

以下是针对你遇到的Connection Refused错误的排查方向和解决方案:

1. 确认Ingress Controller已部署且正常运行

Ingress资源需要依赖Ingress Controller(如NGINX Ingress)才能生效,若集群未部署Controller,请求无法转发到Keycloak服务:

  • 检查Ingress Controller Pod状态:
    kubectl get pods -n ingress-nginx
    
  • 若没有Pod输出,先安装NGINX Ingress Controller:
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
    
  • 等待所有Pod进入Running状态后重试访问。

2. 检查Keycloak Pod与Service的状态

Ingress指向的Service若未绑定正常运行的Pod,请求会无响应:

  • 查看Keycloak Pod状态:
    kubectl get pods -l app=keycloak
    
    若Pod状态异常(如CrashLoopBackOff),通过日志排查启动问题:
    kubectl logs <你的keycloak-pod名称>
    
  • 验证Service关联的Endpoint是否有效:
    kubectl get endpoints keycloak
    
    若Endpoint列表为空,说明Deployment和Service的标签选择器不匹配,检查两者的selector字段是否一致。

3. 修复TLS证书配置

你的Ingress启用了TLS,但缺少对应证书Secret会导致Ingress Controller无法处理HTTPS请求:

  • 检查集群中是否存在对应域名的TLS Secret:
    kubectl get secret
    
  • 若没有,创建自签名测试证书:
    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=keycloak.192.168.49.2.nip.io"
    kubectl create secret tls keycloak-tls --key tls.key --cert tls.crt
    
  • 修改Ingress配置,添加secretName字段:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: keycloak
    spec:
      tls:
        - hosts:
          - keycloak.192.168.49.2.nip.io
          secretName: keycloak-tls # 新增该行
      rules:
      - host: keycloak.192.168.49.2.nip.io
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: keycloak
                port:
                  number: 8080
    
  • 更新Ingress:
    kubectl apply -f keycloak-ingress.yaml
    

4. 排查网络策略或防火墙限制

  • 检查是否有NetworkPolicy阻止Ingress Controller到Keycloak的流量:
    kubectl get networkpolicy
    
    若存在限制策略,需添加规则允许ingress-nginx命名空间访问Keycloak的8080端口。
  • 检查节点防火墙,确保80/443端口对外开放;若使用NodePort方式暴露Ingress,确认对应NodePort未被拦截。

5. 验证Ingress资源是否被正确识别

  • 查看Ingress的详细状态和事件:
    kubectl describe ingress keycloak
    
    检查Events字段,确认Ingress Controller成功加载配置,无报错信息。

内容的提问来源于stack exchange,提问作者Gayan Kodithuwakku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:05:37