查找

文章
· 十二月 30, 2025 阅读大约需 4 分钟

Quando considerar o uso de useIrisFsGroup em suas implantações do IKO

Se você olhar o arquivo values.yaml do Helm chart do IKO, você encontrará:

useIrisFsGroup: false 

Vamos detalhar o que isso é e em quais situações você pode querer configurá-lo como true.

FsGroup se refere ao grupo do sistema de arquivos.

Por padrão, os volumes do Kubernetes pertencem ao usuário root, mas precisamos que o IRIS seja o dono de seus arquivos (o IRIS em containers é instalado sob o usuário irisowner). Para contornar isso, utilizamos um de dois métodos:

1) initContainers

Os initContainers são executados antes dos containers da aplicação (como o IRIS) em um pod. Eles geralmente preparam o ambiente para a aplicação e, em seguida, são executados até a conclusão e encerram. O initContainer é executado como root antes do IRIS e executa:

chown -R irisowner:irisowner /irissys/*

SecurityContext é, por padrão, configurado como:

RunAsUser: 51773
RunAsGroup: 51773
RunAsNonRoot: true

para o pod. E vemos que 51773 é o ID de usuário e de grupo do irisowner:

$ id
uid=51773(irisowner) gid=51773(irisowner) groups=51773(irisowner)

2) Montar volumes com uma determinada propriedade de grupo

Alguns ambientes podem restringir a execução de qualquer container como root, por exemplo por meio de Security Context Constraints no OpenShift. Nesse caso, não podemos nem mesmo executar um initContainer como root e será necessário que os volumes recebam a propriedade correta do sistema de arquivos no momento da montagem. Para isso, implante o InterSystems Kubernetes Operator com

useIrisFsGroup: true 

em /chart/iris-operator/values.yaml file.

Agora seus pods serão implantados sem initContainers.

Como ressalva, se você quiser configurar sidecars, será necessária uma etapa extra. Você não pode usar o sidecar padrão do Apache/NGINX. Você encontrará este problema:

>> kubectl get pods
NAME                                              READY   STATUS    RESTARTS      AGE
intersystems-iris-operator-amd-76b75f6b48-7lnw2   1/1     Running   0             43m
iris-data-0-0                                     1/2     Error     2 (22s ago)   2m

o que resultará em um CrashLoopBackOff. Uma análise mais detalhada mostra que, quando o sidecar padrão do gateway web Apache/NGINX está presente, o useIrisFsGroup não é considerado. Isso acontece porque esses containers do Apache/NGINX, nesse caso o sidecar, são executados como root. O IRIS não é executado como root e, portanto, não consegue acessar seus diretórios, causando o problema.

irisowner@iris-data-0-0:/irissys$ ls -l
total 16
drwxrwxrwx 3 root root  107 Mar 31 14:28 cpf
drwxr-xr-x 3 root root 4096 Mar 31 14:21 data
drwxr-xr-x 3 root root 4096 Mar 31 14:21 journal1
drwxr-xr-x 3 root root 4096 Mar 31 14:21 journal2
drwxrwxrwt 3 root root  100 Mar 31 14:28 key
drwxr-xr-x 3 root root 4096 Mar 31 14:21 wij

IRIS falha com o erro:

[ERROR] Command "iris start IRIS quietly" exited with status 256
03/31/25-14:41:06:870 (795) 3 [Utility.Event] Error while moving data directories ERROR #5001: Cannot create target: /irissys/data/IRIS/

Em vez disso, devemos usar a imagem do gateway web que não roda como root (já que queremos que todas as nossas imagens sejam executadas como não-root). Isso implica um gateway web mais restrito. Também precisamos garantir que o security context seja adicionado para reforçar essa condição. Devemos declarar explicitamente:

securityContext:
  runAsUser: 51773
  runAsGroup: 51773
  runAsNonRoot: true
  fsGroup: 51773

no seu data/compute nodes.

Um exemplo de YAML para o nosso IrisCluster CRD reunindo tudo isso pode ser visto abaixo.

apiVersion: intersystems.com/v1alpha1
kind: IrisCluster
metadata:
  name: iris
spec:
  licenseKeySecret:
    name: iris-key-secret
  configSource:
    name: iris-cpf
  imagePullSecrets:
    - name: intersystems-pull-secret
  topology:
    data:
      image: containers.intersystems.com/intersystems/irishealth:2025.1
      compatibilityVersion: "2025.1.0"
      mirrored: true
      podTemplate:
        spec:
          resources:
            requests:
              memory: "4Gi"
              cpu: "2"
            limits:
              memory: "4Gi"
              cpu: "2"
          securityContext:
            runAsUser: 51773
            runAsGroup: 51773
            runAsNonRoot: true
            fsGroup: 51773
      webgateway:
        image: containers.intersystems.com/intersystems/webgateway-lockeddown:2025.1
        type: apache-lockeddown
        applicationPaths:
          - /csp/sys
          - /csp/user
          - /csp/broker
          - /api
          - /isc
          - /oauth2
          - /ui
          - /csp/healthshare
        loginSecret:
          name: iris-webgateway-secret
    webgateway:
      replicas: 1
      image: containers.intersystems.com/intersystems/webgateway-lockeddown:2025.1
      type: apache-lockeddown
      podTemplate:
        spec:
          resources:
            requests:
              memory: "2Gi"
              cpu: "1"
            limits:
              memory: "2Gi"
              cpu: "1"
      applicationPaths:
        - /csp/sys
        - /csp/user
        - /csp/broker
        - /api
        - /isc
        - /oauth2
        - /ui
        - /csp/healthshare
      alternativeServers: LoadBalancing
      loginSecret:
        name: iris-webgateway-secret
    arbiter:
      image: containers.intersystems.com/intersystems/arbiter:2025.1
  serviceTemplate:
    spec:
      type: ClusterIP

Happy YAMLing

讨论 (0)1
登录或注册以继续
问题
· 十二月 30, 2025

HealthShare - FHIR gateway

I'm new to HealthShare. I've installed a demo using the HS.Util.Installer helper, now I'm playing with its FHIR Gateway (which is the HSFHIR namespace). When I try to create a new resource of type Patient using HTTP POST, HealthShare responses with

2 条新评论
讨论 (2)3
登录或注册以继续
InterSystems 官方
· 十二月 29, 2025

InterSystems 云服务 - 版本 25.24.2 发布说明(2025 年 11 月)

概述

本版本对存储的可扩展性和性能进行了重大改进,对所有产品的操作系统进行了重大升级,并推出了新的 FHIR 服务器默认版本。这些更新共同增强了系统的可靠性、灵活性和安全性,同时确保了平台的长期可支持性。


新功能和增强功能

类别

功能/改进

详细信息

存储 增强的 LVM 支持(条带或线性) 增加了对 LVM 配置的支持,允许使用条带式或线性卷布局进行部署,以提高性能和灵活性。
  选择使用 LVM 配置 客户现在可以在配置过程中选择使用基于 LVM 的存储,从而更好地控制卷管理和数据布局。
  扩大最大存储限制 每个部署支持的最大存储容量增至8 PB,可支持大规模数据工作负载和长期增长。
操作系统 Red Hat Enterprise Linux 9.6 升级 所有 InterSystems 云产品都从 RHEL 9.0 升级到了RHEL 9.6,提供了更好的内核性能、更强的安全性和更长的生命周期支持。
FHIR 服务器 默认版本 2025.11.0

FHIR Server2025.11.0 现在是所有新部署的默认版本,在可扩展性、互操作性和数据管理方面都有改进。

有关详细信息,请参阅 FHIR Server 2025.11.0 发行说明。


建议采取的行动


支持

有关此版本的更多信息或帮助,请通过 iService 或云服务门户联系 InterSystems 云服务支持。

讨论 (0)1
登录或注册以继续
InterSystems 官方
· 十二月 29, 2025

InterSystems 云服务 - 版本 25.20.2 发布说明(2025 年 10 月)

概述

25.20.2 版扩展了全球可用性,提高了高级安全灵活性,并扩大了网络连接集成。该版本引入了对更多地区的支持、新的应用程序感知安全规则,以及针对关键 InterSystems 服务的更多连接选项。


新功能和增强功能

类别

功能/改进

详细信息

高级安全性 支持消息库规则 高级安全功能现在可以应用专门针对消息库的策略和规则,从而为消息存档和分析管道提供更精细的保护。
  多应用规则支持 现在可以对规则进行配置,使其同时适用于多个应用,从而减少重复配置,简化策略管理。
网络连接 支持 TGW 对等互联 现在支持中转网关 (TGW) 对等互联,实现了可扩展的多区域和多 VPC 连接,降低了复杂性并改进了流量控制。
  支持 FHIR 服务器 针对 FHIR Server 的本机 Network Connect 集成,改进了路由管理、网络可见性和集成工作流。
  支持数据工作室(供应链模块) 供应链模块增加了对 InterSystems Data Fabric Studio 的支持,实现了与客户网络拓扑的无缝集成。
全球扩展 新地区: ap-northeast-1 (东京) InterSystems 云服务现在可在东京地区使用,从而减少了延迟,并扩大了在日本和更广泛的亚太地区的可用性。

建议采取的行动

  • 审查现有的高级安全规则,在多应用规则可简化配置的情况下对其进行整合。
  • 评估 TGW 对等互联的多区域或中心辐射网络设计。
  • 日本或亚太地区的客户应考虑将工作负载迁移到ap-northeast-1 以提高性能。

支持

有关此版本的更多信息或帮助,请通过 iService 或云服务门户联系 InterSystems 云服务支持。

讨论 (0)1
登录或注册以继续
摘要
· 十二月 29, 2025

Publicações Desenvolvedores InterSystems, Dezembro 22 - 28, 2025, Resumo

Dezembro 22 - 28, 2025Week at a GlanceInterSystems Developer Community