如何使用负载均衡器(或直接)从外部访问 pod?

How to make a pod accessible from outide with a Load Balancer (or directly)?

这是我尝试使用 Kubernetes 配置文件执行的操作:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: selenium-hub
  labels:
    app: selenium-hub
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: selenium-hub
  template:
    metadata:
      labels:
        app: selenium-hub
    spec:
      containers:
      - name: selenium-hub
        image: selenium/hub
        ports:
          - containerPort: 4444
        resources:
          limits:
            memory: "1000Mi"
            cpu: ".5"
        livenessProbe:
          httpGet:
            path: /wd/hub/status
            port: 4444
          initialDelaySeconds: 30
          timeoutSeconds: 5
        readinessProbe:
          httpGet:
            path: /wd/hub/status
            port: 4444
          initialDelaySeconds: 30
          timeoutSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 4444
    protocol: TCP
    targetPort: 4444
  selector:
    app: selenium-hub
  type: LoadBalancer

在 GKE 中,它创建了一个带有 pod 的应用程序,然后是一个带有外部 IP 的负载均衡器。但是,当我尝试通过 http://LBIP:port 从外部访问应用程序时,它不起作用。

那么我如何才能首先公开我创建的 pod?如果我只使用一个副本,是否需要 LB?

查看规格,我没有发现任何问题。检查几件事 -

  1. 您的 pod 是否处于 运行 端口 4444 暴露的状态?
  2. 您可以使用 ClusterIP:port 在本地访问您的 pod 吗?

您也可以使用 NodePort 服务公开您的 pod,但在生产环境中,不推荐使用 NodePort 服务将应用公开给外部集群。

哼哼……哼……你会笑的!我这边没笑...

这是一个网络问题。不知道为什么,但出于某种不明原因,我的家庭 IP 地址似乎被列入黑名单,无法访问 GCP 上的任何实例。控制台没有问题,但是当我尝试通过我的浏览器访问 http 时,它根本无法连接。

使用 nordvpn 正常!到目前为止一切顺利。

无论如何,谢谢你们的帮助!