How to expose Meshery Broker external to your Kubernetes cluster?

There are many ways to get a LoadBalancer:

  • Incase , you use Minikube Cluster:

    • Use minikube tunnel
    • Use minikube addons to turn on a custom MetalLB addon which’ll provide you with Load
      balancing
  • Incase , you use Kind Cluster:

    • Use’ll required to apply few custom yamls to have MetalLB loadbalancer to you cluster (explained on their website)
  • Incase, you use Docker-Desktop:

    • It will come out of the box
  • Or use an external cloud provider that can provide you with ingress options

courtesy @theBeginner86

This is great. “Meshery Broker” is the name of the component. Will you update the post title to use this name? Also, it is how to expose “as” a load balancer, not “and” given that there is only one entity that is being dealt with here.

@Lee can’t edit the title

@theBeginner86

  • Using docker desktop
  • Made sure the nats server is connected, double-checked by pinging it.
  • Made sure the load balancer (Meshery broker) is exposed to localhost.
  • Using the latest version of mesheryctl
    But still, the workload container isn’t being populated

There are a couple of ways through which I debug such problems:

  1. Check if you see logs like:
INFO[2022-09-11T18:33:30+05:30] Updated object: kube-root-ca.crt/dashboard-docker-3 of kind: ConfigMap in the database  app=meshery
INFO[2022-09-11T18:33:30+05:30] Updated object: operator-cbaa153a-bb7b-4cd7-8187-2b561927eccb.meshery.layer5.io/meshery of kind: ConfigMap in the database  app=meshery

This proves that MeshSync precisely discovered resources in your cluster and were successfully saved in your local Meshery DB

  1. Watch your local Meshery DB
    Meshery uses SQLite DB to store the K8s resources. In order to visualize this, you may use any VS Code extension that helps in opening up local DB. Configure it and then point it to ~/.meshery/config/mesherydb.sql (SQL file for the Meshery DB).

  2. Check logs of your MeshSync pod in case that is having some issues in reconciling by Meshery Operator. In this case, you can try deleting the MeshSync pod.

Use

k delete po meshery-meshsync-XXXXXXXX-XXXXX -n meshery
  1. Try hard resetting your Meshery DB. You can do it by going to the settings page on Meshery UI

Some more resources that are worth checking out:

  1. Database | Meshery
  2. Architecture | Meshery
  3. FAQ | Meshery
  4. Troubleshooting Errors while running Meshery | Meshery
1 Like

Ok. I have updated the title.