Rav*_*ven 0 docker google-cloud-platform kubernetes google-kubernetes-engine devops
我正在尝试在 Google Cloud 上使用 GKE 部署一个完整的 Web 应用程序(后端为 nodejs,前端为 angular)。然后为它启用 SSL。
我创建了一个全局 IP 地址(后来在列表中看到了它): gcloud compute addresses create mathbux-static-ip --global
之后,我部署了后端和前端——容器和 yaml 文件。
这里的问题是入口控制器上反映的IP地址来自无处,与我设置的不同(我刚刚在上面创建的静态IP地址)。
我遵循了如何在 GKE 上安装 Nginx-ingress 设置的指导方针:https : //kubernetes.github.io/ingress-nginx/deploy/#gce-gke
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user $(gcloud config get-value account)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/cloud/deploy.yaml
Run Code Online (Sandbox Code Playgroud)
这是我的 ingress.yaml的片段部分:
.... truncated . . .
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mathbux-ingress-frontend
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/ingress.global-static-ip-name: "mathbux-static-ip"
networking.gke.io/managed-certificates: mathbux-ssl
nginx.ingress.kubernetes.io/rewrite-target: /
Run Code Online (Sandbox Code Playgroud)
这是我在 Google 文档中托管的证书文件的片段:
apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
name: mathbux-ssl
spec:
domains:
- mathbux.com
- www.mathbux.com
Run Code Online (Sandbox Code Playgroud)
当我转到生成的 IP 地址时,整个应用程序运行良好,并且仅按预期运行:
1.) IP 地址不是我在 ingress.yaml 上创建和设置的特定静态全局 IP 地址
2.) 相应地,SSL 也失败了。(请注意,我已经将我的域名指向了我手动创建的静态 IP 地址)
您正在使用的注释 - kubernetes.io/ingress.global-static-ip-name- 可用于默认 GKE 入口,它本质上是一个谷歌负载均衡器 - 请参阅此处的文档 - https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer。
但是,您所做的是部署了 ingress-nginx(这是一个不同的入口提供程序)并将您的入口资源分配给它, kubernetes.io/ingress.class: nginx这基本上使您的静态 ip 注释毫无意义。
因此,您需要决定要使用哪个入口。如果您想使用 GKE 的负载均衡器,请删除入口 nginx 并按照我上面链接的默认 GKE 入口文档进行操作。
如果你想使用 ingress nginx,你可以在这里找到它的文档,包括 ssl 配置 - https://kubernetes.github.io/ingress-nginx/。
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |