Deploy Meteor app on Kubernetes

Hi everybody !

Nice to meet you Meteor community :slightly_smiling_face:

We are currently developing an app using Vulcan framework, which is a Meteor based framework, and we are looking to deploy this app on Kubernetes.
For now, we use Mup to deploy it on a VM, but it’s time to migrate :blush:

I found some documentation, but they look likes a little bit old.
The most interesting one here : Meteor + Kubernetes (announcement: first draft is ready)
Unfortunately, the documentation still be a draft :cry:

Reading the doc, I was thinking that maybe, mup already done a part of the job.
So, I posted an issue on the Github : https://github.com/zodern/meteor-up/issues/1207

I am not sure that the “issue” part is the good one to discuss about that, so now, I’m here ! :smiley:

Does anybody are working on it today ?
Did you make an “homemade” image of your application ? Or do you use mup to create the image ? Maybe to deploy it on a Kubernetes pod :o ?

I am new with kubernetes, even in docker, trying to find the most easier way to deploy a prototype on kubernete, all documentations or tips can help me ! :innocent:

Have good day and thank you for your help,

Julien

1 Like

I use this file - it’s optimized to reduce the image size (for speedier upload/installs) based on which files change most frequently (npm < server < client). If you build for cordova, you’d need to modify the script accordingly.

FROM node:12.16.1
RUN mkdir -p /opt/app/programs/server

###########################################################
#############Common Meteor Block###########################
###########################################################
ADD bundle/programs/server/npm /opt/app/programs/server/npm
ADD bundle/programs/server/package.json /opt/app/programs/server/package.json

RUN cd /opt/app/programs/server && npm i


ADD bundle/programs/server/*.js /opt/app/programs/server/
ADD bundle/programs/server/npm-shrinkwrap.json /opt/app/programs/server/
ADD bundle/programs/server/config.json /opt/app/programs/server/
ADD bundle/programs/server/npm-rebuilds.json /opt/app/programs/server/
ADD bundle/programs/server/program.json /opt/app/programs/server/

ADD bundle/server /opt/app/server
ADD bundle/star.json /opt/app/
ADD bundle/README /opt/app/
ADD bundle/main.js /opt/app/
ADD bundle/.node_version.txt /opt/app/
ADD bundle/programs/server/assets /opt/app/programs/server/assets
ADD bundle/programs/server/packages /opt/app/programs/server/packages
ADD bundle/programs/server/app /opt/app/programs/server/app
ADD bundle/programs/web.browser /opt/app/programs/web.browser
ADD bundle/programs/web.browser.legacy /opt/app/programs/web.browser.legacy
###########################################################
#############END Common Meteor Block#######################
###########################################################

WORKDIR /opt/app

CMD node main.js

Hi @znewsham,

Thank you for the answer :slight_smile:

Is this the dockerfile you use to make an image of your app ?
Do you upload it directly in kubernetes after ?

Thank you very much ! :grinning:

I don’t use it with Kubernetes - I either upload it to dockerhub, or AWS ECR and use it from there. It works with either just docker running on a host, or through AWS ECS, it would probably work with Kubernetes too, but I’ve not required that level of configuration yet