使用kube_ping進行Keycloak群集設定 - DZone Cloud

banq發表於2019-01-17

看看如何使用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上提供。

相關文章