You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org

User:Jeena Huneidi/Kubernetes Migration

From Wikitech-static
< User:Jeena Huneidi
Revision as of 20:54, 24 March 2020 by imported>Jeena Huneidi (Fix headings)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Migrating a service to Kubernetes

A Guide Using HelloWorldOid

TL;DR:

  1. Create .pipeline/blubber.yaml
  2. Generate dockerfile using blubber
  3. Create docker image
  4. Create helm deployment chart
  5. Test in minikube (Try local-charts if you want to test integrations with other services/apps or do more development!)
  6. Run benchmarks and update deployment chart
  7. Create .pipeline/config.yaml
  8. Update integration/config to run the pipeline you created for testing and publishing your service
  9. Talk to SRE about deployment to production

Set Up

We’re going to migrate HelloWorldOid to Kubernetes!

Clone the Repositories:


Creating a Docker Image

Services running in production need a docker image generated and pushed to the wikimedia docker registry in CI. Notice the .pipeline/blubber.yaml file in the helloworldoid directory:

blubber.yaml:

[image or code here]

blubber.yaml tells the blubber service what operating system, packages, libraries, and files are needed in your docker image. We need a docker image to deploy to Kubernetes because services in Kubernetes must be in a container. The blubber service will output a dockerfile that can be used to create your docker image. If you want to create your own blubber configuration, some tutorials can be found here: [[1]]



config.yaml

[image or code here]

config.yaml describes what actions need to happen in the continuous integration pipeline and what to publish, for example, tests and lint need to run before publishing a docker image. If you want to create your own pipeline configuration, some tutorials can be found here: [[2]]