zoukankan      html  css  js  c++  java
  • 使用kube_ping进行Keycloak群集设置

    转自:https://www.jdon.com/51501

    看看如何使用kube_ping和Keycloak实现自动发现?

    Keycloak是一个开源软件,提供身份管理和访问管理的单点登录。Keycoak使用不同类型的ping来发现群集的其他成员。我们将使用kube_ping作为发现(JGROUPS_DISCOVERY_PROTOCOL)。

    kube_ping如何运作

    假设我们在默认的命名空间中在Kubernetes中启动了3个pod的集群。当发现开始时,kube_ping要求提供来自Kubernetes的所有pod的IP地址列表。

    Kubernetes返回IP地址列表。kube_ping使用IP地址和端口范围向成员发送发现请求。

    先决条件:

    1.工作Kubernetes集群

    2.正在运行的MySQL实例。

    在K8s群集中创建部署对象

    apiVersion: v1
    items:
    - apiVersion: extensions/v1beta1
      kind: Deployment
      spec:
        replicas: 3
        template:
           metadata:
             labels:
               app: keycloak
               name: keycloak
           spec:
            containers:
            - env:
              - name: KEYCLOAK_HOSTNAME
                value: {{keycloak host name}}
              - name: KEYCLOAK_LOGLEVEL
                value: DEBUG
              - name: ROOT_LOGLEVEL
                value: DEBUG
              - name: KEYCLOAK_USER
                value: {{keyclock admin user}}
              - name: DB_VENDOR
                value: mysql
              - name: DB_ADDR
                value: {{mysql host}}
              - name: DB_USER
                value: {{mysql user}}
              - name: DB_PASSWORD
                value: {{mysql password}}
              - name: JGROUPS_DISCOVERY_PROTOCOL
                value: kubernetes.KUBE_PING
              - name: JGROUPS_DISCOVERY_PROPERTIES
                value: port_range=0,dump_requests=true
              - name: connectTimeout
                value: "600000"
              - name: KEYCLOAK_PASSWORD
                value: {{keyclock admin password}}
              - name: remoteTimeout
                value: "600000"
              image: jboss/keycloak:4.5.0
              imagePullPolicy: Never
              name: keycloak
              ports:
              - containerPort: 8080
                name: http
                protocol: TCP
              - containerPort: 8443
                name: https
                protocol: TCP
    

    在K8s集群中创建服务对象:

    apiVersion: v1
    kind: Service
    metadata:
      name: keycloak
      labels:
        app: keycloak
        name: keycloak
    spec:
      type: NodePort
      ports:
        - name: http
          protocol: TCP
          port: 8080
          nodePort: 30000
      selector:
        app: keycloak
        name: keycloak
    

    这将创建Keycloak的端点。现在,Keycloak管理控制台将在http:// {{hostip}}:30000上提供。

    说明: kube_ping 实际上是一个基于jgroups 开发的一个扩展,主要是方便k8s 集群内部jgroups 的使用

    ,更多的是方便jboss 系列基于jgroups 的应用软件在k8s 中的部署

  • 相关阅读:
    介绍我的一位同事的开源RSS阅读器
    开源协议概谈[转载]
    编译错误CS1595
    JAVA和C#,武当和少林之争!
    IBatisNet之获取和操作SQL语句
    Linux能否靠架构取得胜利
    开源CMS Alfresco 1.0 发布
    在asp.net页面上得到Castle容器的实例
    IBatisNet 之 自动生成主关键字
    onvaluechange事件
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10335436.html
Copyright © 2011-2022 走看看