diff --git a/k8s/charts/seaweedfs/README.md b/k8s/charts/seaweedfs/README.md index 273f82e80..736d5dd59 100644 --- a/k8s/charts/seaweedfs/README.md +++ b/k8s/charts/seaweedfs/README.md @@ -216,9 +216,9 @@ worker: workingDir: "/tmp/seaweedfs-worker" # Optional: configure admin server address - # If not specified, auto-discovers from admin service in the same namespace - # Replace with your actual namespace - adminServer: "seaweedfs-admin.:33646" + # If not specified, auto-discovers from admin service in the same namespace. + # Replace with the namespace where the admin service is deployed. + adminServer: "seaweedfs-admin..svc:33646" # Workers need storage for task execution # Note: Workers use a Deployment, which does not support `volumeClaimTemplates` @@ -282,7 +282,7 @@ worker: maxConcurrent: 2 # REQUIRED: Point to the admin service of your main SeaweedFS release # Replace with the namespace where your main seaweedfs is deployed - adminServer: "seaweedfs-admin.:33646" + adminServer: "seaweedfs-admin..svc:33646" ``` **values-worker-balance.yaml** (for balance operations): @@ -306,7 +306,7 @@ worker: maxConcurrent: 1 # REQUIRED: Point to the admin service of your main SeaweedFS release # Replace with the namespace where your main seaweedfs is deployed - adminServer: "seaweedfs-admin.:33646" + adminServer: "seaweedfs-admin..svc:33646" ``` Deploy the specialized workers as separate releases: diff --git a/k8s/charts/seaweedfs/templates/worker/worker-deployment.yaml b/k8s/charts/seaweedfs/templates/worker/worker-deployment.yaml index f7222857a..40c1e32af 100644 --- a/k8s/charts/seaweedfs/templates/worker/worker-deployment.yaml +++ b/k8s/charts/seaweedfs/templates/worker/worker-deployment.yaml @@ -182,6 +182,30 @@ spec: resources: {{- toYaml . | nindent 12 }} {{- end }} + {{- if .Values.worker.livenessProbe.enabled }} + livenessProbe: + {{- with .Values.worker.livenessProbe.tcpSocket }} + tcpSocket: + port: {{ .port }} + {{- end }} + initialDelaySeconds: {{ .Values.worker.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.worker.livenessProbe.periodSeconds }} + successThreshold: {{ .Values.worker.livenessProbe.successThreshold }} + failureThreshold: {{ .Values.worker.livenessProbe.failureThreshold }} + timeoutSeconds: {{ .Values.worker.livenessProbe.timeoutSeconds }} + {{- end }} + {{- if .Values.worker.readinessProbe.enabled }} + readinessProbe: + {{- with .Values.worker.readinessProbe.tcpSocket }} + tcpSocket: + port: {{ .port }} + {{- end }} + initialDelaySeconds: {{ .Values.worker.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.worker.readinessProbe.periodSeconds }} + successThreshold: {{ .Values.worker.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.worker.readinessProbe.failureThreshold }} + timeoutSeconds: {{ .Values.worker.readinessProbe.timeoutSeconds }} + {{- end }} {{- if .Values.worker.containerSecurityContext.enabled }} securityContext: {{- omit .Values.worker.containerSecurityContext "enabled" | toYaml | nindent 12 }} {{- end }} diff --git a/k8s/charts/seaweedfs/values.yaml b/k8s/charts/seaweedfs/values.yaml index b70a6b94d..479a40e13 100644 --- a/k8s/charts/seaweedfs/values.yaml +++ b/k8s/charts/seaweedfs/values.yaml @@ -1296,6 +1296,28 @@ worker: extraEnvironmentVars: {} + # Health checks for worker pods + # Since workers do not have an HTTP endpoint, a tcpSocket probe on the metrics port is recommended. + livenessProbe: + enabled: true + tcpSocket: + port: metrics + initialDelaySeconds: 30 + periodSeconds: 60 + successThreshold: 1 + failureThreshold: 5 + timeoutSeconds: 10 + + readinessProbe: + enabled: true + tcpSocket: + port: metrics + initialDelaySeconds: 20 + periodSeconds: 15 + successThreshold: 1 + failureThreshold: 3 + timeoutSeconds: 10 + # ServiceMonitor annotations (separate from pod/deployment annotations) serviceMonitor: annotations: {}