Wie kann man minikube mit lokalen Dockerfiles verwenden?

Minikube ist der perfekte Partner, wenn es darum geht, auf dem eigenen Rechner mal schnell ein Kubernetes Setup zu testen bzw. für die Entwickung.

Aber wie bekommt man ein lokales Image bzw. ein Dockerfile in Minikube, sodass man es z.B. für Deployments verwenden kann?

Mane ersetzt einfach docker mit minikube:

minikube build -t mein-image-name:latest .

Innerhalb eines Deployments kann man nun so auf das Image zugreifen:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mein-app-name
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mein-app-name
  template:
    metadata:
      labels:
        app: mein-app-name
    spec:
      containers:
        - name: mein-app-name
          image: mein-image-name:latest
          imagePullPolicy: Never #oder 'IfNotPresent'

Das entscheidende ist tatsächlich die imagePullPolicy – wenn diese nicht auf Never oder IfNotPresent gesetzt wird, dann versucht minikube bzw. kubernetes das image von Docker Hub zu laden.

Alternativ zu “build” kann man mittels “load” auch ein Image, welches man mittels “docker build” gebaut hat, in die minikube registry kopieren.