高可用 Keycloak,K8s
发布日期:2021-05-20 15:04:17 浏览次数:29 分类:精选文章

本文共 2801 字,大约阅读时间需要 9 分钟。

高可用 Keycloak,K8s

使用 K8S 部署 Keycloak,使用 Mysql 做为外部存储工具。以实现 Keycloak 在生产环境中高可用。

目录

Keycloak K8s 配置文件

Keycloak 官方有一个 教程,可以看出官方教程只是简单的说了如何通过 K8s 部署服务。

修改官方提供的 yaml 文件

apiVersion: v1kind: Servicemetadata:  name: keycloak  labels:    app: keycloakspec:  ports:  - name: http    port: 8080    targetPort: 8080  selector:    app: keycloak  type: LoadBalancer---apiVersion: apps/v1kind: Deploymentmetadata:  name: keycloak  namespace: default  labels:    app: keycloakspec:  replicas: 1  selector:    matchLabels:      app: keycloak  template:    metadata:      labels:        app: keycloak    spec:      containers:      - name: keycloak        image: quay.io/keycloak/keycloak:13.0.0        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
  1. 修改镜像地址,原因是该镜像有较为清晰的

    image: jboss/keycloak:13.0.0
  2. 配置 Mysql 变量,在创建 keycloak Mysql 数据库时,注意,创建的数据库编码应为 utf8create schema keycloak character set utf8 collate utf8_unicode_ci;

    - name: DB_VENDOR   value: mysql - name: DB_ADDR   value: 10.0.5.213:3306 - name: DB_DATABASE   value: keycloak - name: DB_USER   value: root - name: DB_PASSWORD   value: 12345678

    改造后的 yaml 文件为:

    apiVersion: v1 kind: Service metadata: name: keycloak labels:     app: keycloak spec: ports: - name: http     port: 8080     targetPort: 8080 selector:     app: keycloak type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment metadata: name: keycloak labels:     app: keycloak spec: replicas: 2 selector:     matchLabels:     app: keycloak template:     metadata:     labels:         app: keycloak     spec:     containers:     - name: keycloak         image: jboss/keycloak:13.0.0         env:         - name: KEYCLOAK_USER         value: "admin"         - name: KEYCLOAK_PASSWORD         value: "admin"         - name: PROXY_ADDRESS_FORWARDING         value: "true"         - name: DB_VENDOR         value: mysql         - name: DB_ADDR         value: "127.0.0.1"         - name: DB_PORT         value: "3306"         - name: DB_DATABASE         value: keycloak         - name: DB_USER         value: "root"         - name: DB_PASSWORD         value: "123456"         ports:         - name: http         containerPort: 8080         - name: https         containerPort: 8443         readinessProbe:         httpGet:             path: /auth/realms/master             port: 8080
  3. 把 yaml 文件复制到服务器中,然后创建 kc 空间,命令如下 kubectl create ns kc,执行命令 kubectl apply -f keycloak.yaml -n kc以启动服务

  4. 访问 Keycloak 服务,127.0.0.1:8080

    点击 Administration Console,使用账号 admin、密码 admin登录

上一篇:JVM虚拟机-垃圾回收机制与垃圾收集器概述
下一篇:池,协程

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年05月18日 12时51分40秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章