YugaByte DB Community Forum

Kubernetes deployment


#1

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?


#2

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


#3

Hey Rao!

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

-DL


#4

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!


#5

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


#6

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.


#7

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


#8

Can the deployment work with nodeport?


#9

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


#10

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?


#11

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?


#12

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


#13

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


#14

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