将 networking.k8s.io/v1beta1 移植到 v1
Porting networking.k8s.io/v1beta1 to v1
我尝试从 networking.k8s.io/v1beta1
切换到 networking.k8s.io/v1
,但似乎我迷失了自我。
所以我有一个问题要问这里。尝试安装 dry-运行 时出现以下错误消息。
错误信息:
错误:无法从发布清单构建 kubernetes 对象:错误验证“”:错误验证数据:ValidationError(Ingress.spec.rules[0].http.paths[0].backend.service.port ): io.k8s.api.networking.v1.ServiceBackendPort 的类型无效:得到“string”,应为“map”
发生在这部分:
kind: Ingress
apiVersion: {{.Values.ingress.apiVersion}}
metadata:
name: ingress-backend-route
{{- if .Values.ingress.annotations }}
annotations:
{{ toYaml .Values.ingress.annotations | indent 4 }}
{{- end }}
spec:
rules:
- host: {{.Values.ingress.host}}
http:
paths:
- path: {{.Values.ingress.path}}
pathType: {{.Values.generalPrefix}}
backend:
service:
name: my-service-svc
port: {{ if .Values.oauth2.enable }}http-protected{{ else }}http{{ end }}
{{- if .Values.debug }}
- path: /couchdb
pathType: {{.Values.generalPrefix}}
backend:
service:
name: {{ .Release.Name }}-svc-couchdb
port:
number: 5984
- path: /rabbitmq
pathType: {{.Values.generalPrefix}}
backend:
service:
name: rabbitmq-svc
port:
number: 80
{{- end }}
我认为在行port: {{ if .Values.oauth2.enable }}http-protected{{ else }}http{{ end }}
http-protected / http 在 my-service.yaml
中定义
---
apiVersion: v1
kind: Service
metadata:
name: my-service-svc
spec:
selector:
app: my-service
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: http-protected
protocol: TCP
port: 8080
targetPort: 8080
新的 API 使用新的端口语法,也许这是问题所在,但我不太理解错误消息。可能有人在这里有提示`?
这是你的入口。端口期待另一个密钥。如果您只想按给定的编号使用端口或按定义的服务端口名称使用端口,请使用数字。
例如
port:
number: 80
或
port:
name: http
我尝试从 networking.k8s.io/v1beta1
切换到 networking.k8s.io/v1
,但似乎我迷失了自我。
所以我有一个问题要问这里。尝试安装 dry-运行 时出现以下错误消息。
错误信息:
错误:无法从发布清单构建 kubernetes 对象:错误验证“”:错误验证数据:ValidationError(Ingress.spec.rules[0].http.paths[0].backend.service.port ): io.k8s.api.networking.v1.ServiceBackendPort 的类型无效:得到“string”,应为“map”
发生在这部分:
kind: Ingress
apiVersion: {{.Values.ingress.apiVersion}}
metadata:
name: ingress-backend-route
{{- if .Values.ingress.annotations }}
annotations:
{{ toYaml .Values.ingress.annotations | indent 4 }}
{{- end }}
spec:
rules:
- host: {{.Values.ingress.host}}
http:
paths:
- path: {{.Values.ingress.path}}
pathType: {{.Values.generalPrefix}}
backend:
service:
name: my-service-svc
port: {{ if .Values.oauth2.enable }}http-protected{{ else }}http{{ end }}
{{- if .Values.debug }}
- path: /couchdb
pathType: {{.Values.generalPrefix}}
backend:
service:
name: {{ .Release.Name }}-svc-couchdb
port:
number: 5984
- path: /rabbitmq
pathType: {{.Values.generalPrefix}}
backend:
service:
name: rabbitmq-svc
port:
number: 80
{{- end }}
我认为在行port: {{ if .Values.oauth2.enable }}http-protected{{ else }}http{{ end }}
http-protected / http 在 my-service.yaml
---
apiVersion: v1
kind: Service
metadata:
name: my-service-svc
spec:
selector:
app: my-service
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: http-protected
protocol: TCP
port: 8080
targetPort: 8080
新的 API 使用新的端口语法,也许这是问题所在,但我不太理解错误消息。可能有人在这里有提示`?
这是你的入口。端口期待另一个密钥。如果您只想按给定的编号使用端口或按定义的服务端口名称使用端口,请使用数字。
例如
port:
number: 80
或
port:
name: http