Kubernetes nginx入口多路径
我有点麻烦,我想用多个路径创建入口 这是我的/templates/ingres.yamlKubernetes nginx入口多路径,nginx,kubernetes,kubernetes-helm,Nginx,Kubernetes,Kubernetes Helm,我有点麻烦,我想用多个路径创建入口 这是我的/templates/ingres.yaml {{- if .Values.ingress.enabled -}} {{- $ingressPath := .Values.ingress.path -}} {{- $appName := .Values.appName -}} apiVersion: extensions/v1beta1 kind: Ingress metadata: name: {{ .Values.appName }}-ing
{{- if .Values.ingress.enabled -}}
{{- $ingressPath := .Values.ingress.path -}}
{{- $appName := .Values.appName -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Values.appName }}-ingress
labels:
app: {{ .Values.appName }}
chart: {{ template "chart.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- with .Values.ingress.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ . }}
http:
paths:
- path: {{ $ingressPath }}
backend:
serviceName: {{ $appName }}-service
servicePort: 80
{{- end }}
{{- end }}
这是我的values.yaml文件
appName: vsemPrivet
replicaCount: 1
image:
repository: kakoito.domen.kg
tag: dev-56739-272faaf
pullPolicy: Always
imagePullSecretName: regcred
nodeSelector:
project: vazhni-project
service: vsem-privet
name:
type: ClusterIP
protocol: TCP
targetPort: 8080
## Configure ingress resourse
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: "nginx-prod-01"
nginx.ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "GET, POST, PUT, DELETE, OPTIONS, HEAD"
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/cors-allow-headers: "*"
nginx.ingress.kubernetes.io/cors-max-age: "3600"
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
hosts:
- mirtebe4elovek.com
path: /letter
hosts:
- mirtebe4elovek.com
path: /swagger-ui
hosts:
- mirtebe4elovek.com
path: /webjars
tls:
- secretName: ssl-secret
hosts:
- qa-ibank.anthill.fortebank.com
因此,在这里我的方案,我想作出3个不同的路径,但当我掌舵安装,然后kubectl描述我的ing,我得到以下
Name: service-core-ingress
Namespace: default
Address:
Default backend: default-http-backend:80 (<none>)
TLS:
ssl-secret terminates mirtebe4elovek.com
Rules:
Host Path Backends
---- ---- --------
mirtebe4elovek.com
/webjars my-service:80 (<none>)
Annotations:
kubernetes.io/ingress.class: nginxnginx
nginx.ingress.kubernetes.io/cors-allow-methods: GET, POST, PUT, DELETE, OPTIONS, HEAD
nginx.ingress.kubernetes.io/cors-max-age: 3600
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/cors-allow-credentials: true
nginx.ingress.kubernetes.io/cors-allow-headers: *
nginx.ingress.kubernetes.io/cors-allow-origin: *
nginx.ingress.kubernetes.io/enable-cors: true
nginx.ingress.kubernetes.io/from-to-www-redirect: true
Events: <none>
名称:服务核心入口
名称空间:默认值
地址:
默认后端:默认http后端:80()
TLS:
ssl机密终止mirtebe4elovek.com
规则:
主机路径后端
---- ---- --------
mirtebe4elovek.com
/webjars我的服务:80()
注释:
kubernetes.io/ingres.class:nginxnginx
nginx.ingres.kubernetes.io/cors-allow-methods:GET、POST、PUT、DELETE、OPTIONS、HEAD
nginx.ingres.kubernetes.io/cors-max-age:3600
nginx.ingres.kubernetes.io/rewrite-target:/
nginx.ingres.kubernetes.io/cors-allow-credentials:true
nginx.ingres.kubernetes.io/cors-allow-headers:*
nginx.ingres.kubernetes.io/cors-allow-origin:*
nginx.ingres.kubernetes.io/enable-cors:true
nginx.ingres.kubernetes.io/from-to-www-redirect:true
活动:
如您所见,我只有1个path/webjar,但其他2个在哪里/我在values.yaml文件中描述的字母和/或虚张声势用户界面
我怎样才能解决这个问题 在Helm中,
range
操作符用于迭代集合。
看起来这里需要在单个主机上有多个路径mirtebe4elovek.com
您可以按以下方式修改ingres.yaml
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
{{- range .Values.ingress.paths }}
- path: {{ . }}
backend:
serviceName: {{ $appName }}-service
servicePort: 80
{{- end }}
而value.yaml文件为:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: "nginx-prod-01"
nginx.ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "GET, POST, PUT, DELETE, OPTIONS, HEAD"
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/cors-allow-headers: "*"
nginx.ingress.kubernetes.io/cors-max-age: "3600"
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
host: "mirtebe4elovek.com"
paths:
- "/letter"
- "/swagger-ui"
- "/webjars"
在Helm中,
range
操作符用于遍历集合。
看起来这里需要在单个主机上有多个路径mirtebe4elovek.com
您可以按以下方式修改ingres.yaml
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
{{- range .Values.ingress.paths }}
- path: {{ . }}
backend:
serviceName: {{ $appName }}-service
servicePort: 80
{{- end }}
而value.yaml文件为:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: "nginx-prod-01"
nginx.ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "GET, POST, PUT, DELETE, OPTIONS, HEAD"
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/cors-allow-headers: "*"
nginx.ingress.kubernetes.io/cors-max-age: "3600"
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
host: "mirtebe4elovek.com"
paths:
- "/letter"
- "/swagger-ui"
- "/webjars"
是入口路径范围使用的一个很好的示例。是入口路径范围使用的一个很好的示例。