高可用 Keycloak,K8s
高可用 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
修改镜像地址,原因是该镜像有较为清晰的文档
image: jboss/keycloak:13.0.0
配置 Mysql 变量,在创建 keycloak Mysql 数据库时,注意,创建的数据库编码应为
utf8,create 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
把 yaml 文件复制到服务器中,然后创建
kc空间,命令如下kubectl create ns kc,执行命令kubectl apply -f keycloak.yaml -n kc以启动服务访问 Keycloak 服务,
127.0.0.1:8080

点击
Administration Console,使用账号admin、密码admin登录
高可用 Keycloak,K8s的更多相关文章
- kubernetes教程第一章-kubeadm高可用安装k8s集群
目录 Kubeadm高可用安装k8s集群 kubeadm高可用安装1.18基本说明 k8s高可用架构解析 kubeadm基本环境配置 kubeadm基本组件安装 kubeadm集群初始化 高可用Mas ...
- 高可用的K8S集群部署方案
涉及到的内容 LVS HAProxy Harbor etcd Kubernetes (Master Worker) 整体拓补图 以上是最小生产可用的整体拓补图(相关节点根据需要进行增加,但不能减少) ...
- kubernetes实战(二十七):CentOS 8 二进制 高可用 安装 k8s 1.16.x
1. 基本说明 本文章将演示CentOS 8二进制方式安装高可用k8s 1.16.x,相对于其他版本,二进制安装方式并无太大区别.CentOS 8相对于CentOS 7操作更加方便,比如一些服务的关闭 ...
- kubernetes实战(三十):CentOS 8 二进制 高可用 安装 k8s 1.17.x
1. 基本说明 本文章将演示CentOS 8二进制方式安装高可用k8s 1.17.x,相对于其他版本,二进制安装方式并无太大区别. 2. 基本环境配置 主机信息 192.168.1.19 k8s-ma ...
- Kubernetes实战指南(三十四): 高可用安装K8s集群1.20.x
@ 目录 1. 安装说明 2. 节点规划 3. 基本配置 4. 内核配置 5. 基本组件安装 6. 高可用组件安装 7. 集群初始化 8. 高可用Master 9. 添加Node节点 10. Cali ...
- Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记
目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...
- Kubernetes全栈架构师(二进制高可用安装k8s集群部署篇)--学习笔记
目录 二进制高可用基本配置 二进制系统和内核升级 二进制基本组件安装 二进制生成证书详解 二进制高可用及etcd配置 二进制K8s组件配置 二进制使用Bootstrapping自动颁发证书 二进制No ...
- Kubernetes全栈架构师(二进制高可用安装k8s集群扩展篇)--学习笔记
目录 二进制Metrics&Dashboard安装 二进制高可用集群可用性验证 生产环境k8s集群关键性配置 Bootstrapping: Kubelet启动过程 Bootstrapping: ...
- 【Containerd版】Kubeadm高可用安装K8s集群1.23+
目录 基本环境配置 节点规划 网段规划及软件版本 基本配置 内核升级配置 K8s组件及Runtime安装 Containerd安装 K8s组件安装 高可用实现 集群初始化 Master01初始化 添加 ...
- K8S 使用Kubeadm搭建高可用Kubernetes(K8S)集群 - 证书有效期100年
1.概述 Kubenetes集群的控制平面节点(即Master节点)由数据库服务(Etcd)+其他组件服务(Apiserver.Controller-manager.Scheduler...)组成. ...
随机推荐
- C#/.NET/.NET Core技术前沿周刊 | 第 44 期(2025年6.23-6.30)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- 将图片地址转为二进制(博客自定义随机背景图API)
背景 最近写博客. 觉得自己的博客毫无生机,想加一些图片. 于是在找了一些三方的随机图片链接,发现一些问题: 给的些链接不会直接返回图片, 要么是302重定向 要么是返回json 这导致,这个链接无法 ...
- vue的keep-alive,后台播放音乐?
vue的keep-alive,是否能做到后台播放音视乐? 答案当然是不能. 因为处于失活状态的组件,其真实dom已经从页面移除了,只将其存放到了内存中. dom都不存在了,还播放啥. 能做什么? 顶多 ...
- CLTX 笔试题目预览
error: multiple storage classes in declaration of `i' 代理服务器常用以下端口: (1). HTTP协议代理服务器常用端口号:80/8080/312 ...
- pat乙级题目1087
题目 1087 有多少不同的值 (20 分) 当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最 ...
- 什么是ETL?什么是ELT?怎么区分它们使用场景
ELT和ETL这两种模式从字面上来看就是一个顺序颠倒的问题,每个单词拆开来看其实都是一样的.E代表的是Extract(抽取),也就是从源端拉取数据:T代表的是Transform(转换),对一些结构化或 ...
- AppLink+WMS,实现仓储管理一体化
WMS像全能的库管员,可以在线还原真实仓库,让企业进行科学化.条理化.俯视化的仓库管理. 随着移动互联网和物流行业的快速发展,如何提高仓储管理的效率和准确性成为了企业关注的焦点.在这个背景下,结合Ap ...
- 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 ...
- 最好的Transformer讲解:The Illustrated Transformer + The Annotated Transformer
The Illustrated Transformer https://jalammar.github.io/illustrated-transformer/ The Annotated Transf ...
- SQL order by 大小比较盲注
SQL order by 大小比较盲注 在做ctfshow web入门 的 web691时遇到了SQL order by 大小比较盲注问题.因为是第一次遇到,记录一下 在做题之前,我们先来探讨一下or ...