August 9, 2018
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
shell access
kubectl exec -it sample-frontend-deployment-64f4bdccd4-qkxvz -- /bin/ash
configuration examples
micronaut:
    server:
        port: 8080
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
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
>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