如何访问 keycloak.local 入口主机?

How to access the keycloak.local ingress host?

我刚刚使用官方 OperatorHub.io 指南安装了 keycloak kubernetes operator:https://operatorhub.io/operator/keycloak-operator

之后我按照官方的 keycloak 入门指南创建了一个操作员部署:https://www.keycloak.org/getting-started/getting-started-operator-kubernetes

我可以看到一切都按需要进行 pods,服务和入口正在运行,并在一小段时间后 运行。我不明白的是如何访问部署创建的入口,因为规范没有指定我的 kubernetes 集群的正常主机,而是:

spec:
  rules:
  - host: keycloak.local
    http:
      paths:
      - backend:
          serviceName: keycloak
          servicePort: 8443
        path: /
        pathType: ImplementationSpecific

我用的那个指南没有说明这个。 das keycloak.local 是什么意思,我该如何访问它?

编辑:我的 keycloak 配置如下所示:

apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
  labels:
    app: mykeycloak
  name: mykeycloak
  namespace: test
spec:
  externalAccess:
    enabled: true
  instances: 1
status:
  credentialSecret: credential-mykeycloak
  externalURL: https://keycloak.local
  internalURL: https://keycloak.test.svc:8443
  message: ""
  phase: reconciling
  ready: true
  secondaryResources:
    ConfigMap:
    - keycloak-probes
    Deployment:
    - keycloak-postgresql
    Ingress:
    - keycloak
    PersistentVolumeClaim:
    - keycloak-postgresql-claim
    Secret:
    - credential-mykeycloak
    - keycloak-db-secret
    Service:
    - keycloak-postgresql
    - keycloak
    - keycloak-discovery
    StatefulSet:
    - keycloak
  version: 14.0.0

您已在 Keycloak CRD 中配置了以下内容。

  externalAccess:
    enabled: true

这将创建一个您已经发布的 Ingress-Object。默认情况下,Keycloak Operator 使用 keycloak.local 作为 host.

的值

https://github.com/keycloak/keycloak-operator/blob/master/deploy/olm-catalog/keycloak-operator/12.0.1/keycloaks.keycloak.org.crd.yaml#L62

因此,如果您想将其更改为 keycloak.example.org,您必须将您的 Keycloak 定义编辑为:

  externalAccess:
    enabled: true
    host: keycloak.example.org

之后,您的 Ingress-Controller 将在您的请求中侦听此路径。

这应该可以回答您的第一个问题“keycloak.local 是什么意思”。

你的第二个问题,“我如何访问它”:

我假设您的系统上部署了 Ingress Controller。如果没有,请阅读主题 (https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)。

如果您已经部署了 Ingress-Controller,您应该能够通过定义的 host.

访问您的 Keycloak