我有一个多组分平台,我为它创建了所需的舵机图表,它在Kubernetes <= 1.15上正常工作。
现在,我需要准备它们与k8s 1.16兼容。我认为只需将extensions/v1beta1更改为apps/v1就足够了,但在尝试在k8s上安装舵机图表后,我得到了以下错误:
Error: release test166 failed: Deployment.apps "bridge-http" is invalid: [spec.selector: Required value, spec.template.metadata.labels: Invalid value: map[string]string{"io.kompose.service":"bridge-http"}: `selector` does not match template `labels`]这是我的yaml/helm文件,它在旧的k8s上工作:
---
apiVersion: v1
kind: Service
metadata:
annotations:
Process: bridge-http
creationTimestamp: null
labels:
io.kompose.service: bridge-http
name: bridge-http
spec:
ports:
- name: "9995"
port: 9995
targetPort: 9995
selector:
io.kompose.service: bridge-http
status:
loadBalancer: {}
---
# apiVersion: extensions/v1beta1
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
Process: bridge-http
creationTimestamp: null
labels:
io.kompose.service: bridge-http
name: bridge-http
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: bridge-http
spec:
containers:
- args:
- bash
- -c
- npm start
env:
- name: WWS_BRIDGE_HTTP_BROKER_DATA_USER
value: {{ .Values.WWS_BRIDGE_HTTP_BROKER_DATA_USER | quote }}
image: {{ .Values.image }}
name: bridge-http
readinessProbe:
tcpSocket:
port: 9995
initialDelaySeconds: 5
periodSeconds: 15
ports:
- containerPort: 9995
resources:
requests:
cpu: 0.1
memory: 250Mi
limits:
cpu: 2
memory: 5Gi
restartPolicy: Always
imagePullSecrets:
- name: wwssecret
status: {}我在这里找不到关于选择器和标签的任何变化:https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/
那么,为什么我要得到这个错误,以及我如何解决它呢?
发布于 2019-12-09 10:47:32
作为1.16升级的一部分,我们将扩展/v1beta1改为app/v1。除此之外,您还需要在主规范下添加下面的代码段。
kind: Deployment
metadata:
annotations:
Process: bridge-http
creationTimestamp: null
labels:
io.kompose.service: bridge-http
name: bridge-http
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: bridge-http
selector:
matchLabels:
app: bridge-httphttps://serverfault.com/questions/986367
复制相似问题