Search code examples
kubernetesreplicaset

Replicaset doesnot update pods in when pod image is modified


I have created a replicaset with wrong container image with below configuration.

apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
  name: rs-d33393
  namespace: default
spec:
  replicas: 4
  selector:
    matchLabels:
      name: busybox-pod
  template:
    metadata:
      labels:
        name: busybox-pod
    spec:
      containers:
      - command:
        - sh
        - -c
        - echo Hello Kubernetes! && sleep 3600
        image: busyboxXXXXXXX
        name: busybox-container

Pods Information:

$ kubectl get pods
NAME              READY     STATUS             RESTARTS   AGE
rs-d33393-5hnfx   0/1       InvalidImageName   0          11m
rs-d33393-5rt5m   0/1       InvalidImageName   0          11m
rs-d33393-ngw78   0/1       InvalidImageName   0          11m
rs-d33393-vnpdh   0/1       InvalidImageName   0          11m

After this, i try to edit the image inside replicaset using kubectl edit replicasets.extensions rs-d33393 and update image as busybox.

Now, i am expecting pods to be recreated with proper image as part of replicaset.

This has not been the exact result.

Can someone please explain, why it is so?

Thanks :)


Solution

  • With ReplicaSets directly you have to kill the old pod, so the new ones will be created with the right image.

    If you would be using a Deployment, and you should, changing the image would force the pod to be re-created.