Ingress v1与v1beta1的比较
Ingress v1与v1beta1之间存在以下差异:
- API组不同:Ingress v1beta1使用
extensions/v1beta1
API组,Ingress v1使用`networking.k8s.io/v1` API组。 - 路径定义不同:Ingress v1beta1使用
spec.rules.http.paths.backend
来指定Service对象和端口,而Ingress v1使用spec.rules.http.paths.backend.service
和spec.rules.http.paths.backend.service.port
。 - TLS证书定义不同:Ingress v1beta1使用
spec.tls.secretName
来指定TLS证书的名称,而Ingress v1使用spec.tls.hosts
和spec.tls.secretName
来指定TLS证书的主机名和名称。
此外,Ingress v1还提供了一些新功能,例如TCP/UDP流量路由、HTTP/2协议和证书管理等。
Ingress v1和v1beta1示例
下面是一个使用Ingress v1beta1的示例:
代码语言:javascript复制apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /test
backend:
serviceName: example-service
servicePort: 80
下面是一个使用Ingress v1的示例:
代码语言:javascript复制apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
tls:
- hosts:
- example.com
secretName: example-tls-secret
rules:
- host: example.com
http:
paths:
- path: /test
pathType: Prefix
backend:
service:
name: example-service
port:
name: http
在上述示例中,Ingress v1beta1使用了extensions/v1beta1
API组和spec.rules.http.paths.backend
来定义路由规则。Ingress v1使用了networking.k8s.io/v1
API组和spec.rules.http.paths.backend.service
和spec.rules.http.paths.backend.service.port
来定义路由规则。此外,Ingress v1还指定了TLS证书,并使用了HTTP/2协议。