【发布时间】:2021-04-25 18:53:06
【问题描述】:
我最初在这里提到了类似的问题:ValidationError: missing required field "selector" in io.k8s.api.v1.DeploymentSpec
我将 apiVersion 即 apiVersion: extensions/v1beta1 更改为 apiVersion: apps/v1,我正在使用 kubeadm 和 3 个运行工作程序的节点。
但是在我的 yaml 中,我确实有匹配的标签选择器
labels:
app: rabbitmq
role: master
tier: queue
如果我尝试运行以下 yaml 部署:我得到
部署“rabbitmq”无效:
- spec.selector:必填值
- spec.template.metadata.labels:无效值:map[string]string{"app":"rabbitmq", "role":"master", "tier":"queue"}:
selector没有匹配模板labels
rabbitmq.yaml
---
# EXPORT SERVICE INTERFACE
kind: Service
apiVersion: v1
metadata:
name: message-queue
labels:
app: rabbitmq
role: master
tier: queue
spec:
ports:
- port: 5672
targetPort: 5672
selector:
app: rabbitmq
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rabbitmq-pv-claim
labels:
app: rabbitmq
role: master
tier: queue
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas: 1
template:
metadata:
labels:
app: rabbitmq
role: master
tier: queue
spec:
containers:
- name: rabbitmq
image: bitnami/rabbitmq:3.7
envFrom:
- configMapRef:
name: bitnami-rabbitmq-config
ports:
- name: queue
containerPort: 5672
- name: queue-mgmt
containerPort: 15672
livenessProbe:
exec:
command:
- rabbitmqctl
- status
initialDelaySeconds: 120
timeoutSeconds: 5
failureThreshold: 6
readinessProbe:
exec:
command:
- rabbitmqctl
- status
initialDelaySeconds: 10
timeoutSeconds: 3
periodSeconds: 5
volumeMounts:
- name: rabbitmq-storage
mountPath: /bitnami
volumes:
- name: rabbitmq-storage
persistentVolumeClaim:
claimName: rabbitmq-pv-claim
【问题讨论】:
标签: kubernetes