高可用 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. C#/.NET/.NET Core技术前沿周刊 | 第 44 期(2025年6.23-6.30)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  2. 将图片地址转为二进制(博客自定义随机背景图API)

    背景 最近写博客. 觉得自己的博客毫无生机,想加一些图片. 于是在找了一些三方的随机图片链接,发现一些问题: 给的些链接不会直接返回图片, 要么是302重定向 要么是返回json 这导致,这个链接无法 ...

  3. vue的keep-alive,后台播放音乐?

    vue的keep-alive,是否能做到后台播放音视乐? 答案当然是不能. 因为处于失活状态的组件,其真实dom已经从页面移除了,只将其存放到了内存中. dom都不存在了,还播放啥. 能做什么? 顶多 ...

  4. CLTX 笔试题目预览

    error: multiple storage classes in declaration of `i' 代理服务器常用以下端口: (1). HTTP协议代理服务器常用端口号:80/8080/312 ...

  5. pat乙级题目1087

    题目 1087 有多少不同的值 (20 分) 当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最 ...

  6. 什么是ETL?什么是ELT?怎么区分它们使用场景

    ELT和ETL这两种模式从字面上来看就是一个顺序颠倒的问题,每个单词拆开来看其实都是一样的.E代表的是Extract(抽取),也就是从源端拉取数据:T代表的是Transform(转换),对一些结构化或 ...

  7. AppLink+WMS,实现仓储管理一体化

    WMS像全能的库管员,可以在线还原真实仓库,让企业进行科学化.条理化.俯视化的仓库管理. 随着移动互联网和物流行业的快速发展,如何提高仓储管理的效率和准确性成为了企业关注的焦点.在这个背景下,结合Ap ...

  8. Statistics110@Harvard: Clarity•Honesty•Words•Practices: MATH=LOGIC OF CERTAINTY and STATISTICS=LOGIC OF UNCERTAINTIES

    Statistics 110 of Harvard University: Math is the logic of certainty, Statistics is the logic of unc ...

  9. 最好的Transformer讲解:The Illustrated Transformer + The Annotated Transformer

    The Illustrated Transformer https://jalammar.github.io/illustrated-transformer/ The Annotated Transf ...

  10. SQL order by 大小比较盲注

    SQL order by 大小比较盲注 在做ctfshow web入门 的 web691时遇到了SQL order by 大小比较盲注问题.因为是第一次遇到,记录一下 在做题之前,我们先来探讨一下or ...