node.js - 无法从K8s群集访问 Node 应用

标签 node.js api kubernetes

我已经将一个非常简单的节点应用程序部署到了minikube集群中。我创建了Docker镜像,并且在容器中时一切正常。当我在k8s集群中构建它时,可以看到部署正在工作。
我正在尝试使用运行“kubectl get svc”时提供的minikube IP和端口通过负载均衡器访问节点应用程序。我知道我至少在做这部分工作...
当我尝试访问URL并检查“网络”标签时,请求永远不会完成,而只会保持待处理状态。
节点应用程序是我为测试而创建的非常简单的API,因此在尝试访问应用程序时会使用route / posts。它应该返回一些JSON,并且所有这些都可以从容器中获取。在集群中时,一切都停止了工作。


apiVersion: apps/v1
kind: Deployment
metadata: 
  name: server-deployment
spec: 
  replicas: 3
  selector: 
    matchLabels: 
      targets: nodes
  template: 
    metadata: 
      labels: 
        targets: nodes
    spec: 
      containers: 
        - name: server
          image: brandonjones085/mean-backend
          ports: 
            - containerPort: 3000

---
apiVersion: v1
kind: Service
metadata:
  name: backend-load
spec:
  selector:
  
    targets: nodes
  ports:
  - protocol: "TCP"
    port: 3000
    targetPort: 3000
  type: LoadBalancer

最佳答案

就像@Hackerman所述,如果您使用LoadBalancer服务类型,则需要使用minikube tunnel。您可以按照example进行操作。通常,这种类型的服务旨在提供提供者负载均衡器,例如AWS ELB。但是在minikube的情况下,没有外部提供程序,您需要欺骗它以为有一个外部提供程序。
基本上,您需要在创建部署之前运行它。
在单独的终端上:

minikube tunnel
然后应用您的 list YAML文件,其中包含您的问题的定义:
kubectl apply -f <your-deployment>.yaml
✌️

关于node.js - 无法从K8s群集访问 Node 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64210635/

相关文章:

javascript - 在 express/node 中使用全局变量

sql-server - NodeJS MSSQL .query 在记录集和记录集中返回双数据

javascript - mongodb在事件评论中将用户添加到喜欢的数组

历史流量数据的API?

kubernetes - 同一集群中 Kubernetes pod 之间的连接被拒绝

node.js - Heroku 不遵守 script.start 命令

javascript - jquery ajax : Unexpected Token & function not defined

python - BadStatusLine 错误后重新启动 Python 脚本

kubernetes - 如何在Kubernetes中对所有BestEffort Pod进行OOM?

kubernetes - 如何将 Windows docker 容器部署到 docker-for-desktop Kubernetes 集群?拉取访问被拒绝