keycloak高可用部署

木木1年前技术文章623

添加keycloak应用

rancher应用商店模式添加keycloak仓库地址

rancher应用商店添加bitnami的helm仓库地址

https://charts.bitnami.com/bitnami

chart模式添加keycloak

添加对应chart包

keycloak-9.2.5_jsDHLiSrDK.tgz

安装keycloak

应用商店安装keycloak并且对yaml文件进行自定义

affinity: {}
args: []
auth:
  adminPassword: ''
  adminUser: admin #管理员用户名称,可更改
  createAdminUser: true
  existingSecret: ''
  existingSecretPerPassword: {}
  managementPassword: ''
  managementUser: manager
  tls:
    autoGenerated: false
    enabled: false
    existingSecret: ''
    jksSecret: ''
    keystoreFilename: ''
    keystorePassword: ''
    resources:
      limits: {}
      requests: {}
    truststoreFilename: ''
    truststorePassword: ''
    usePem: false
autoscaling:
  enabled: false
  maxReplicas: 11
  minReplicas: 1
  targetCPU: ''
  targetMemory: ''
cache:
  enabled: false
clusterDomain: cluster.local
command: []
commonAnnotations: {}
commonLabels: {}
configuration: ''
containerPorts:
  http: 8080
  https: 8443
  management: 9990
containerSecurityContext:
  enabled: true
  runAsNonRoot: true
  runAsUser: 1001
customLivenessProbe: {}
customReadinessProbe: {}
customStartupProbe: {}
diagnosticMode:
  args:
    - infinity
  command:
    - sleep
  enabled: false
existingConfigmap: ''
externalDatabase:
  database: bitnami_keycloak
  existingSecret: ''
  existingSecretPasswordKey: ''
  host: ''
  password: ''
  port: 5432
  user: bn_keycloak
extraDeploy: []
extraEnvVars: []
extraEnvVarsCM: ''
extraEnvVarsSecret: ''
extraStartupArgs: ''
extraVolumeMounts: []
extraVolumes: []
fullnameOverride: ''
global:
  imagePullSecrets: []
  imageRegistry: ''
  # 配置存储
  storageClass: ''
  cattle:
    systemProjectId: p-s7jhh
hostAliases: []
image:
  debug: false
  pullPolicy: IfNotPresent
  pullSecrets: []
  registry: docker.io
  repository: bitnami/keycloak
  tag: 18.0.0-debian-10-r6
ingress:
  annotations: {}
  apiVersion: ''
  enabled: false
  extraHosts: []
  extraPaths: []
  extraRules: []
  extraTls: []
  hostname: keycloak.local
  ingressClassName: ''
  path: /
  pathType: ImplementationSpecific
  secrets: []
  selfSigned: false
  servicePort: http
  tls: false
initContainers: []
initdbScripts: {}
initdbScriptsConfigMap: ''
keycloakConfigCli:
  annotations:
    helm.sh/hook: post-install,post-upgrade,post-rollback
    helm.sh/hook-delete-policy: hook-succeeded,before-hook-creation
    helm.sh/hook-weight: '5'
  args: []
  backoffLimit: 1
  command: []
  configuration: {}
  containerSecurityContext:
    enabled: true
    runAsNonRoot: true
    runAsUser: 1001
  enabled: false
  existingConfigmap: ''
  extraEnvVars: []
  extraEnvVarsCM: ''
  extraEnvVarsSecret: ''
  extraVolumeMounts: []
  extraVolumes: []
  hostAliases: []
  image:
    pullPolicy: IfNotPresent
    pullSecrets: []
    registry: docker.io
    repository: bitnami/keycloak-config-cli
    tag: 5.2.0-debian-10-r15
  podAnnotations: {}
  podLabels: {}
  podSecurityContext:
    enabled: true
    fsGroup: 1001
  resources:
    limits: {}
    requests: {}
kubeVersion: ''
lifecycleHooks: {}
livenessProbe:
  enabled: true
  failureThreshold: 3
  initialDelaySeconds: 300
  periodSeconds: 1
  successThreshold: 1
  timeoutSeconds: 5
metrics:
  enabled: false
  service:
    annotations:
      prometheus.io/port: '{{ .Values.metrics.service.ports.http }}'
      prometheus.io/scrape: 'true'
    ports:
      http: 9990
  serviceMonitor:
    enabled: false
    honorLabels: false
    interval: 30s
    jobLabel: ''
    labels: {}
    metricRelabelings: []
    namespace: ''
    relabelings: []
    scrapeTimeout: ''
    selector: {}
nameOverride: ''
networkPolicy:
  additionalRules: {}
  allowExternal: true
  enabled: false
nodeAffinityPreset:
  key: ''
  type: ''
  values: []
nodeSelector: {}
pdb:
  create: false
  maxUnavailable: ''
  minAvailable: 1
podAffinityPreset: ''
podAnnotations: {}
podAntiAffinityPreset: soft
podLabels: {}
podManagementPolicy: Parallel
podSecurityContext:
  enabled: true
  fsGroup: 1001
postgresql:
  architecture: standalone
  auth:
    database: bitnami_keycloak
    existingSecret: ''
    password: ''
    username: bn_keycloak
  enabled: true
priorityClassName: ''
proxy: passthrough
rbac:
  create: false
  rules: []
readinessProbe:
  enabled: true
  failureThreshold: 3
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 1
replicaCount: 1
resources:
  limits: {}
  requests: {}
schedulerName: ''
service:
  annotations: {}
  clusterIP: ''
  externalTrafficPolicy: Cluster
  extraPorts: []
  loadBalancerIP: ''
  loadBalancerSourceRanges: []
  nodePorts:
    http: ''
    https: ''
  ports:
    http: 80
    https: 443
  sessionAffinity: None
  type: ClusterIP
serviceAccount:
  annotations: {}
  automountServiceAccountToken: true
  create: true
  name: ''
sidecars: []
startupProbe:
  enabled: false
  failureThreshold: 60
  initialDelaySeconds: 30
  periodSeconds: 5
  successThreshold: 1
  timeoutSeconds: 1
terminationGracePeriodSeconds: ''
tolerations: []
topologySpreadConstraints: {}
updateStrategy:
  rollingUpdate: {}
  type: RollingUpdate

配置文件官方参考文档

https://github.com/bitnami/charts/tree/master/bitnami/keycloak/

获取admin用户的password

Plain Text kubectl get secret keycloak -n {namespace}  -o jsonpath='{.data.admin-password}' |base64 -d

配置keycloak

登录后界面如下

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271434342.png

设置中文

如图进行设置

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271436795.png

创建域

鼠标移动到左上角即可以创建域(realm),域是一个隔离的空间,在realm中我们可以创建users和applications。

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271445147.png

创建完成后可以看到我们已经切换到了刚刚创建的域

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271446419.png

创建用户

接下来我们创建一个用户

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271446838.png

输入用户名确定即可

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271451975.png

创建完成后选择到凭据页面为用户添加密码

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202209291623644.png

用户登录

在客户端页面我们可以看到我们这个域的登录链接

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271501069.png

尝试进行登录

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271502650.png

修改密码

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271503607.png

进行配置

https://teamo-md.oss-cn-shanghai.aliyuncs.com/img/202205271503780.png


相关文章

MySQL排障实战(一)—— 连接异常中断

MySQL排障实战(一)—— 连接异常中断

问题背景数栈数据质量模块,接入客户的数据源后,一执行就报错。报错信息:{"logInfo": {{"jobid":"1a4ebbbd&quo...

MySQL 复制-有数据环境搭建异步复制

MySQL 复制-有数据环境搭建异步复制

前言本 SOP 介绍的是已有数据的场景下如果部署主从复制,因为是生产环境而且有数据,我们就需要先将主库的数据同步到从库再建立复制关系,还需要根据数据量来选择更适合的备份工具。一、步骤归纳单实例安装:新...

Apache Ranger不使用root密码进行初始化

1、背景由于使用的数据库由dba进行管理,我们无法获取到对应的ranger数据库的root密码。需要使用数据库普通用户对表进行初始化2、解决ranger admin每次修改配置(install.pro...

PG的多版本并发控制(一)

PG的多版本并发控制(一)

一、 表系统字段几个比较重要概念1.1  tupletuple表示表中的数据行,在MySQL中用row表示。在表数据页中,主要分为普通的数据元祖和TOAST元祖。以下是一个普通数据元祖的结构,主要由三...

Hbase rowkey设计原则

HBase 中的 rowkey 设计需要遵循以下原则:1 rowkey 唯一原则若在 HBase 中向同一张表插入相同 rowkey 的记录,如没有设置版本数量,则此 rowkey 原先的数据会被覆盖...

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(2)

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(2)

        3.0 在云服务器进行环境配置        将项目放到云服务器上运行,那么离不开项目所依赖的环境,比如...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。