专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

tremolosecurity/openunison-k8s-operator Docker 镜像 - 轩辕镜像

openunison-k8s-operator
tremolosecurity/openunison-k8s-operator
tremolosecurity
OpenUnison Operator为Kubernetes和OpenShift上的OpenUnison实例提供运维自动化机制,可自动生成证书密钥、创建Kubernetes/OpenShift对象(如Secret、Deployment、Ingress/Route等),支持SAML2元数据导入、数据库初始化及ActiveMQ部署,简化证书管理和配置更新。
1 收藏0 次下载
💣 CI/CD 卡在拉镜像?问题不在代码,在镜像源
中文简介版本下载
💣 CI/CD 卡在拉镜像?问题不在代码,在镜像源

OpenUnison Operator for Kubernetes and OpenShift

镜像概述和主要用途

OpenUnison Operator为在Kubernetes和OpenShift上运行的OpenUnison实例提供运维自动化机制。该Operator会生成运行OpenUnison所需的密钥和对象,包括证书密钥生成、Kubernetes/OpenShift资源创建、SAML2元数据导入、数据库初始化及ActiveMQ部署等,旨在简化OpenUnison的运维管理流程。

核心功能和特性

  • 证书和密钥生成:无需运行Java keytool 即可生成证书和密钥
  • Kubernetes资源创建:自动创建运行OpenUnison所需的Secret、Deployment、Service和Ingress规则
  • OpenShift资源创建:针对OpenShift环境,自动创建Route、DeploymentConfig、ImageStream和Build
  • SAML2元数据导入:支持从URL或XML直接导入SAML2元数据
  • 数据库初始化:自动初始化用于跟踪审计数据的数据库
  • 高可用部署:部署和运维ActiveMQ以实现高可用性

为什么使用Operator?

Operators有助于自动化常见任务。对于OpenUnison,最常见的任务与证书管理和服务账户相关。例如,当与远程SAML2身份提供商(如Active Directory Federation Services)配合使用时,OpenUnison可以检查可信证书是否已轮换,如有需要则自动重新部署,无需管理员干预。

!OpenUnison Operator与SAML2

除了自动化常见运维任务外,Operator还提供了Kubernetes原生方式更新OpenUnison配置。现在更新配置只需更新Kubernetes中的对象,无需手动生成密钥库或网络配置。

部署OpenUnison Operator

OpenShift 4 - 认证Operator

在OCP4内部,进入Operator Hub并搜索OpenUnison认证Operator:

!OpenUnison Operator在OCP4 OperatorHub中

Kubernetes和OpenShift 3.x

OpenUnison Operator在OpenUnison将要运行的命名空间中以最小权限运行。部署Operator前,需要以具有部署CRD对象权限的身份安装OpenUnison的CRD:

kubectl create -f [***]

CRD部署完成后,作为命名空间管理员,需要创建RBAC规则和ServiceAccount:

kubectl create -f [***] -n openunison

最后部署Operator。在OpenShift上运行时,使用OpenShift原生对象:

kubectl create -f XXXXXXX

在Kubernetes上:

kubectl create -f [***] -n openunison

部署完成后,将运行一个pod,等待OpenUnison自定义资源的部署。

升级Operator

OpenUnison Operator会定期更新以修复已知CVE。升级Operator的最简单方法是终止Operator的pod,使其拉取最新版本。

升级现有OpenUnison实例

使用转换器工具生成OpenUnison CR - TODO

OpenUnison自定义资源

OpenUnison自定义资源用于配置以下内容:

  1. OpenUnison网络配置(如密码套件、TLS使用的密钥等)
  2. OpenUnison PKCS12密钥库(所有密钥和证书基于Kubernetes密钥生成,无需使用Java keytool)
  3. 参数Secret(OpenUnison允许将参数集成到配置中,使配置可安全存储在源代码控制中并跨环境使用,这些数据现在来自Kubernetes对象,无需嵌入到单个大型密钥中)
Kubernetes的OpenUnison CR示例

以下是Kubernetes的简单OpenUnison CR示例:

yaml
apiVersion: openunison.tremolo.io/v1
kind: OpenUnison
metadata:
  name: test-openunison
  namespace: openunison
spec:
  image: tremolosecurity/openunison-simple
  replicas: 1
  enable_activemq: false
  dest_secret: openunison
  source_secret: openunison-secrets-source
  hosts:
    - names:
        - name: test.apps.mydomain.com
          env_var: OU_HOST
      ingress_name: openunison
      secret_name: ou-tls-certificate
  secret_data:
    - unisonKeystorePassword
    - TEST_USER_PASSWORD
    - REG_CRED_PASSWORD
  non_secret_data:
    - name: REG_CRED_USER
      value: rh_user
    - name: TEST_USER_NAME
      value: testuser
    - name: MYVD_CONFIG_PATH
      value: WEB-INF/myvd.conf
    - name: unisonKeystorePath
      value: /etc/openunison/unisonKeyStore.p12
  openunison_network_configuration:
    open_port: 8080
    open_external_port: 80
    secure_port: 8443
    secure_external_port: 443
    secure_key_alias: unison-tls
    force_to_secure: true
    activemq_dir: /tmp/amq
    quartz_dir: /tmp/quartz
    client_auth: none
    allowed_client_names: []
    ciphers:
      - TLS_RSA_WITH_RC4_128_SHA
      - TLS_RSA_WITH_AES_128_CBC_SHA
      - TLS_RSA_WITH_AES_256_CBC_SHA
      - TLS_RSA_WITH_3DES_EDE_CBC_SHA
      - TLS_RSA_WITH_AES_128_CBC_SHA256
      - TLS_RSA_WITH_AES_256_CBC_SHA256
    path_to_deployment: /usr/local/openunison/work
    path_to_env_file: /etc/openunison/ou.env
  key_store:
    static_keys:
      - name: session-unison
        version: 1
    trusted_certificates: 
      - name: trusted-adldaps
        pem_data: |-
                  -----BEGIN CERTIFICATE-----
                  MIIDNDCCAhygAwIBAgIQbRNj6RKqtqVPvW65qZxXXjANBgkqhkiG9w0BAQUFADAi
                  MSAwHgYDVQQDDBdBREZTLkVOVDJLMTIuRE9NQUlOLkNPTTAeFw0xNDAzMjgwMTA1
                  MzNaFw0yNDAzMjUwMTA1MzNaMCIxIDAeBgNVBAMMF0FERlMuRU5UMksxMi5ET01B
                  SU4uQ09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2s9JkeNAHOkQ
                  1QYJgjefUwcaogEMcaW/koA+bu9xbr4rHy/2gN/kc8OkoPuwJ/nNlOIO+s+MbnXS
                  L9mUTC4OK7trkEjiKXB+D+VSYy6imXh6zpBtNbeZyx+rdBnaOv3ByZRnnEB8LmhM
                  vHA+4f/t9fx/2vt6wPx//VgIq9yuYYUQRLm1WjyUBFrZeGoSpPm0Kewm+B0bhmMb
                  dyC+3fhaKC+Uk1NPodE2973jLBZJelZxsZY40Ww8zYQwdGYIbXqoTc+1a/x4f1En
                  m4ANqggHtw+Nq8zhss3yTtY+UYKDRBILdLVZQhHJExe0kAeisgMxI/bBwO1HbrFV
                  +zSnk+nvgQIDAQABo2YwZDAzBgNVHSUELDAqBggrBgEFBQcDAQYIKwYBBQUHAwIG
                  CisGAQQBgjcUAgIGCCsGAQUFBwMDMB0GA1UdDgQWBBTyJUfY66zYbm9i0xeYHuFI
                  4MN7uDAOBgNVHQ8BAf8EBAMCBSAwDQYJKoZIhvcNAQEFBQADggEBAM5kz9OKNSuX
                  8w4NOgnfIFdazd0nPlIUbvDVfQoNy9Q0S1SFUVMekIPNiVhfGzya9IwRtGb1VaBQ
                  AQ2ORIzHr8A2r5UNLx3mFjpJmeOxQwlV0X+g8s+253KVFxOpRE6yyagn/BxxptTL
                  a1Z4qeQJLD42ld1qGlRwFtVRmVFZzVXVrpu7NuFd3vlnnO/qKWXU+uMsfXtsl13n
                  ec1kw1Ewq2jnK8WImKTQ7/9WbaIY0gx8mowCJSOsRq0TE7zK/N55drN1wXJVxWe5
                  4N32eCqotXy9j9lzdkNa7awb9q38nWVxP+va5jqNIDlljB6tExy5n3s7t6KK6g5j
                  TZgVqrZ3+ms=
                  -----END CERTIFICATE-----
    key_pairs:
      create_keypair_template:
        - name: ou
          value: k8s
        - name: o
          value: Tremolo Security
        - name: l
          value: Alexandria
        - name: st
          value: Virginia
        - name: c
          value: US
      keys:
        - name: unison-tls
          tls_secret_name: unison-tls-secret
          import_into_ks: keypair
          create_data:
            sign_by_k8s_ca: false
            server_name: test-openunison.openunison.svc.cluster.local
            subject_alternative_names: []
            key_size: 2048
            ca_cert: true
        - name: unison-ca
          tls_secret_name: ou-tls-certificate
          import_into_ks: certificate
          create_data:
            sign_by_k8s_ca: false
            server_name: test.apps.mydomain.com
            subject_alternative_names: []
            key_size: 2048
            ca_cert: false
hosts

hosts部分告知Operator在Kubernetes中创建哪些Ingress对象或在OpenShift中创建哪些Route。每个主机的主机名存储在环境密钥中,以便在OpenUnison配置中使用。在Kubernetes上,单个Ingress对象可包含多个主机名;在OpenShift上,每个Route只能有一个主机名。在Kubernetes上,需指定用于Ingress对象的密钥对名称。

secret_data

此部分列出source_secret中应导入到OpenUnison环境密钥的data元素。

non_secret_data

使用此部分定义不被视为机密的参数,例如环境参数、主机名等。切勿在此部分存储密码。

openunison_network_configuration

OpenUnison的网络配置,通常可直接使用默认值。

key_store

此部分定义OpenUnison使用的密钥库内容,包含以下子部分:

static_keys

OpenUnison广泛使用静态AES-256密钥。此部分定义要创建的密钥。列出的每个密钥都会添加到存储这些密钥的Secret中。当version更改时,Operator将生成新密钥并添加到密钥库。

trusted_certificates

此列表中的每个证书都会作为受信任证书添加到密钥库,例如需要信任的远程LDAPS服务证书。

key_pairs

OpenUnison Operator可以生成自签名证书或包含存储在Kubernetes中的TLS密钥对作为Secret。

create_keypair_template

此部分定义生成的密钥对主题的组成部分(主机名除外)。

keys

列出的每个密钥要么从tls_secret_name指定的Secret导入(如果存在),要么生成并存储在tls_secret_name中。生成证书时为自签名,主题基于create_data部分生成。生成的证书将使用server_name作为主题,并生成包含server_name的主题备用名称列表。

OpenShift上的OpenUnison CR

OpenUnison Operator将使用OpenShift原生对象部署到OpenShift。如果Operator部署在OpenShift上,image选项将被忽略,而是使用openshift部分驱动Source-to-Image流程。

以下是在OpenShift中启动仅包含测试用户的OpenUnison实例的简单OpenUnison CR示例:

yaml
apiVersion: openunison.tremolo.io/v1
kind: OpenUnison
metadata:
  name: test-openunison
  namespace: openunison
spec:
  openshift:
    git:
      repo: '[***]
      branch: master
      dir: /
    builder_image: registry.connect.redhat.com/tremolosecurity/openunison-s2i-10
  replicas: 1
  enable_activemq: false
  dest_secret: openunison
  source_secret: openunison-secrets-source
  hosts:
    - names:
        - name: test.apps.mydomain.com
          env_var: OU_HOST
      ingress_name: openunison
  secret_data:
    - unisonKeystorePassword
    - TEST_USER_PASSWORD
    - REG_CRED_PASSWORD
  non_secret_data:
    - name: REG_CRED_USER
      value: rh_user
    - name: TEST_USER_NAME
      value: testuser
    - name: MYVD_CONFIG_PATH
      value: WEB-INF/myvd.conf
    - name: unisonKeystorePath
      value: /etc/openunison/unisonKeyStore.p12
  openunison_network_configuration:
    open_port: 8080
    open_external_port: 80
    secure_port: 8443
    secure_external_port: 443
    secure_key_alias: unison-tls
    force_to_secure: true
    activemq_dir: /tmp/amq
    quartz_dir: /tmp/quartz
    client_auth: none
    allowed_client_names: []
    ciphers:
      - TLS_RSA_WITH_RC4_128_SHA
      - TLS_RSA_WITH_AES_128_CBC_SHA
      - TLS_RSA_WITH_AES_256_CBC_SHA
      - TLS_RSA_WITH_3DES_EDE_CBC_SHA
      - TLS_RSA_WITH_AES_128_CBC_SHA256
      - TLS_RSA_WITH_AES_256_CBC_SHA256
    path_to_deployment: /usr/local/openunison/work
    path_to_env_file: /etc/openunison/ou.env
  key_store:
    static_keys:
      - name: session-unison
        version: 1
    trusted_certificates: []
    key_pairs:
      create_keypair_template:
        - name: ou
          value: k8s
        - name: o
          value: Tremolo Security
        - name: l
          value: Alexandria
        - name: st
          value: Virginia
        - name: c
          value: US
      keys:
        - name: unison-tls
          tls_secret_name: unison-tls-secret
          import_into_ks: keypair
          create_data:
            sign_by_k8s_ca: false
            server_name: test-openunison.openunison.svc.cluster.local
            subject_alternative_names: []
            key_size: 2048
            ca_cert: true
openshift

此部分特定于OpenShift部署(3.x和4.x),通过Source-to-Image系统控制OpenUnison容器的构建过程。git部分告知构建器从何处获取OpenUnison源代码,builder_image指向要使用的s2i镜像。此处指向Red Hat认证镜像,上游CentOS版本可从tremolosecurity/openunisons2idocker:latest获取。

查看更多 openunison-k8s-operator 相关镜像 →
victoriametrics/operator logo
victoriametrics/operator
用于在Kubernetes环境中自动化部署、管理和运维Victoria Metrics时序数据库的Operator控制器
100M+ pulls
上次更新:未知
istio/operator logo
istio/operator
用于在Kubernetes集群内管理Istio服务网格的操作员,支持自动化部署、配置及生命周期管理。
71B+ pulls
上次更新:未知
rancher/cis-operator logo
rancher/cis-operator
暂无描述
5M+ pulls
上次更新:未知
redislabs/operator logo
redislabs/operator
暂无描述
75M+ pulls
上次更新:未知
rancher/eks-operator logo
rancher/eks-operator
暂无描述
1M+ pulls
上次更新:未知
dynatrace/dynatrace-operator logo
dynatrace/dynatrace-operator
通过Dynatrace实现Kubernetes可观测性的自动化
81B+ pulls
上次更新:未知

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
tremolosecurity/openunison-k8s-operator
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
咨询镜像拉取问题请 提交工单,官方技术交流群:1072982923
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.