How to create deployment without images and later on, add new images?

5/17/2020

I'm new to k8s and I'm trying to learn how to setup deployments.

I'm searching for a way to create a new deployment without any images. Over time, I will add new (0 or more) images (and specify thier desired state). As I don't know what images the deployment will contain in advance, I can't use any existing configuration files.

Is it possible? If yes, how?

  • If it's possible, a command-line solution will be great.
-- Stav Alfi
kubernetes

1 Answer

5/17/2020

If you want to start a single instance of nginx, you can do

 $  kubectl run nginx --image=nginx

But it is not possible to create any deployments without image.

$ kubectl run demo  --image=""
error: --image is required

If you want to edit your existing deployment, then you can run

$ kubectl edit deployments <deployment-name> -n <namespace>

You can also patch container with new image to existing deployments by running following command

$ kubectl patch deployment <deployment-name> -p   '{"spec":{"template":{"spec":{"containers":[{"name":"myapp","image":"newimage"}]}}}}'

To replace image of a containers in deployment, run

$ kubectl set image deployment/<deployment-name> <container-name>=<image>
-- hoque
Source: StackOverflow