You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Kubernetes中实现Payara Server Admin UI配置持久化

Kubernetes部署Payara Server Full实现持久化配置指南

1. 修改Deployment YAML以使用持久化卷

先修正原YAML中的语法错误(管理端口缩进问题),再添加卷声明与挂载配置,以下是完整修改后的Deployment配置:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: payara-myapp
spec:
  selector:
    matchLabels:
      app: myapp
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    metadata:
      labels:
        app: myapp
    spec:
      volumes:
        - name: payara-persistent-storage
          persistentVolumeClaim:
            claimName: payara-pvc # 关联后续创建的PVC资源
      containers:
        - name: myapp
          image: payara/server-full
          imagePullPolicy: "Always"
          ports:
            - name: myapp-default
              containerPort: 8080
            - name: myapp-admin
              containerPort: 4848
          volumeMounts:
            - name: payara-persistent-storage
              mountPath: /opt/payara/appdomain
              subPath: appdomain # 隔离应用域配置目录,避免卷根目录被占用
            - name: payara-persistent-storage
              mountPath: /opt/payara/deployments
              subPath: deployments # 隔离应用部署目录

核心修改点:

  • 新增volumes字段,通过PVC绑定持久化存储
  • 在容器配置中添加volumeMounts,将容器内关键路径映射到持久化卷

2. Payara容器内需要持久化的路径

以下路径是保存配置与应用的核心目录,必须挂载到持久化卷:

  • /opt/payara/deployments:所有通过Admin UI上传的.war/.ear包都存储在此,Pod重建后需保留才能自动部署应用
  • /opt/payara/appdomain:Payara默认应用域(domain1)的配置目录,包含数据源、JMS队列、系统属性、安全策略、域名设置等所有Admin UI操作生成的配置
  • 可选:/opt/payara/config:若有自定义全局配置文件(如证书、密码文件),可额外挂载此路径,但通常appdomain已覆盖大部分核心配置

注意:禁止直接挂载/opt/payara根目录,会覆盖容器自带的Payara运行核心文件,导致服务无法启动。

3. 需要的额外YAML配置文件

必须创建以下存储资源,才能让Deployment的持久化配置生效:

(1)PersistentVolumeClaim(PVC)

PVC是Pod对存储资源的请求声明,用于绑定底层PV。示例配置(payara-pvc.yaml):

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: payara-pvc
spec:
  accessModes:
    # 若部署多副本(3个replicas),需使用ReadWriteMany模式,且集群存储需支持(如NFS、Ceph)
    # 若存储不支持RWX,建议将副本数改为1
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi # 根据应用大小调整存储容量
  # 若集群支持动态存储,添加storageClassName字段绑定对应存储类
  # storageClassName: "your-cluster-storage-class"

(2)PersistentVolume(PV,可选)

若集群无动态存储类,需手动创建PV与PVC绑定。以NFS存储为例(payara-pv.yaml):

apiVersion: v1
kind: PersistentVolume
metadata:
  name: payara-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain # 删除PVC后保留PV数据
  storageClassName: "" # 不使用存储类,手动绑定PVC
  nfs:
    path: /path/to/nfs/payara-storage
    server: your-nfs-server-ip

内容的提问来源于stack exchange,提问作者Viktor Stoitschev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:01:24