gpt4 book ai didi

ssl - GKE、NGINX 入口、HTTPS 和证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:50 26 4
gpt4 key购买 nike

我已经在 GCP/GKE 上设置了一个 Kubernetes 集群,除一件事外一切正常。当我访问该服务的外部 IP 时,会提供(默认?)“Kubernetes Ingress Controller Fake Certificate”。

我正在尝试使用 NGINX Ingress ( https://kubernetes.github.io/ingress-nginx/ ) 并遵循了我认为将 TLS secret 与 Ingress 相关联的正确说明。例如:

https://estl.tech/configuring-https-to-a-web-service-on-google-kubernetes-engine-2d71849520d

https://kubernetes.github.io/ingress-nginx/user-guide/tls/

我创建了一个这样的 secret :

apiVersion: v1
kind: Secret
metadata:
name: example-tls
namespace: default
data:
tls.crt: [removed]
tls.key: [removed]
type: kubernetes.io/tls

并将该 secret (我可以确认已正确应用并且我可以在集群配置中看到)与 Ingress 相关联,如下所示:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.allow-http: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/affinity: "cookie"
spec:
backend:
serviceName: example-service
servicePort: 80
tls:
- secretName: example-tls

根据文档,我觉得这应该可行(但是,除非有错误,否则我显然错了!)。

我还看到了一些关于要求 HTTPS 目标代理的文档。也许这就是我应该这样做的方式?

非常感谢您的提前帮助。

干杯,本

PS:这是我的负载均衡器配置:

kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
externalTrafficPolicy: Cluster
loadBalancerIP: [removed]
sessionAffinity: ClientIP
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https

编辑 1:查看我的 Ingress,我可以看到:

➜  gke git:(develop) ✗ kubectl describe ing example-tls-ingress
Name: example-tls-ingress
Namespace: default
Address: [removed]
Default backend: example-webapp-service:80 ([removed])
TLS:
example-tls terminates
Rules:
Host Path Backends
---- ---- --------
* * example-webapp-service:80 ([removed])

看来 secret 被揭开了。

这让我觉得 Ingress-terminated TLS 和 Load Balancer-terminated TLS 之间有区别吗?

最佳答案

可以引用this计算器帖子。

您需要安装 jetstack cert-Manager,创建 clusterissuer/issuer,以及您必须在其中传递域名/主机名的证书,jetstack 将根据您在“证书”中提到的名称自动为您创建 key '.

必须在入口规则中将该 secret 修补到 TLS。

关于ssl - GKE、NGINX 入口、HTTPS 和证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58635291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com