添加qiming-rcoder模块

This commit is contained in:
Codex
2026-06-01 13:54:52 +08:00
parent 8092c4b1f8
commit 4b1a580132
539 changed files with 151650 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
# ============================================================
# NFS Server (内建模式)
# 集群内自建 NFS Server数据持久化到 local-path PV
#
# ⚠️ 注意: OrbStack/Mac 桌面 K8s 环境不支持此方式,请使用外部 NFS Server
#
# 如使用外部 NFS Server跳过此文件直接部署 nfs-subdir-provisioner.yaml
# ============================================================
---
apiVersion: v1
kind: Namespace
metadata:
name: nfs-storage
---
apiVersion: v1
kind: Service
metadata:
name: nfs-server
namespace: nuwax-nfs-storage
spec:
clusterIP: None
selector:
app: nfs-server
ports:
- name: nfs
port: 2049
targetPort: 2049
- name: mountd
port: 20048
targetPort: 20048
- name: rpcbind
port: 111
targetPort: 111
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nfs-server
namespace: nuwax-nfs-storage
spec:
serviceName: nfs-server
replicas: 1
selector:
matchLabels:
app: nfs-server
template:
metadata:
labels:
app: nfs-server
spec:
# 亲和性: NFS Server 调度到有 local-path 存储的节点
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: Exists
containers:
- name: nfs-server
image: itsthenetwork/nfs-server-alpine:latest
env:
- name: SHARED_DIRECTORY
value: "/exports"
- name: SYNC
value: "true"
ports:
- name: nfs
containerPort: 2049
protocol: TCP
- name: mountd
containerPort: 20048
protocol: TCP
- name: rpcbind
containerPort: 111
protocol: TCP
securityContext:
runAsUser: 0
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
volumeMounts:
- name: nfs-data
mountPath: /exports
volumes:
- name: nfs-data
persistentVolumeClaim:
claimName: nfs-server-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-server-pvc
namespace: nuwax-nfs-storage
labels:
app: nfs-server
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: local-path
resources:
requests:
storage: 100Gi

View File

@@ -0,0 +1,135 @@
# ============================================================
# NFS Subdir External Provisioner + StorageClass
#
# 两种使用方式:
# 模式一(内建 NFS): nfs-server.yaml 部署后,使用此文件
# 模式二(外部 NFS): 直接修改 NFS_SERVER/NFS_PATH 环境变量指向外部 NFS
#
# 参考: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
# ============================================================
---
apiVersion: v1
kind: Namespace
metadata:
name: nfs-storage
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-client-provisioner
namespace: nuwax-nfs-storage
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: nfs-client-provisioner-cluster-runner
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["create", "update", "patch"]
- apiGroups: ["storage.k8s.io"]
resources: ["csinodeinfos"]
verbs: ["get", "list", "watch"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "create", "update"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: nfs-client-provisioner-cluster-runner-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: nfs-client-provisioner-cluster-runner
subjects:
- kind: ServiceAccount
name: nfs-client-provisioner
namespace: nuwax-nfs-storage
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-client-provisioner
namespace: nuwax-nfs-storage
spec:
replicas: 1
selector:
matchLabels:
app: nfs-client-provisioner
template:
metadata:
labels:
app: nfs-client-provisioner
spec:
serviceAccountName: nfs-client-provisioner
containers:
- name: nfs-client-provisioner
image: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
volumeMounts:
- name: nfs-provisioner
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME
value: rcoder-nfs
# ⚠️ 修改此处指向外部 NFS Server
# 内建模式: nfs-server.nfs-storage.svc.cluster.local (nfs-server.yaml 部署后)
# 外部模式: 替换为客户提供的 NFS 地址,如 192.168.1.100
- name: NFS_SERVER
value: nfs-server.nfs-storage.svc.cluster.local
- name: NFS_PATH
value: /exports
- name: NFS_MOUNT_OPTIONS
value: "vers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2"
- name: ON_DELETE_POLICY
value: "delete"
- name: ARCHIVE_ON_DELETE
value: "false"
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "200m"
memory: "256Mi"
volumes:
- name: nfs-provisioner
nfs:
# ⚠️ 修改此处指向外部 NFS Server
server: nfs-server.nfs-storage.svc.cluster.local
path: /exports
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: rcoder-nfs
annotations:
storageclass.kubernetes.io/is-default-class: "false"
provisioner: rcoder-nfs
parameters:
pathPattern: "${.PVC.namespace}/${.PVC.name}"
onDelete: "delete"
archiveOnDelete: "false"
mountOptions:
- vers=4.1
- rsize=1048576
- wsize=1048576
- hard
- timeo=600
- retrans=2
- noresvport
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true