问题确实是 Nginx Ingress 在 Google 云平台上不是标准的,需要手动安装 - 哎呀!
然而,我发现安装它比预期的要困难得多(特别是因为我的需求专门与 GCP 有关),因此我将概述我从开始到结束所采取的每一步,希望对使用该特定云的其他人有所帮助并有特定的需求,并找到不太符合要求的通用指南。
- 获取集群凭证
这是一个 GCP 特定步骤,让我困惑了一段时间 - 如果你遇到奇怪的错误,比如
kubectl unable to connect to server: x509: certificate signed by unknown authority
当尝试运行 kubectl 命令时。运行此命令来设置您的控制台:
gcloud container clusters get-credentials YOUR-K8s-CLUSTER-NAME --z YOUR-K8S-CLUSTER-ZONE
- 安装头盔
Helm 本身并不难安装,并且可以在 GCP 自己的文档中找到说明;然而,他们忽略的是,在新版本的 K8s 上,需要 RBAC 配置才能允许 Tiller 安装东西。之后运行以下命令helm init
:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
- 通过 Helm 安装 Nginx Ingress
这是另一个让我绊倒的步骤 -rbac.create=true
对于上述 RBAC 因素是必要的。
helm install --name nginx-ingress-release stable/nginx-ingress --set rbac.create=true
- 创建您的 Ingress 资源
这一步是最简单的,并且有很多示例 nginx 入口配置需要调整 - 请参阅上面 @JahongirRahmonov 的示例。您必须记住的是,此步骤的设置时间从半小时到一个多小时不等 - 如果您更改配置并立即再次检查,它将不会设置,但不要将此视为暗示你把事情搞砸了!等一下先看看。
很难相信现在使用 Kubernetes 将 HTTP 重定向到 HTTPS 需要花费多少时间,但我希望本指南可以帮助其他陷入如此看似简单但又如此关键需求的人。