【发布时间】:2022-12-17 23:20:39
【问题描述】:
我正在尝试将 K8S api extensions/v1beta1 迁移到 networking.k8s.io/v1 Deprecated API Migration Guide
helm\templates\ingress.yaml(迁移前)
{{- if .Values.ingress.enabled -}}
{{- $serviceName := include "sonarqube.fullname" . -}}
{{- $servicePort := .Values.service.externalPort -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ template "sonarqube.fullname" . }}
labels:
app: {{ template "sonarqube.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- if .Values.ingress.labels }}
{{ .Values.ingress.labels | toYaml | trimSuffix "\n"| indent 4 -}}
{{- end}}
{{- if .Values.ingress.annotations}}
annotations:
{{- range $key, $value := .Values.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
spec:
rules:
{{- range .Values.ingress.hosts }}
{{- $path := default "/" .path }}
- host: {{ .name }}
http:
paths:
- path: {{ $path }}
backend:
serviceName: {{ $serviceName }}
servicePort: {{ $servicePort }}
- path: {{ printf "%s/*" (trimSuffix "/" $path) }}
backend:
serviceName: {{ $serviceName }}
servicePort: {{ $servicePort }}
helm\templates\ingress.yaml(迁移后)
{{- if .Values.ingress.enabled -}}
{{- $serviceName := include "sonarqube.fullname" . -}}
{{- $servicePort := .Values.service.externalPort -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ template "sonarqube.fullname" . }}
labels:
app: {{ template "sonarqube.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- if .Values.ingress.labels }}
{{ .Values.ingress.labels | toYaml | trimSuffix "\n"| indent 4 -}}
{{- end}}
{{- if .Values.ingress.annotations}}
annotations:
{{- range $key, $value := .Values.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
spec:
rules:
{{- range .Values.ingress.hosts }}
{{- $path := default "/" .path }}
- host: {{ .name }}
http:
paths:
- backend:
service:
name: {{ $serviceName }}
port:
number: {{ $servicePort }}
path: {{ $path }}
pathType: ImplementationSpecific
- backend:
service:
name: {{ $serviceName }}
port:
number: {{ $servicePort }}
path: {{ printf "%s/*" (trimSuffix "/" $path) }}
pathType: ImplementationSpecific
{{- end -}}
{{- if .Values.ingress.tls }}
tls:
{{ toYaml .Values.ingress.tls | indent 4 }}
{{- end -}}
{{- end -}}
迁移后进入以下错误: (在我的 helm feature 分支中没有提到 extensions/v1beta1)
Error: UPGRADE FAILED: unable to build kubernetes objects from current release manifest: resource mapping not found for name: "myname-myname" namespace: "" from "": no matches for kind "Ingress" in version "extensions/v1beta1" ensure CRDs are installed first
我的 K8S ingress 已经在 networking.k8s.io/v1 上运行 `
abhi@mySystem:$ kubectl get ing myname-myname -n sonarqube -o yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
meta.helm.sh/release-name: sonarqube
meta.helm.sh/release-namespace: sonarqube
nginx.ingress.kubernetes.io/proxy-body-size: 200m
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.org/client-max-body-size: 200m
creationTimestamp: "2021-11-16T14:34:25Z"
generation: 1
labels:
app: sonarqube
app.kubernetes.io/managed-by: Helm
chart: sonarqube-3.10.5
heritage: Helm
release: sonarqube
name: myname-myname
namespace: sonarqube
resourceVersion: "111111111"
uid: 11a1a11a-1111-11aa-a11a-aa1a111aa111
spec:
rules:
- host: sonarqube-dev.ad.xyz.com
http:
paths:
- backend:
service:
name: myname-myname
port:
number: 9000
path: /
pathType: ImplementationSpecific
- backend:
service:
name: myname-myname
port:
number: 9000
path: /*
pathType: ImplementationSpecific
status:
loadBalancer:
ingress:
- ip: 10.110.110.110
头盔版本 3.5.1 | Kubectl 客户端版本:v1.25.3 | Kubectl 服务器版本:v1.23.5
我试图将 Kubernetes api extensions/v1beta1 迁移到 networking.k8s.io/v1
【问题讨论】:
-
当你运行`kubectl api-versions | 时,你能看到
networking.k8s.io/v1吗? grep -i 网络`? -
@Adiii 是的,能够看到 networking.k8s.io/v1
-
您是否尝试删除并重新创建?
标签: kubernetes sonarqube kubernetes-helm