在Azure容器服务上使用Kubernetes(虽然不是新的AKS)。
我正在像这样部署一个前端:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: frontend-deployment
spec:
selector:
matchLabels:
app: frontend
replicas: 2
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: frontend
image: etc/etc
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: frontend
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 3000
selector:
app: frontend
我可以看到它是从日志中正确启动的。
从kubectl get services
我可以看到它已被分配了一个外部IP。但是当我尝试通过HTTP访问它时,它就会挂起。
我还可以在Azure门户中看到Azure Load Balancer已创建并指向正确的外部IP和后端池。
如果我以某种方式弄乱了pod定义中的端口分配,有人能告诉我吗?
-
更新:不知怎的,它开始在它自己(或似乎)开始工作。但当我尝试将其重新创建为服务而不是部署时,它停止了工作
这是我的服务:
这是我的配置:
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
name: meteor
spec:
externalTrafficPolicy: Cluster
ports:
- port: 80
protocol: TCP
targetPort: http-server
selector:
app: frontend
sessionAffinity: ClientIP
type: LoadBalancer
它为负载均衡器创建了外部IP,我可以看到它与pod正确匹配。但是当我尝试连接外部IP时出现超时。同时,作为部署的一部分创建的负载均衡器继续正常工作。