我正在尝试为一个简单的演示创建一个多容器容器。我有一个在Docker容器中构建的应用程序。有3个容器
1-Redis服务器 1-节点/表达微服务 2-节点/表达/反应前端
所有3个容器均已成功部署并正在运行。 我创建了一个公共负载平衡器,该平衡器正在运行,没有任何错误。
我无法从公共IP连接到前端。
我也在前端容器中运行了tcpdump,没有流量进入。
这是我的yaml文件,用于创建部署和服务
apiVersion: apps/v1
kind: Deployment
metadata:
name: mydemoapp
spec:
replicas: 1
selector:
matchLabels:
app: mydemoapp
template:
metadata:
labels:
app: mydemoapp
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: microservices-web
image: mydemocr.azurecr.io/microservices_web:v1
ports:
- containerPort: 3001
- name: redislabs-rejson
image: mydemocr.azurecr.io/redislabs-rejson:v1
ports:
- containerPort: 6379
- name: mydemoappwebtest
image: mydemocr.azurecr.io/jsonformwebtest:v1
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: mydemoappservice
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 3000
selector:
app: mydemoapp
这是我的服务描述:
Name: mydemoappservice
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"mydemoappservice","namespace":"default"},"spec":{"ports":[{"p...
Selector: app=mydemoapp
Type: LoadBalancer
IP: 10.0.104.159
LoadBalancer Ingress: 20.49.172.10
Port: <unset> 80/TCP
TargetPort: 3000/TCP
NodePort: <unset> 31990/TCP
Endpoints: 10.244.0.17:3000
Session Affinity: None
External Traffic Policy: Cluster
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EnsuringLoadBalancer 24m service-controller Ensuring load balancer
Normal EnsuredLoadBalancer 24m service-controller Ensured load balancer
另一个怪异之处是,当我从前端运行docker容器时,我可以得到一个shell并运行curl localhost:3000
并获得一些输出,但是当我在az容器中进行操作时,经过一些操作后,我会得到以下响应延迟
curl: (52) Empty reply from server
关于为什么这个容器可以在我的机器上而不是在天蓝色的情况下工作,这是另一个谜团。