我已经将一个非常简单的节点应用程序部署到了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/