Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

IzumaNetworks/trivial-golang-k8s-deployment

Repository files navigation

Simple example golang app with a k8s deployment for use in other examples.

This is good boilerplate code for starting a Golang project that will deploy on Kubernetes.

This example is used by these tutorials / posts

Sync a pod with rsync for fast K8s ECT cycle

How to build a x86/amd64 docker container image on Apple silicon (or any other arch)

Build, push and pull a container using Github GHCR or Gitlab Container Registry

Step 1: Build docker images

Assuming you will deploy to an amd64 arch...

If building on an amd64 arch machine:

docker build --tag trivial-golang-k8s-deployment .

If on another arch, such as Apple Silicon etc.

docker buildx build --platform linux/amd64 --tag trivial-golang-k8s-deployment --load .

Or if need Cgo and you want an Alpine base image:

docker buildx build -f Dockerfile-cross-cgo-xx-alpine --platform linux/amd64 --tag trivial-golang-k8s-deployment --load .

To build the development images:

docker build --tag trivial-golang-k8s-deployment -f Dockerfile.dev .

Or

docker buildx build --platform linux/amd64 --tag trivial-golang-k8s-deployment -f Dockerfile.dev --load .

Step 2: Upload to some docker registry

If you just want a test deployment using the original example - you can skip this

Otherwise read: https://www.izumanetworks.com/blog/use-github-gitlab-for-docker-registry/

Step 3: Deploy to K8s

For deployment on K8s you will need to push the docker image to a registry. You can't push to the registry for this repo, but these instructions will work if you forked this repo:

kubectl apply -f deployment.yaml

To apply our basic deployment.

apiVersion: v1
kind: Pod
metadata:
 name: trivial-golang-k8s-deployment
 labels:
 app: trivial-golang-k8s-deployment
spec:
 containers:
 - name: trivial-golang-k8s-deployment
 image: ghcr.io/izumanetworks/trivial-golang-k8s-deployment:latest
 imagePullPolicy: Always
 ports:
 - containerPort: 8080
 livenessProbe:
 httpGet:
 path: /hello
 port: 8080
 initialDelaySeconds: 5
 periodSeconds: 5
 imagePullSecrets:
 - name: regcred

About

Simple boilerplate / template example Golang app, with multi-arch Dockerfile and Kubernetes deployment yaml

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

AltStyle によって変換されたページ (->オリジナル) /