Hi!
Here is how I do to connect to a minikube cluster with 3 nodes:
>> minikube start --nodes 3
>> kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 4m17s v1.31.0
minikube-m02 Ready <none> 4m7s v1.31.0
minikube-m03 Ready <none> 3m59s v1.31.0
>> helm repo add weaviate https://weaviate.github.io/weaviate-helm
>> helm show values weaviate/weaviate > values.yaml
edit the values.yaml and enable the openai and set the replicas to 3
create the namespace:
>> kubectl create namespace weaviate
deploy the helm chart:
>> helm upgrade --install \
"weaviate" \
weaviate/weaviate \
--namespace "weaviate" \
--values ./values.yaml
watch your cluster starting, and wait all pods to be ready
>> kubectl -n weaviate get pods -w
those are the services we have:
>> kubectl -n weaviate get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
weaviate LoadBalancer 10.107.66.168 <pending> 80:32443/TCP 106s
weaviate-grpc LoadBalancer 10.97.59.100 <pending> 50051:30758/TCP 106s
weaviate-headless ClusterIP None <none> 80/TCP 106s
we need to forward both http and grpc ports
note that the service for http is on port 80 and grpc 50051
kubectl port-forward service/weaviate 8080:80 -n weaviate
kubectl port-forward service/weaviate-grpc 50051:50051 -n weaviate
In order to test the GRPC endpoint, you can use grpcurl. Here is how to test without any auth or ssl
>> wget https://raw.githubusercontent.com/grpc/grpc/master/src/proto/grpc/health/v1/health.proto
>> grpcurl -plaintext -d '{"service": "Weaviate"}' -proto health.proto localhost:50051 grpc.health.v1.Health/Check
{
"status": "SERVING"
}
Let me know if this helps!