Kubernetes 尽管未配置TLS,minikube入口仍坚持使用HTTPS
我想使用minikube在本地测试我的Helm打包的Kubernetes应用程序,使用Kubernetes入口将HTTP代理到我的应用程序提供的HTTP服务。但这不起作用,因为入口或入口控制器坚持连接为HTTPS,尽管我没有请求TLS。如何确保入口允许HTTP kubectl get-output=yaml ingress显示存在一个入口资源,用于HTTP,不带TLS:Kubernetes 尽管未配置TLS,minikube入口仍坚持使用HTTPS,kubernetes,https,minikube,kubernetes-ingress,Kubernetes,Https,Minikube,Kubernetes Ingress,我想使用minikube在本地测试我的Helm打包的Kubernetes应用程序,使用Kubernetes入口将HTTP代理到我的应用程序提供的HTTP服务。但这不起作用,因为入口或入口控制器坚持连接为HTTPS,尽管我没有请求TLS。如何确保入口允许HTTP kubectl get-output=yaml ingress显示存在一个入口资源,用于HTTP,不带TLS: apiVersion: v1 items: - apiVersion: extensions/v1beta1 kind:
apiVersion: v1
items:
- apiVersion: extensions/v1beta1
kind: Ingress
metadata:
creationTimestamp: "2019-10-06T10:54:38Z"
generation: 1
labels:
app.kubernetes.io/instance: quarreling-shrimp
app.kubernetes.io/managed-by: Tiller
app.kubernetes.io/name: mc
app.kubernetes.io/version: 2.3.1-SNAPSHOT
helm.sh/chart: mc-2.3.1
name: quarreling-shrimp-mc
namespace: default
resourceVersion: "126597"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/quarreling-shrimp-mc
uid: 296f8d69-8f40-49c5-b352-acbc6ec1cc19
spec:
rules:
- http:
paths:
- backend:
serviceName: quarreling-shrimp-mc-be-svc
servicePort: 8080
path: /api
- backend:
serviceName: quarreling-shrimp-mc-fe
servicePort: 80
path: /
status:
loadBalancer:
ingress:
- ip: 192.168.122.66
kind: List
metadata:
resourceVersion: ""
selfLink: ""
但是当我尝试使用HTTP访问应用程序时,响应会尝试重定向到使用HTTPS。这是curl-i 192.168.122.66的输出:
minikube使用一个。该控制员:
默认情况下,如果为该入口启用TLS,则控制器将308重定向到HTTPS
但是,正如您所指出的,文档建议在您的情况下不应该进行重定向,因为您没有启用TLS
我观察到,一旦我在未启用TLS的情况下将host:field添加到特定入口资源中,生成的curl命令将返回HTTP/1.1200,而不执行重定向操作:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: some-svc
servicePort: 80
path: /
$curl-v http://$kubectl get svc-l component=controller-o jsonpath='{.items[0]。status.loadBalancer.ingres[0]。ip}'-H'主机:example.com'
因此,我假设尽管host:字段是可选的,但如果您没有在目标入口资源中指定它,入口控制器将无法正确识别TLS相关设置。因此,这个问题与。
rules:
- host: example.com
http:
paths:
- backend:
serviceName: some-svc
servicePort: 80
path: /
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200
> GET / HTTP/1.1
> Host: XX.XX.XX.XX
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 308 Permanent Redirect