Fork of https://github.com/paulbouwer/hello-kubernetes mixed with troyfontaine/armhf-alpinelinux
5.7K
(Forked from https://github.com/paulbouwer/hello-kubernetes with ARM compatible Alpine)
This image can be deployed on a Kubernetes cluster. It displays:
The default "Hello world!" message displayed can be overridden using the MESSAGE environment variable.
The default port of 8080 can be overriden using the PORT environment variable.
It is available on DockerHub as:
You can deploy the image to your Kubernetes cluster one of two ways:
Deploy using the hello-kubernetes.yaml, which contains definitions for the service and deployment objects:
# hello-kubernetes.yaml
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
selector:
app: hello-kubernetes
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-kubernetes
spec:
replicas: 3
selector:
matchLabels:
app: hello-kubernetes
template:
metadata:
labels:
app: hello-kubernetes
spec:
containers:
- name: hello-kubernetes
image: myoung34/armhf-hello-kubernetes:latest
ports:
- containerPort: 8080
$ kubectl apply -f yaml/hello-kubernetes.yaml
Or, deploy by executing the following run and expose commands on kubectl.
$ kubectl run hello-kubernetes --replicas=3 --image=myoung34/armhf-hello-kubernetes:latest --port=8080
$ kubectl expose deployment hello-kubernetes --type=LoadBalancer --port=80 --target-port=8080 --name=hello-kubernetes
This will display a Hello world! message when you hit the service endpoint in a browser. You can get the service endpoint ip address by executing the following command and grabbing the returned external ip address value:
$ kubectl get service hello-kubernetes
You can customise the message displayed by the hello-kubernetes container as follows:
Deploy using the hello-kubernetes.custom-message.yaml, which contains definitions for the service and deployment objects:
In the definition for the deployment, add an env variable with the name of MESSAGE. The value you provide will be displayed as the custom message.
# hello-kubernetes.custom-message.yaml
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-custom
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
selector:
app: hello-kubernetes-custom
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-kubernetes-custom
spec:
replicas: 3
selector:
matchLabels:
app: hello-kubernetes-custom
template:
metadata:
labels:
app: hello-kubernetes-custom
spec:
containers:
- name: hello-kubernetes
image: myoung34/armhf-hello-kubernetes:latest
ports:
- containerPort: 8080
env:
- name: MESSAGE
value: I just deployed this on Kubernetes!
$ kubectl apply -f yaml/hello-kubernetes.custom-message.yaml
Or, deploy by executing the following run and expose commands on kubectl, with the environment variable MESSAGE provided as part of the run command.
$ kubectl run hello-kubernetes --replicas=3 --image=myoung34/armhf-hello-kubernetes:latest --port=8080 --env="MESSAGE=I just deployed this on Kubernetes!"
$ kubectl expose deployment hello-kubernetes --type=LoadBalancer --port=80 --target-port=8080 --name=hello-kubernetes
By default, the hello-kubernetes app listens on port 8080. If you have a requirement for the app to listen on another port, you can specify the port via an env variable with the name of PORT. Remember to also update the containers.ports.containerPort value to match.
Here is an example:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-kubernetes-custom
spec:
replicas: 3
selector:
matchLabels:
app: hello-kubernetes-custom
template:
metadata:
labels:
app: hello-kubernetes-custom
spec:
containers:
- name: hello-kubernetes
image: armhf-hello-kubernetes:latest
ports:
- containerPort: 80
env:
- name: PORT
value: "80"
If you'd like to build the image yourself, then you can do so as follows. The build-arg parameters provides metadata as defined in OCI image spec annotations.
Bash
$ docker build --no-cache --build-arg IMAGE_VERSION="1.5" --build-arg IMAGE_CREATE_DATE="`date -u +"%Y-%m-%dT%H:%M:%SZ"`" --build-arg IMAGE_SOURCE_REVISION="`git rev-parse HEAD`" -f Dockerfile -t "hello-kubernetes:1.5" .
Powershell
PS> docker build --no-cache --build-arg IMAGE_VERSION="1.5" --build-arg IMAGE_CREATE_DATE="$(Get-Date((Get-Date).ToUniversalTime()) -UFormat '%Y-%m-%dT%H:%M:%SZ')" --build-arg IMAGE_SOURCE_REVISION="$(git rev-parse HEAD)" -f Dockerfile -t "hello-kubernetes:1.5" .
Content type
Image
Digest
Size
20.3 MB
Last updated
over 7 years ago
docker pull myoung34/armhf-hello-kubernetes