高可用 Keycloak,K8s

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

Keycloak K8s 配置文件

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

修改官方提供的 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
namespace: default
labels:
app: keycloak
spec:
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登录

高可用 Keycloak,K8s的更多相关文章

  1. kubernetes教程第一章-kubeadm高可用安装k8s集群

    目录 Kubeadm高可用安装k8s集群 kubeadm高可用安装1.18基本说明 k8s高可用架构解析 kubeadm基本环境配置 kubeadm基本组件安装 kubeadm集群初始化 高可用Mas ...

  2. 高可用的K8S集群部署方案

    涉及到的内容 LVS HAProxy Harbor etcd Kubernetes (Master Worker) 整体拓补图 以上是最小生产可用的整体拓补图(相关节点根据需要进行增加,但不能减少) ...

  3. kubernetes实战(二十七):CentOS 8 二进制 高可用 安装 k8s 1.16.x

    1. 基本说明 本文章将演示CentOS 8二进制方式安装高可用k8s 1.16.x,相对于其他版本,二进制安装方式并无太大区别.CentOS 8相对于CentOS 7操作更加方便,比如一些服务的关闭 ...

  4. kubernetes实战(三十):CentOS 8 二进制 高可用 安装 k8s 1.17.x

    1. 基本说明 本文章将演示CentOS 8二进制方式安装高可用k8s 1.17.x,相对于其他版本,二进制安装方式并无太大区别. 2. 基本环境配置 主机信息 192.168.1.19 k8s-ma ...

  5. Kubernetes实战指南(三十四): 高可用安装K8s集群1.20.x

    @ 目录 1. 安装说明 2. 节点规划 3. 基本配置 4. 内核配置 5. 基本组件安装 6. 高可用组件安装 7. 集群初始化 8. 高可用Master 9. 添加Node节点 10. Cali ...

  6. Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记

    目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...

  7. Kubernetes全栈架构师(二进制高可用安装k8s集群部署篇)--学习笔记

    目录 二进制高可用基本配置 二进制系统和内核升级 二进制基本组件安装 二进制生成证书详解 二进制高可用及etcd配置 二进制K8s组件配置 二进制使用Bootstrapping自动颁发证书 二进制No ...

  8. Kubernetes全栈架构师(二进制高可用安装k8s集群扩展篇)--学习笔记

    目录 二进制Metrics&Dashboard安装 二进制高可用集群可用性验证 生产环境k8s集群关键性配置 Bootstrapping: Kubelet启动过程 Bootstrapping: ...

  9. 【Containerd版】Kubeadm高可用安装K8s集群1.23+

    目录 基本环境配置 节点规划 网段规划及软件版本 基本配置 内核升级配置 K8s组件及Runtime安装 Containerd安装 K8s组件安装 高可用实现 集群初始化 Master01初始化 添加 ...

  10. K8S 使用Kubeadm搭建高可用Kubernetes(K8S)集群 - 证书有效期100年

    1.概述 Kubenetes集群的控制平面节点(即Master节点)由数据库服务(Etcd)+其他组件服务(Apiserver.Controller-manager.Scheduler...)组成. ...

随机推荐

  1. dij费用流/Johnson Reweighting

    dij费用流/Johnson Reweighting 我们一般敲的费用流都是套\(SPFA\)的\(dinic\),这是因为会有负边权,\(dij\)做不了,考虑能不能动点手脚使得我们的边权变成正的 ...

  2. NOI2024破防记/rain

    NOI 2024 预警:在本篇游记中,你将看到包括但不限于 诶我好高兴,诶我破防了,诶我好高兴,诶我破防了,诶我好高兴,诶我破防了,诶我好高兴,诶我破防了,诶我好高兴,诶我破防了,诶我好高兴,诶我破防 ...

  3. 启动HTTP代理服务器提示异常,target controller is configured to。。。

    启动HTTP代理服务器提示异常,target controller is configured to "use recording Controller" but no such ...

  4. MKL库求解矩阵特征值、特征向量(LAPACKE_dgeev、dsyev)

    LAPACK(Linear Algebra PACKage)库,是用Fortran语言编写的线性代数计算库,包含线性方程组求解(\(AX=B\)).矩阵分解.矩阵求逆.求矩阵特征值.奇异值等.该库用B ...

  5. Android广播接收者笔记

    广播接收者 1 2. ip拨号器 2.1 打电话 加上17951会便宜.. 2.2 需要定义一个类 outGoingCall 继承broadCastReceiver; 3.3 实现抽象方法 3.4 注 ...

  6. MySQL与Oracle之间的区别

    这是参考别人然后自己总结的关于两者之间的区别,方便自己记忆 1.首先Oracle数据库是大型数据库,功能很强大,性能也很优越,所以大型的开发项目一般使用的就是Oracle但同时他也是比较昂贵的;而My ...

  7. 从 MIUI 12 转为 MIUI 11 xiaomi Note3

    简介 小米note3 说实话有点带不动 MIUI11 step 本来想先刷回MIUI9 后来发现不能直接刷回MIUI 9 里面的机制不太清楚 用了线刷和卡刷都不可以,我丢... ... 参考链接 ht ...

  8. 如何通过ETLCloud实现跨系统数据同步?

    在当今的数字化时代,企业面临着数据孤岛的问题,需要将分散在不同系统和数据库中的数据进行整合,以实现数据的统一管理和分析.ETLCloud作为一款零代码ETL工具,能够帮助企业快速对接多种数据源和应用系 ...

  9. iPaaS丨不同集成工具功能的重合性和相关性

    当前企业集成工具主要有三大类:iPaaS.RPA.ETL 这三大类产品,这三大集成工具之间功能均有相互的交叉和重合,企业在进行集成类业务需求实现时,很多情况下会根据开发人员个人对工具的熟悉程度来选择其 ...

  10. SciTech-EECS-Redis for AI: Redis 8为 Vector Similarity (向量相似性) 推出新的数据结构

    SciTech-EECS-Redis: VD(Vector Database, 向量数据库): VD对由 Generative AI (生成式人工智能) 驱动的应用程序至关重要. VD可以检索&quo ...