A message for Linux.com registered users: We are in the process of making changes to the Linux forums. From Monday, 8/13/18 at 6:00 PM PT to Tuesday, 8/14/18 at 4:00 PM PT, you will be unable to access the forums. They will re-launch as soon as possible on Tuesday, 8/14/18 with new features and improved functionality. Thank you for your patience and stay tuned for the new improved forums.

January 31, 2017

6.5 - Replication Controller Specifications

As I tried to create the replicationController, kubectl returned an error with the following message:

The ReplicationController "redis" is invalid: spec.template.metadata.labels: Invalid value: null: `selector` does not match template `labels`

As soon as I added the `labels` definition in the template to make sure the `app: redis` label is applied ie the new pod created by the ReplicationController. Indeed, when I looked at the documentation of the Pod Template section of the Replication Controller (https://kubernetes.io/docs/user-guide/replication-controller/#pod-template), I read:  In addition to required fields for a Pod, a pod template in a ReplicationController must specify appropriate labels.

After updating my yaml definition to add this labels tempalte for new pods, I'm able to create the replicationController. 

Should this line by added to the sample in the slides, or did I missed anything which makes this extra line optional?

My new yaml is therefore: (the spec/template/metadata/labels/ node has been added)

apiVersion: v1
kind: ReplicationController
metadata:
  name: redis
  namespace: default
spec:
  replicas: 2
  selector:
    app: redis
  template:
    metadata:
      name: redis
      labels:        # This line is not in the 6.5 slides
        app: redis   # This line is not in the 6.5 slides
    spec:
      containers:
        - image: redis:3.2
          imagePullPolicy: IfNotPresent
          name: redis


 

 

Click Here!