当前位置: 首页 > 知识库问答 >
问题:

从外部无法访问服务

洪浩
2023-03-14

我无法从外部访问我的服务。首先,这里是我的conf yaml文件:

nginx-pod.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
  namespace: development
spec:
  selector:
    matchLabels:
      app: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  namespace: development
spec:
  type: LoadBalancer
  selector:
    app: my-nginx
  ports:
  - name: http
    port: 80
    targetPort: 80
    protocol: TCP

metallb-config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 51.15.41.227-51.15.41.227

然后我创建了集群。命令 kubectl 获取所有 -o 宽打印:

NAME                            READY   STATUS    RESTARTS   AGE   IP            NODE         NOMINATED NODE
pod/my-nginx-5796dcf6c4-rxl6k   1/1     Running   1          20h   10.244.0.16   scw-7d6c86   
pod/my-nginx-5796dcf6c4-zf7vd   1/1     Running   0          20h   10.244.1.4    scw-7a7908   

NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)        AGE   SELECTOR
service/nginx-service   LoadBalancer   10.100.63.177   51.15.41.227   80:30883/TCP   54m   app=my-nginx

NAME                       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES        SELECTOR
deployment.apps/my-nginx   2         2         2            2           20h   my-nginx     nginx:1.7.9   app=my-nginx

NAME                                  DESIRED   CURRENT   READY   AGE   CONTAINERS   IMAGES        SELECTOR
replicaset.apps/my-nginx-5796dcf6c4   2         2         2       20h   my-nginx     nginx:1.7.9   app=my-nginx,pod-template-hash=5796dcf6c4

一切正常,而且< code > ku bectl describe service/nginx-service 打印:

Name:                     nginx-service
Namespace:                development
Labels:                   
Annotations:              
Selector:                 app=my-nginx
Type:                     LoadBalancer
IP:                       10.100.63.177
LoadBalancer Ingress:     51.15.41.227
Port:                     http  80/TCP
TargetPort:               80/TCP
NodePort:                 http  30883/TCP
Endpoints:                10.244.0.16:80,10.244.1.4:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason       Age   From                Message
  ----    ------       ----  ----                -------
  Normal  IPAllocated  56m   metallb-controller  Assigned IP "51.15.41.227"

curl命令在主服务器curl51.15.41.227打印欢迎来到ngin x blablabla。接下来我试图从另一个网络打开,它不起作用,但是我添加了节点端口,它可以工作curl51.15.41.227:30883。所有这些都是我在裸机上做的。我期望从外部主机发生curl51.15.41.227应该到达结果。我做错了什么?

共有2个答案

孔海超
2023-03-14

从外部网络访问时,您绝对应该使用节点端口 30883(随机分配的端口)。否则,它不知道将请求路由到何处。

卷曲http://51.15.41.227:30883

马凡
2023-03-14

它肯定会与http://51.15.41.227或51.15.41.227:80。您可以按向上按钮来向上投票。

 类似资料:
  • 这是一个一般的错误,但我无法找到问题和解决方案。我的本地主机()上的Minecraft服务器位于端口上。可以通过主机的内部IP(localhost和)访问它,但无法通过外部IP()访问它。 是的。我重新启动了主机。服务器上还说 上启动Minecraft服务器 所以这一定是真的。 我可以通过驻留在设备上的一个简单的node.js服务器来验证端口是否对HTTP开放。这可以通过在同一网络上的移动设备上访

  • 我一直在尝试使用githubrowsersample对sunflower应用程序示例进行Restfulise,所以我一直在尝试进行一些复制和粘贴。然而,我完全搞不懂为什么会出现这个错误。此特定代码是完整的复制和粘贴。 我收到的错误是: 错误:DataBoundViewHolder(T)在DataBoundViewHolder中不是公共的;无法从T为类型变量的包外部访问:T扩展了DataBoundV

  • https://github.com/confluentinc/cp-docker-images/blob/5.0.0-post/examples/kafka-cluster/docker-compose.yml 我已经编辑了该文件,并将选项添加到docker组合文件中,以便可以在主机之外访问它们。 我已经运行了以下命令: kafka-1、kafka-2、kafka-3的docker日志(均相同)

  • 我正在尝试在minikube(Windows-10)上部署简单的spring boot REST服务。下面是我的配置 Docker文件 docker image运行良好,我能够运行该应用程序。 部署 服务 我无法使用< code > service-IP:node port/Uri < br > http://127 . 0 . 0 . 1:30008/hello访问restendpoint ht

  • 问题内容: 我已将Elastic Search 2.3.0设置为具有Windows Server 2012 R2的Azure VM中的服务。我可以使用以下方法从服务器内部访问elasticsearch实例 但我无法从服务器外部访问。 我尝试了什么? 仅出于测试目的,我已使VM在虚拟网络之外可用。 在Windows防火墙设置中打开9200端口作为入站流量规则 在Azure门户设置中添加了一个终结点,

  • tl;如果在Docker容器中运行,一个RestController正确回答,另一个则不正确。 该服务有两个API 和。 它们都是通过docker compose运行的。 返回。 返回一个空的200响应。正如预期的那样。 应该返回一个200响应和一个每次调用API时都会增加的数字。可悲的是,事实并非如此。 在本地运行该服务可以提供预期的结果。 maven spotify插件用于从以下创建图像。 我