kubernetes

kubernetes usage

personal cheat sheet, remember the steps.. Used with java, micronaut, gradle, docker, local kubernetes in docker edge.

build app
  • build library (hier: micronaut rest service mit gradlew build), port 8080.

build docker image

docker (build image)

  • edit dockerfile

  • create docker image docker build -t sample .

  • list images docker images

deploy on kubernetes

kubernetes (deploy)

  • edit kubernetes deploy yaml file

  • deploy on kubernetes with

    • new kubectl create -f kubernetes-deploy.yaml

    • update kubectl apply -f kubernetes-deploy.yaml

  • check deployment kubectl get deployments

  • check services kubectl get services

  • check pods kubectl get pods

  • check logs kubectl logs sample-frontend-5d56d95f94-7kv8w

  • test access wget localhost:32704/hello (see port listed with get services command)

  • delete

    • kubectl delete deployment sample-frontend-deployment

    • kubectl delete service sample-frontend

access shortcut (not using service definition)

  • shortcut: kubectl port-forward sample-frontend-5d56d95f94-7kv8w 8080:8080

manage deployed service

dashboard

2018 08 07.kubernetes.dashboard
Figure 1. kubernetes dashboard

shell access

shell on alpine image (busybox)
kubectl exec -it sample-frontend-deployment-64f4bdccd4-qkxvz -- /bin/ash

configuration examples

application.properties micronaut rest service
micronaut:
    server:
        port: 8080
DOCKERFILE
FROM openjdk:8u171-alpine3.7
RUN apk --no-cache add curl
COPY build/libs/*-all.jar sample.jar
CMD java ${JAVA_OPTS} -jar sample.jar
kubernetes-deploy.yaml
apiVersion: v1
kind: Service
metadata:
  name: sample-frontend
spec:
  type: NodePort
  selector:
    app: sample-frontend-deployment
  ports:
  - protocol: TCP
    port: 8080
    name: http
  selector:
    app: sample-frontend-deployment
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample-frontend-deployment
spec:
  selector:
      matchLabels:
        app: sample-frontend-deployment
  replicas: 1
  template:
    metadata:
      labels:
        app: sample-frontend-deployment
    spec:
      containers:
        - name: sample-frontend
          image: sample:latest
          imagePullPolicy: Never
          ports:
            - containerPort: 8080
running service on kubernetes
>kubectl get services
NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes        ClusterIP   10.96.0.1       <none>        443/TCP          1d
sample-frontend   NodePort    10.103.132.72   <none>        9090:31353/TCP   12s

Published by in infrastructure and tagged devops using 261 words.