1

我有几个关于 kubernetes 入口服务的问题 [/controllers]

例如,我有一个尝试使用 kubectl 运行的 nginx 前端映像 -

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在 Google 云控制台中正确创建并提供my的位置。[我假设这里的服务端口是我想要在我的“coreos”IP 上的端口,所以我最初将它设置为 80 这不起作用所以我尝试将它设置为与第一步中指定的相同但它仍然没有不工作。]

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

这就是为什么我尝试使用 -

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

看看它是否与 NodePort 一起工作,我能够访问前端。

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

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

4

1 回答 1

0

是的,服务在那里。我尝试使用 - kubectl get services, kubectl describe service k8urtutorsv2 检查状态。它显示了服务。我尝试编辑它并保存了节点端口值。问题是它适用于 nodeport 但不适用于 80 或 443。

您不能直接在端口 80 或 443 上公开服务。

暴露服务的可用范围在 kube-api 配置中由具有默认值service-node-port-range的选项预定义。 30000-32767

于 2018-05-07T09:15:51.110 回答