keycloak高可用部署

木木8个月前技术文章331

添加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


相关文章

某客户ERP华为云502错误案例

某客户ERP华为云502错误案例

1、客户反馈系统出现502错误图1上面的截图,我们大致可以看到浏览器显示的502错误,但是我们还有获知更多的信息。通过沟通我们可以确定:此功能为新上线功能,上线后一直是访问502,但是开发又找不到相关...

MySQL运维实战之ProxySQL(9.2)ProxySQL安装和配置

proxysql安装proxysql提供了各个linux发行版的安装包,我们可以使用操作系统的包管理系统来安装proxysql。这里我们以CentOS 7为例:1、从github下载安装包根据OS版本...

AD域主备部署

AD域主备部署

总览在本篇文章中, 我将记录部署多 DC 实现高可用方案的详细步骤, 期间我会尽量使用 PowerShell 来实现相应的动作, 实在找不到命令或者 GUI 更方便的再附截图. 主要步骤分为:部署 2...

Kubernetes网络模型与CNI网络插件

Kubernetes网络模型与CNI网络插件

在 Flannel 的网络插件中,容器跨主机网络的两种实现方法:UDP 和 VXLAN。它们有一个共性,就是用户的容器都连接在 docker0 网桥上。而网络插件则在宿主机上创建了一个特殊的设备(UD...

短信服务开通

短信服务开通

一、添加模版二、添加签名注意开通港澳台签名如果和国内签名冲突,需要修改国内签名 试用场景为通用,三、子账号授权新建RAM用户并创建AK信息提供 签名名称 以及模版CODE即可参考链接: https:/...

MySQL优化器特性(二)MRR优化

MySQL优化器特性(二)MRR优化

Index Range Scan索引范围扫描的一般步骤:1、根据where条件,从B+树定位到第一条记录。2、从索引页子节点中获取到行号(rowid),根据rowid回表查询数据。3、使用额外的whe...

发表评论    

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