kafka apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: seldon
namespace: kafka
spec:
kafka:
replicas: 3
version: 3.7.0
config:
auto.create.topics.enable: true
default.replication.factor: 1
inter.broker.protocol.version: 3.7
min.insync.replicas: 1
offsets.topic.replication.factor: 1
transaction.state.log.min.isr: 1
transaction.state.log.replication.factor: 1
listeners:
- name: plain
port: 9092
tls: false
type: internal
storage:
type: ephemeral
zookeeper:
replicas: 1
storage:
type: ephemeralkubectl get pods -n kafkaNAME READY STATUS RESTARTS AGE
seldon-kafka-0 1/1 Running 0 2d1h
seldon-kafka-1 1/1 Running 0 2d1h
seldon-kafka-2 1/1 Running 0 2d1h
seldon-zookeeper-0 1/1 Running 0 2d1h
strimzi-cluster-operator-58ff6ccf5-pqfjn 1/1 Running 0 2d1hkubectl create namespace kafka || echo "namespace kafka exists"helm repo add strimzi https://strimzi.io/charts/
helm repo updatehelm install strimzi-kafka-operator strimzi/strimzi-kafka-operator --namespace kafkacontroller:
clusterwide: true
dataflow:
resources:
cpu: 500m
envoy:
service:
type: ClusterIP
kafka:
bootstrap: seldon-kafka-bootstrap.kafka:9092
topicPrefix: seldon
debug:
consumer:
autoOffsetReset: earliest
sessionTimeoutMs: 6000
topicMetadataRefreshIntervalMs: 1000
topicMetadataPropagationMaxMs: 300000
messageMaxBytes: 1000000000
producer:
lingerMs: 0
messageMaxBytes: 1000000000
topics:
replicationFactor: 1
numPartitions: 1
opentelemetry:
enable: false
scheduler:
service:
type: ClusterIP
serverConfig:
mlserver:
resources:
cpu: 1
memory: 2Gi
triton:
resources:
cpu: 1
memory: 2Gi
serviceGRPCPrefix: "http2-" helm upgrade seldon-core-v2-components seldon-charts/seldon-core-v2-setup \
--version 2.8.5 \
-f components-values.yaml \
--namespace seldon-system \
--installhelm install postgres-operator ./charts/postgres-operator --namespace postgresNAME: postgres-operator
LAST DEPLOYED: Tue Aug 13 15:22:02 2024
NAMESPACE: postgres
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES: To verify that postgres-operator has started, run:
kubectl --namespace=postgres get pods -l "app.kubernetes.io/name=postgres-operator"cat << EOF | kubectl apply -f -
apiVersion: "acid.zalan.do/v1"
kind: postgresql
metadata:
name: seldon-metadata-storage
namespace: postgres
spec:
teamId: "seldon"
volume:
size: 5Gi
numberOfInstances: 2
users:
seldon: # database owner
- superuser
- createdb
databases:
metadata: seldon # dbname: owner
postgresql:
version: "15"
EOFkubectl --namespace=postgres get pods -l "app.kubernetes.io/name=postgres-operator"kubectl get secret seldon.seldon-metadata-storage.credentials.postgresql.acid.zalan.do -n postgres -o 'jsonpath={.data.password}' | base64 -d > db_pass
kubectl create secret generic -n seldon-system metadata-postgres \
--from-literal=user=seldon \
--from-file=password=./db_pass \
--from-literal=host=seldon-metadata-storage.postgres.svc.cluster.local \
--from-literal=port=5432 \
--from-literal=dbname=metadata \
--from-literal=sslmode=require \
--dry-run=client -o yaml \
| kubectl apply -n seldon-system -f -
rm db_passkubectl get secret metadata-postgres -n seldon-system -o 'jsonpath={.data.password}' | base64 -d metadata:
pg:
enabled: true
secret: metadata-postgres
clientTLSSecret: "postgres-client-certs" # Optional, only needed for SSL verificationhelm upgrade seldon-enterprise seldon-charts/seldon-deploy --namespace seldon-system -f install-values.yaml --version 2.4.0 --installkubectl rollout status deployment/seldon-enterprise-seldon-deploy -n seldon-systemdeployment "seldon-enterprise-seldon-deploy" successfully rolled outISTIO_INGRESS=$(kubectl get svc -n istio-system istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
ISTIO_INGRESS+=$(kubectl get svc -n istio-system istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
echo "Seldon Enterprise Platform: http://$ISTIO_INGRESS/seldon-deploy/"
git clone https://github.com/zalando/postgres-operator.gitcd postgres-operatorkubectl create namespace postgres || echo "namespace postgres exists"export POD_NAME=$(kubectl get pods --namespace seldon-system -l "app.kubernetes.io/name=seldon-deploy,app.kubernetes.io/instance=seldon-enterprise" -o jsonpath="{.items[0].metadata.name}")kubectl port-forward $POD_NAME 8000:8000 --namespace seldon-systemInstalling Seldon Enterprise Platform in a learning environment.
kubectl create ns seldon || echo "Namespace seldon already exists"kubectl label ns seldon seldon.restricted=false --overwrite=true helm upgrade seldon-core-v2-components seldon-charts/seldon-core-v2-setup \
--version 2.8.5 \
-f components-values.yaml \
--namespace seldon-system \
--installhelm upgrade seldon-core-v2-runtime seldon-charts/seldon-core-v2-runtime \
--version 2.8.5 \
--namespace seldon \
--installmlserver:
replicas: 1
triton:
replicas: 1 helm upgrade seldon-core-v2-servers seldon-charts/seldon-core-v2-servers \
--version 2.8.5 \
-f servers-values.yaml \
--namespace seldon \
--installkubectl rollout status deployment/seldon-enterprise-seldon-deploy -n seldon-systemdeployment "seldon-enterprise-seldon-deploy" successfully rolled outexport POD_NAME=$(kubectl get pods --namespace seldon-system -l "app.kubernetes.io/name=seldon-deploy,app.kubernetes.io/instance=seldon-enterprise" -o jsonpath="{.items[0].metadata.name}")kubectl port-forward $POD_NAME 8000:8000 --namespace seldon-systemkubectl create ns seldon-system || echo "Namespace seldon-system already exists"kubectl create ns kafka || echo "Namespace kafka already exists"helm repo add seldon-charts https://seldonio.github.io/helm-charts/
helm repo update seldon-chartshelm upgrade seldon-core-v2-crds seldon-charts/seldon-core-v2-crds \
--version 2.8.5 \
--namespace default \
--install controller:
clusterwide: true
dataflow:
resources:
cpu: 500m
envoy:
service:
type: ClusterIP
kafka:
bootstrap: seldon-kafka-bootstrap.seldon-mesh:9092
topics:
numPartitions: 4
opentelemetry:
enable: false
scheduler:
service:
type: ClusterIP
serverConfig:
mlserver:
resources:
cpu: 1
memory: 2Gi
triton:
resources:
cpu: 1
memory: 2Gi
serviceGRPCPrefix: "http2-"kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.12.2/eventing-crds.yaml
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.12.2/eventing-core.yaml
kubectl get crds | grep eventing.knative.devimage:
image: seldonio/seldon-deploy-server:2.4.0
rbac:
opa:
enabled: false
nsLabelsAuth:
enabled: true
virtualService:
create: false
requestLogger:
kafka_consumer:
enabled: true
bootstrap_servers: seldon-kafka-bootstrap.kafka.svc.cluster.local:9092
group_id: metronome
auto_offset_reset: earliest
gitops:
argocd:
enabled: false
enableAppAuth: false
elasticsearch:
basicAuth: false
seldon:
enabled: false
knativeEnabled: false
seldonCoreV2:
enabled: truekubectl create ns seldon-logs || echo "Namespace seldon-logs already exists"helm install seldon-enterprise seldon-charts/seldon-deploy --namespace seldon-system -f install-values.yaml --version 2.4.0NAME: seldon-enterprise
LAST DEPLOYED: Fri Jul 26 16:43:44 2024
NAMESPACE: seldon-system
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace seldon-system -l "app.kubernetes.io/name=seldon-deploy,app.kubernetes.io/instance=seldon-enterprise" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8000/seldon-deploy/ to use your application"
kubectl port-forward $POD_NAME 8000:8000 --namespace seldon-system