Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set the imagePullPolicy with Minikube

I am new to Kubernetes. I am trying to follow this tutorial that instructs me on how to use minikube to setup a local service. I was able to get things running with the $ kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080 service from the tutorial. Huzzah!

Now I want to run a server with a locally tagged-and-built Docker image. According to this post all I need to do is tell my computer to use the minikube docker daemon, build my image, and set the imagePullPolicy to never.

How and where do I set the imagePullPolicy with minikube? I've googled around and while there's plenty of results, my "babe in the woods" status with K8 leads to information overload. (i.e. the simpler your answer the better)

like image 341
Alan Storm Avatar asked Dec 20 '18 23:12

Alan Storm


1 Answers

You have to edit your Deployment (kubectl run creates a deployment). The spec would look something like this:

spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 2
  selector:
    matchLabels:
      run: hello-minikube
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: hello-minikube
    spec:
      containers:
      - image: k8s.gcr.io/echoserver:1.10 <-- change to the right image
        imagePullPolicy: IfNotPresent <-- change to Always
        name: hello-minikube
        ports:
        - containerPort: 8080
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

Edit with:

$ kubectl edit deployment hello-minikube
like image 133
Rico Avatar answered Oct 31 '22 01:10

Rico