尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Apereo CAS 基于 Helm Chart 的 Kubernetes 部署实践

发布时间:2026/9/27 23:45:10

资讯中心
01
ARTICLE

Apereo CAS 基于 Helm Chart 的 Kubernetes 部署实践

Apereo CAS 基于 Helm Chart 的 Kubernetes 部署实践
后端认证鉴权单点登录【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址https://gitcode.com/gh_mirrors/ca/cas点击查看免费下载本指南以 Apereo CAS 官方文档 Kubernetes-Helm-Deployment 为主体系统讲解如何借助 CAS WAR Overlay Initializr 生成的 Helm Chart在本地 Kubernetes 集群以 K3S 为主上完成 CAS 单点登录服务的安装、配置、排障与访问验证。读完本文你将掌握 Helm 的核心概念、CAS Helm Chart 的架构组成、从环境准备到helm upgrade --install落地的完整命令行流程以及借助kubectl进行日常运维与问题定位的实用技巧。前置准备Helm Chart 从哪里来CAS 的 Helm Chart 并不是随本仓库Apereo CAS 服务器源码直接分发的独立产物而是内置于 CAS WAR Overlay Initializr 生成的 overlay 工程中。该 Initializr 基于 Spring Initializr 框架构建允许部署者通过 curl 友好的 API 快速生成包含所需模块与依赖的 CAS WAR Overlay 工程例如function getcas() { urlhttps://getcas.apereo.org/starter.tgz ... cmdcurl ${url} -d type${projectType} -d baseDir${directory} ${dependencies} ${casVersion} ${bootVersion} | tar -xzvf - eval ${cmd} } getcas --modules duo,oidc生成出来的 overlay 工程同时包含两样关键资产CAS 容器镜像构建脚本后续需要用./gradlew clean build jibBuildTar构建 CAS Docker 镜像Helm Charthelm/目录其中包含templates/模板目录、values.yaml默认值文件以及若干用于生成证书与信任库的辅助脚本。文档特别提醒当前 Helm Chart 尚属较新阶段官方提示在稳定之前可能不会发布到公开 Helm 仓库因此更适用于具备 CAS 与 Kubernetes 经验的部署者作为自托管部署方案来使用。本指南默认你已通过 Initializr 创建好 overlay 工程。若你希望由 Kubernetes 直接管理 CAS 的配置而非用 ConfigMap 手工下发可同时参考官方文档 Spring Cloud 配置中心 - Kubernetes 支持其对应的仓库模块为 cas-server-support-configuration-cloud-kubernetes通过spring.cloud.kubernetes.secrets、spring.cloud.kubernetes.config相关属性即可从ConfigMap与Secret中加载配置。什么是 HelmHelm 是 Kubernetes 的包管理工具其核心单位是Chart。一个 Helm Chart 是一组模板模板与“部署环境相关的 values 值”组合后即可生成最终的 Kubernetes 配置 YAML。理解 Helm 的工作方式有助于后续排错Chart 作者定义模板与默认值部署者编写自己的 values 文件覆盖Chart 定义的任何默认值部署者无需修改模板即可完成安装若发现模板本身需要变更这类改动是回馈给 Chart 上游的候选能让 Chart 在后续迭代中变得更加可定制、支持更多部署选项。CAS Helm Chart 概览当前 CAS Helm Chart 的部署形态与设计要点如下关注点当前实现说明随 Chart 一并部署Spring Boot Admin Server用于监控 CAS 运行状态后续可能扩展 config-server、cas-management 或 cas-shell配置来源values 文件、Kubernetes ConfigMapChart 支持任意卷volume映射CAS 配置可直接写在 values 中服务注册中心数据库、Git、或 Kubernetes 持久卷上的 JSON 注册表取决于部署者选择Ticket 注册中心可复用 redis、postgresql、mongo 等标准 Helm Chart无需自行编写模板网络加密Ingress Controller 与 CAS、Boot Admin 之间使用 SSL官方也承认这可能“过度设计”伴随信任与主机名校验等 SSL 固有痛点工作负载类型CAS 使用StatefulSet而非Deployment未来可能变更或改为可配置此外Chart 中 CAS 与 Spring Boot Admin 之间的服务发现方式官方建议未来可迁移至 “cloud” 模式发现Boot Admin 拥有独立 Ingress因为它定位为内部可访问而 CAS 通常对外暴露——两者也可同时设为内网或同时对外。在本地 Kubernetes 上安装 CAS安装 Helm 与 KubectlHelm v3 与 Kubectl 都是单一二进制程序Kubectl 可能随 Kubernetes 安装自带但两者都应下载并放入PATH安装 Helm参考 Helm 官方安装文档安装 Kubectl参考 Kubernetes 官方安装文档安装 KubernetesMac、Windows、Linux 上有多种本地 Kubernetes 集群方案但它们都要求 Linux 作为 VM 或宿主操作系统。CAS Helm Chart 在 CAS Initializr 的 CI 脚本中基于K3S安装并测试因此 K3S 方式“始终可用”Windows 与 Mac 用户则需要先安装 Linux 虚拟机例如运行 Ubuntu。K3S Kubernetesk3s 运行于 Linux非常轻量、易于安装适合开发场景且不强制安装 Docker。以下为完整安装链路# 安装 k3s禁用 traefik ingress controller后续使用 ingress-nginx curl -sfL https://get.k3s.io | INSTALL_K3S_EXECserver --disable traefik sh # helm 需要此环境变量建议写入 profile export KUBECONFIG/etc/rancher/k3s/k3s.yaml # 用 Initializr 生成的 overlay 构建 CAS 镜像 ./gradlew clean build jibBuildTar --refresh-dependencies # 导入镜像到 k3sk3s 能从 registry 拉取镜像但看不到本地 Docker 镜像 k3s ctr images import build/jib-image.tar # 验证镜像已加载 k3s ctr images ls | grep cas # 进入 helm chart 目录 cd helm # 为 Tomcat 创建 keystore secret ./create-cas-server-keystore-secret.sh # 为 ingress controller 创建 TLS secret未创建时 nginx-ingress 会使用默认值 ./create-ingress-tls.sh # 创建包含 SSL 信任库的 configmap ./create-truststore.sh # 安装 cas-server helm chart helm upgrade --install cas-server ./cas-server镜像导入的关键点jibBuildTar产出的是build/jib-image.tar文件K3S 无法直接读取 Docker 守护进程中的本地镜像必须通过k3s ctr images import显式导入这也是官方脚本刻意采用“构建 tar → 导入”两步的原因。其他本地集群选项Docker Desktop安装后到 Settings 中启用 Kubernetes在 bash 终端Windows 上可用 Git Bash、Cygwin 或 Msys2确保 Helm 与 Kubectl 在 PATH 中运行helm/子目录中的证书与信任库脚本构建镜像./gradlew clean build jibBuildTar --refresh-dependencies本地加载docker load build/jib-image.tar再安装 Ingress Controller 并安装 CAS Helm Chart。Minikube参考 Minikube 官方文档其流程包括安装 kubectl 与 minikube、启动集群、minikube mount挂载配置目录到/etc/cas/、加载镜像后创建casService 并应用 deployment.yaml最后通过kubectl port-forward svc/cas 8443:8443与curl -k https://localhost:8443/cas/login验证登录页可访问——可以作为本地快速验证 CASKubernetes 组合的参考实现。安装 Ingress ControllerCAS Helm Chart仅针对 Kubernetes ingress-nginx 测试过欢迎为其他 ingress controller 增加支持。使用 Helm 安装ingress-nginxhelm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx kubectl create namespace ingress-nginx helm install --namespace ingress-nginx ingress-nginx ingress-nginx/ingress-nginx kubectl wait --namespace ingress-nginx \ --forconditionready pod \ --selectorapp.kubernetes.io/componentcontroller \ --timeout120sIngress Controller 安装指南可参考 Kubernetes Nginx Ingress 官方部署文档。安装 CAS Server Helm ChartHelm Chart 由模板与一个或多个 values 文件外加命令行 set 参数组合生成 Kubernetes YAML。Chart 目录包含templates/子目录内置默认values.yaml额外 values 文件应在命令行显式指定以按需覆盖默认值。以下命令默认使用default命名空间若希望 CAS 位于独立命名空间可为任意helm命令追加--namespace cas需先创建命名空间如kubectl create namespace cas# 删除 cas-server chart 安装 helm delete cas-server # 安装 cas-server chart helm install cas-server ./cas-server # 安装或更新 cas-server helm upgrade --install cas-server ./cas-server # 使用本地 values 文件覆盖默认值 helm upgrade --install cas-server --values values-local.yaml ./cas-server # 只渲染 Kubernetes YAML不实际安装用于检查 helm upgrade --install cas-server --values values-local.yaml ./cas-server --dry-run --debug # 当 dry-run 因 YAML 无法转 JSON 而失败时改用 template 定位问题 helm template cas-server --values values-local.yaml ./cas-server --debug排错提示--dry-run --debug偶尔会因渲染出的 YAML 无法转换为 JSON 而失败此时helm template ... --debug是更直接的“只渲染不安装”手段便于快速定位模板或 values 语法问题。常用kubectl命令若使用非默认命名空间别忘了追加-n或--namespace# 查看 pod 状态 kubectl get pods # 描述 CAS pod排查启动失败原因 kubectl describe pod cas-server-0 # 跟踪控制台日志 kubectl logs cas-server-0 -f # 进入容器 kubectl exec -it cas-server-0 sh # 重启 CAS pod删除后由 StatefulSet 自动重建 kubectl delete pod cas-server-0浏览访问 CAS确保 values 文件中配置的主机已写入 hosts 文件。以如下 ingress 配置为例ingress: hosts: - host: cas.example.org paths: - /cas tls: - secretName: cas-server-ingress-tls hosts: - cas.example.org对应的本机 hosts 条目127.0.0.1 cas.example.org当 CAS pod 运行正常后浏览器访问https://cas.example.org/cas/login即可打开登录页。此外CAS Spring Boot Admin 服务器也有独立 ingress使用 Boot Admin ingress 中配置的主机名即可访问Boot Admin 定位为内部服务而 CAS 通常对外两者可根据需要调整内外网策略。结语从本指南可以看到基于 CAS WAR Overlay Initializr 的 Helm Chart 为本地乃至生产环境提供了一条可复制的 CAS 部署路径K3S 负责轻量集群ingress-nginx 负责流量入口jibBuildTar负责镜像构建create-*.sh系列脚本负责证书与信任库helm upgrade --install负责声明式交付。部署完成后善用kubectl describe/logs/exec即可完成日常巡检与问题定位。由于 Chart 仍处于演进阶段如 SSL 策略、StatefulSet使用方式、服务发现模式等均可能调整建议持续关注 CAS Initializr 工程中 Helm Chart 的更新并将任何模板改进贡献回上游推动其走向更通用的发布形态。赞分享后端认证鉴权单点登录【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址https://gitcode.com/gh_mirrors/ca/cas点击查看免费下载相关推荐CAS与Kubernetes集成基于Helm Chart的终极自动化部署指南CAS与Kubernetes集成基于Helm Chart的终极自动化部署指南 想要在Kubernetes环境中快速部署企业级单点登录系统吗CASCentr后端认证鉴权单点登录Spring Cloud Alibaba 容器化部署最佳实践基于 Helm Chart 的 Kubernetes 部署指南Spring Cloud Alibaba 容器化部署最佳实践基于 Helm Chart 的 Kubernetes 部署指南 导读 本文基于 Spring Cl后端微服务服务注册发现配置中心消息队列kubernetes-handbook 实战基于 Helm Chart 在 Kubernetes 上部署 MongoDBBitnami MongoDB Chart 深度解析kubernetes handbook 实战基于 Helm Chart 在 Kubernetes 上部署 MongoDBBitnami MongoDB Ch教程云原生容器编排上一篇Apache Doris show_segment_status 工具详解在线 Segment V2 转换进度监控指南下一篇Video DownloadHelper伴侣应用实战指南破解在线视频下载难题的技术之道创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。