【问题标题】:Google Compute kubernetes only can be access when nodePort on NodePort service is 80只有 NodePort 服务上的 nodePort 为 80 时才能访问 Google Compute kubernetes
【发布时间】:2018-10-18 06:41:01
【问题描述】:

不知何故,我正在尝试在 Google Compute(不是 GKE)上启动一个 kubernetes 项目。完成所有安装(阅读 docker-ce、kubelet、kubeadm)后,我在里面创建了一个服务和一个部署,如下所示:

apiVersion : v1
kind : Service
metadata:
  name: client-node-port
spec:
  type: NodePort
  ports:
  - port: 90
    targetPort: 80
    nodePort: 31515
  selector:
    component: web

它一直在工作,直到我将服务内部的 targetPort 更改为 80 以外的任何端口(以及部署容器端口)。

我已经尝试在实例firewall-cmd --permanent --add-port=(any port beside 80)/tcp上启用端口

除此之外,我还已经在 google Google Firewall Setting 中启用了防火墙规则

有什么我错过的吗?为什么服务中的nodePort设置为80时我只能访问NodePort?

谢谢

PS:如果相关的话,我使用的是法兰绒网络

【问题讨论】:

    标签: docker kubernetes google-cloud-platform docker-compose flannel


    【解决方案1】:

    我可以知道您为什么要尝试更改targetPort 吗?

    TargetPort是 POD 上运行服务的端口。

    Nodeport是外部用户可以通过nodeip:nodeport访问服务的端口。

    Port: 和 Nodeport 一样,但是集群用户可以通过 clusterip:port 使用。

    同样,在您的情况下,端口 80 表示服务实际上在端口 80 上运行。

    您应该更改targetPort,以防您将服务设置在运行在不同端口上的 pod 中。

    查看this question了解更多详情。

    【讨论】:

    • 我应该能够将targetPod 更改为我想要的任何端口,不是吗?我了解您解释的 targetPort 、 nodePort 和端口,只是 GCE 不允许更改端口,我的意思是有一些机制可以阻止内部其他端口
    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2021-10-12
    • 2019-07-26
    • 2020-10-04
    • 2018-06-23
    • 1970-01-01
    相关资源
    最近更新 更多