diff --git a/README.md b/README.md index f45da6e2d..8773edd1b 100644 --- a/README.md +++ b/README.md @@ -409,6 +409,17 @@ kustomize build common/istio/kubeflow-istio-resources/base | kubectl apply -f - Kubeflow Pipelines offers two deployment options to choose from, each designed for different use cases and operational preferences. The traditional database-based approach stores pipeline definitions in an external database, while the Kubernetes native API mode leverages Kubernetes custom resources for pipeline definition storage and management. +The default artifact store is now seaweedfs as explained [here](https://medium.com/@hpotpose26/kubeflow-pipelines-embraces-seaweedfs-9a7e022d5571). The single-command installation using the `example` kustomization sets SeaweedFS as the default S3-compatible artifact store for Pipelines. It replaces `minio-service` to route S3 traffic to SeaweedFS and patches the Argo Workflow controller to use it. +If you are following the step-by-step installation and want SeaweedFS as your Pipelines artifact store, apply the following overlay instead of the MinIO-based overlays: + +```sh path=null start=null +kustomize build experimental/seaweedfs/istio | kubectl apply -f - +``` + +To switch back to MinIO, use the standard upstream Pipelines overlays shown below. + +TODO MinIO Will be removed in the next releases. + ##### Pipeline Definitions Stored in the Database @@ -748,3 +759,4 @@ pre-commit run - **Q:** Why does Istio CNI fail on Google Kubernetes Engine (GKE) with "read-only file system" errors? **A:** GKE mounts `/opt/cni/bin` as read-only for security reasons, preventing the Istio CNI installer from writing the CNI binary. Use the GKE-specific overlay: `kubectl apply -k common/istio/istio-install/overlays/gke`. This overlay uses GKE's writable CNI directory at `/home/kubernetes/bin`. For more details, see [Istio CNI Prerequisites](https://istio.io/latest/docs/setup/additional-setup/cni/#prerequisites) and [Platform Prerequisites](https://istio.io/latest/docs/ambient/install/platform-prerequisites/).-` + diff --git a/example/kustomization.yaml b/example/kustomization.yaml index 6b4be393d..c3156eb0e 100644 --- a/example/kustomization.yaml +++ b/example/kustomization.yaml @@ -66,8 +66,10 @@ resources: - ../common/kubeflow-roles/base # Kubeflow Istio Resources - ../common/istio/kubeflow-istio-resources/base -# Kubeflow Pipelines -- ../applications/pipeline/upstream/env/cert-manager/platform-agnostic-multi-user # Pipeline Definitions Stored in the Database +# TODO: Uncomment the following line after the next KFP release +# - ../applications/pipeline/upstream/env/cert-manager/platform-agnostic-multi-user # Pipeline definitions stored in the database +# Kubeflow Pipelines (SeaweedFS default) +- ../experimental/seaweedfs/istio # - ../applications/pipeline/upstream/env/cert-manager/platform-agnostic-multi-user-k8s-native # Pipeline Definitions Stored as Kubernetes Resources # Katib - ../applications/katib/upstream/installs/katib-with-kubeflow diff --git a/experimental/seaweedfs/base/seaweedfs/seaweedfs-deployment.yaml b/experimental/seaweedfs/base/seaweedfs/seaweedfs-deployment.yaml index 99cee8b4c..635e8ac6e 100644 --- a/experimental/seaweedfs/base/seaweedfs/seaweedfs-deployment.yaml +++ b/experimental/seaweedfs/base/seaweedfs/seaweedfs-deployment.yaml @@ -24,12 +24,14 @@ spec: type: RuntimeDefault containers: - name: seaweedfs - image: 'chrislusf/seaweedfs:3.85' + image: 'chrislusf/seaweedfs:3.92' args: - 'server' - '-dir=/data' - '-s3' - '-iam' + - '-filer' + - '-master.volumePreallocate=false' ports: - containerPort: 8333 - containerPort: 8111 @@ -56,16 +58,13 @@ spec: capabilities: drop: - ALL - add: - - NET_BIND_SERVICE volumeMounts: - mountPath: /data name: data resources: - # Benchmark this, just taken from minio requests: - cpu: 20m - memory: 100Mi + cpu: 32m + memory: 128Mi volumes: - name: data persistentVolumeClaim: diff --git a/experimental/seaweedfs/base/seaweedfs/seaweedfs-networkpolicy.yaml b/experimental/seaweedfs/base/seaweedfs/seaweedfs-networkpolicy.yaml index ab1a6cc66..c2ee7b73e 100644 --- a/experimental/seaweedfs/base/seaweedfs/seaweedfs-networkpolicy.yaml +++ b/experimental/seaweedfs/base/seaweedfs/seaweedfs-networkpolicy.yaml @@ -1,7 +1,7 @@ apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: - name: default-allow-same-namespace + name: allow-same-namespace-seaweedfs namespace: kubeflow spec: podSelector: {} diff --git a/experimental/seaweedfs/base/seaweedfs/seaweedfs-pvc.yaml b/experimental/seaweedfs/base/seaweedfs/seaweedfs-pvc.yaml index 7d47bee65..b0302f9cb 100644 --- a/experimental/seaweedfs/base/seaweedfs/seaweedfs-pvc.yaml +++ b/experimental/seaweedfs/base/seaweedfs/seaweedfs-pvc.yaml @@ -8,4 +8,4 @@ spec: - ReadWriteOnce resources: requests: - storage: 5Gi + storage: 20Gi