Listings Azure-Tutorial, Teil 1

Listing 1: Docker-Image für eine Angular-Anwendung vorbereiten
FROM nginx:alpine

COPY nginx.conf /etc/nginx/nginx.conf
COPY mime.types /etc/nginx/conf/mime.types

WORKDIR /usr/share/nginx/html
COPY dist/berechnung-frontend/ /var/www/berechnung

-----

Listing 2: Image für eine Spring-Boot-Applikation
FROM openjdk:11-jre-slim
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","de.berechnung.configuration.Application"]

-----

Listing 3: Die Anwendung in Kubernetes bereitstellen
apiVersion: apps/v1
kind: Deployment
metadata:
    name: my-berechnungsservice-deployment
spec:
    replicas: 3
    template:
      metadata:
        labels:
          app: my-berechnungsservice-deployment
      spec:
        containers:
        -    name: my-app
             image: berechnung:master
             ports:
             -    containerPort: 8080

-----

Listing 4: Die Ressource Service für den Berechnungsdienst
apiVersion: v1
kind: Service
metadata:
    name: my-berechnungsservice
spec:
    selector:
      name: my-app
    ports:
      -    protocol: TCP
           port: 80
           targetPort: 8080

-----

Listing 5: Einen Service vom Typ LoadBalancer konfigurieren
apiVersion: v1
kind: Service
metadata:
    name: my-berechnungsservice
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
    selector:
      name: my-app
    ports:
      -    protocol: TCP
           port: 80
           targetPort: 8080
    clusterIP: 10.0.171.239
    loadBalancerIP: 78.11.24.19
    type: LoadBalancer
status:
    loadBalancer:
      ingress:
        -    ip: 146.148.47.155


