Mit Kubernetes 1.2.4, warum verursacht meine unter Deployment Definition (redis.yaml) den folgenden Fehler?Kubernetes - Warum kann das Selektorfeld nicht für die Bereitstellung validiert werden?
$ kubectl apply -f redis.yaml
error validating "redis.yaml": error validating data: found invalid field name for v1beta1.LabelSelector; if you choose to ignore these errors, turn validation off with --validate=false
redis.yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis
spec:
replicas: 3
selector:
name: redis
template:
metadata:
labels:
name: redis
spec:
containers:
- name: redis
image: kubernetes/redis:v1
ports:
- containerPort: 6379
resources:
limits:
cpu: "0.1"
volumeMounts:
- mountPath: /redis-master-data
name: data
volumes:
- name: data
emptyDir: {}
Könnten Sie bitte den Zweck von '.spec.selector' erläutern? Ich bin ein wenig verwirrt durch die Dokumentation, vor allem den Absatz "Wenn angegeben, .spec.selector" muss übereinstimmen .spec.template.metadata.labels "[...]. Wenn" .spec.selector "ist nicht angegeben , '.spec.selector.matchLabels' wird standardmäßig auf' .spec.template.metadata.labels' "gesetzt. Was ist der Zweck, '.spec.selector' zu haben, wenn es' .spec.selector.matchLabels' abgleichen muss, aber auch, wenn es nicht angegeben wird, wird es standardmäßig verwendet? –
Ich wollte '.spec.template.metadata.labels' anstelle von' .spec.selector.matchLabels' in meinem letzten Satz sagen, sorry. –