Kubernetes deployment

Hi!

I was deploying using the yaml file off your website to a kubernetes deployment. I was using our new CSI volume plugin and that seems fine but the pods are not getting deployed. Seems maybe the services are waiting for an IP? I don’t have an ingress controller for the cluster? Does this matter? Should I use nodeport?

kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.5.1.1 443/TCP 15d
mysql1 NodePort 10.5.1.249 3306:32626/TCP 2d
myssql NodePort 10.5.1.14 3306:32641/TCP 3d
redis ClusterIP 10.5.1.251 6379/TCP 15d
webster NodePort 10.5.1.60 80:32761/TCP 3d
yb-master-ui LoadBalancer 10.5.1.253 7000:32673/TCP 14m
yb-masters ClusterIP None 7000/TCP,7100/TCP 14m
yb-tservers ClusterIP None 9000/TCP,9100/TCP,9042/TCP,6379/TCP 14m

kubectl get po
NAME READY STATUS RESTARTS AGE
mysql1-7d5f78f568-244gv 1/1 Running 519 2d
myssql-6bf96cc558-xwzzz 1/1 Running 0 3d
redis-644d95598f-w4bsv 1/1 Running 0 15d
webster-656d54c77-5w8nz 1/1 Running 0 3d
yb-master-0 0/1 Pending 0 15m
yb-master-1 0/1 Pending 0 15m
yb-master-2 0/1 Pending 0 15m
yb-tserver-0 0/1 Pending 0 15m
yb-tserver-1 0/1 Pending 0 15m
yb-tserver-2 0/1 Pending 0 15m

any ideas?

Hi @dlink7, Great to hear from you! We will get back to you. Thx.

Hey Rao!

the only mod to that file was adding a storage class to the volumeTemplate.

-DL

Hi @dlink7 - Could you please let us know the output of
kubectl describe pods yb-master-0
and
kubectl describe pods yb-tserver-0

This should have some info on where it is stuck. It might be same root cause for both.

Thanks!

Events:
Type Reason Age From Message


Warning FailedScheduling 2m (x3877 over 37m) default-scheduler pod has unbound PersistentVolumeClaims (repeated 3 times)

maybe from the api version?

using kubernetes 1.10

I am up and running. I had an error with a secret. When i deleted the statefulset it didn’t delete the pvc and that was causing my grief.

Great to note that it is working now for you @dlink7! Thanks!!

Can the deployment work with nodeport?

I run this ->kubectl exec -it yb-tserver-0 /home/yugabyte/bin/cqlsh
Connection error: (‘Unable to connect to any servers’, {‘127.0.0.1’: error(111, “Tried connecting to [(‘127.0.0.1’, 9042)]. Last error: Connection refused”)})
command terminated with exit code 1

it worked the first time but i assume that is only if your deploying to your laptop. Is there another option? I see there is a helm chart

Hi @dlink7,

I am assuming you want the apps to talk to YugaByte DB using node-port, but the DB itself is running inside k8s as a regular stateful set.

We have tested when using an external load balancer and that scenario works. I would assume node-port works similarly but not too sure.

Can you share the following details to help look into this issue:

  • how you created the node-port service on top of the tservers? Just wanted to see the yaml fragment/commad.

  • how you are connecting to YugaByte DB? In other words, how is the external app using these ip addresses?

i am really just messing around, sounds like using a ingress-load balancer is needed. I have a K8 cluster deployed on Nutanix with 3 worker nodes. If i setup a load balancer will that yam file work?

Yup, a load balancer would do the trick - just expose 9042 (for cassandra) and 6379 (for redis) over all the tservers.

thanks, once it gets up and going would be nice to make some videos out of it.

Thats awesome @dlink7! Def reach out if you run into issues.