我有一个基本的 nginx 部署和一个由 let's 通过 cert-manager 加密颁发的现有证书。我以为一切都已准备就绪,可以开始使用证书,但我无法连接 https。
连接到 LoadBalancer IP 和域可以正常工作。使用 https 连接域无法连接。Chrome 这么说ERR_SSL_PROTOCOL_ERROR
,Firefox 这么说SSL_ERROR_RX_RECORD_TOO_LONG
,SSL Labs 这么说Assessment failed: No secure protocols supported
。都是同一个问题。
这是服务:
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: example
labels:
app: example
spec:
type: LoadBalancer
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 80
selector:
app: example
Run Code Online (Sandbox Code Playgroud)
这是入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx
namespace: example
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production …
Run Code Online (Sandbox Code Playgroud) 我们在 AWS 中使用 NLB,通过 nginx 入口控制器连接到我们的 EKS 集群。我们的一些请求会随机出现 504 网关超时。
我们认为我们将问题调试到了我们的 nginx 入口。根据 Stackoverflow 的一些建议,我们使用了 Connection 标头。
我们还注意到我们proxy_read_timeout
在 60 秒时的另一种行为,我们的浏览器请求将在 60.xx 秒完成。当我们将它减少到 30 时,它变成了 30.xx,20 变成了 20.xx。我们去了 1,但仍然随机出现 504 网关超时,并且不明白为什么proxy_read_timeout
在我们的环境中会有这种行为。
我们想了解什么是影响proxy_read_timeout
以及为什么我们会得到上述行为?还有一种方法可以在我们的 nginx 入口上将 Connection 设置为“”(我们无法通过nginx.ingress.kubernetes.io/connection-proxy-header: ""
)
提前致谢!
我正在尝试删除属于已灭绝的 k8s 入口的转发规则、目标代理、url 映射和后端服务。
我成功删除了转发规则和目标代理,但是当我去删除 url-map 时,我得到以下信息:
gcloud compute url-maps delete k8s-um-prism-feature-password-workflow-unit-tests-prism-ingres0 --quiet
ERROR: (gcloud.compute.url-maps.delete) Could not fetch resource:
- The url_map resource 'projects/project-id/global/urlMaps/k8s-um-prism-feature-password-workflow-unit-tests-prism-ingres0' is already being used by 'projects/project-id/global/targetHttpProxies/k8s-tp-prism-feature-password-workflow-unit-tests-prism-ingres0
Run Code Online (Sandbox Code Playgroud)
k8s-tp-prism-feature-password-workflow-unit-tests-prism-ingres0
不是它所属的目标代理的名称,但我继续尝试删除它并得到:
gcloud compute target-https-proxies delete k8s-tp-prism-feature-password-workflow-unit-tests-prism-ingres0 --quiet
ERROR: (gcloud.compute.target-https-proxies.delete) Could not fetch resource:
- The resource 'projects/project-id/global/targetHttpsProxies/k8s-tp-prism-feature-password-workflow-unit-tests-prism-ingres0' was not found
Run Code Online (Sandbox Code Playgroud) kubernetes google-cloud-platform google-kubernetes-engine ingress
在我的 Kubernetes 集群中,我想将 nginx 负载均衡器绑定到节点的外部 IP。但是,外部 IP 始终显示为“待处理”。
集群在两个使用 weave 的根服务器上运行。
我能做些什么来解决这个问题吗?使用“externalIPs”数组是有效的,但不是我想要的,因为 IP 不是由 Kubernetes 管理的。