kubernetes使用入口服务配置错误将nginx暴露给gcp中的静态ip

时间:2018-04-28 04:51:43

标签: nginx kubernetes google-cloud-platform kubectl kubernetes-ingress

我有几个关于kubernetes ingress service [/ controllers]

的问题

例如我有一个nginx前端图像,我试图用kubectl运行 -

kubectl run <deployment> --image <repo> --port <internal-nginx-port>. 

现在我尝试用服务将其暴露给外部世界 -

kubectl expose deployment <deployment> --target-port <port>. 

然后尝试使用以下nignx-ing.yaml创建入口服务 -

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: urtutorsv2ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "coreos"
spec:
  backend:
    serviceName: <service>
    servicePort: <port>

正确创建ingress.global-static-ip-name的位置&amp;可得到 在谷歌云控制台。 [我假设这里的服务端口是我想要的“coreos”IP上的端口,所以我把它设置为80最初没有用,所以我尝试将它设置为与第一步中指定的相同,但它仍然没有'工作。]

所以,问题是我无法访问两个网址的前端 http://COREOS_IPhttp://COREOS_IPIP

这就是我尝试使用的原因 -

kubectl expose deployment <deployment> --target-port <port>.  --type NodePort 

看看它是否适用于NodePort&amp;我能够访问前端。

所以,我认为这里可能存在配置错误,因为我没有得到入口的结果。

这里的任何人都可以帮助调试/解决问题吗?

1 个答案:

答案 0 :(得分:0)

  是的,服务就在那里。我试图检查状态 - kubectl获取服务,kubectl描述服务k8urtutorsv2。它显示了这项服务。我试过编辑它&amp;保存了nodeport值。问题是它适用于nodeport但不适用于80或443.

您无法直接在端口80或443上公开服务。

service-node-port-range选项通过default value 30000-32767在kube-api配置中预定了可用的公开服务范围。