Kubernetes/Azure ACS:为什么可以';我不能访问我的服务的外部IP吗?
在Azure容器服务上使用Kubernetes(但不是新的AKS) 我正在部署这样的前端:Kubernetes/Azure ACS:为什么可以';我不能访问我的服务的外部IP吗?,azure,kubernetes,azure-container-service,Azure,Kubernetes,Azure Container Service,在Azure容器服务上使用Kubernetes(但不是新的AKS) 我正在部署这样的前端: apiVersion: apps/v1beta1 kind: Deployment metadata: name: frontend-deployment spec: selector: matchLabels: app: frontend replicas: 2 template: metadata: labels: app: fr
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负载平衡器是创建的,并且指向正确的外部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时,会超时。同时,作为部署的一部分创建的负载平衡器继续正常工作
您知道如何更改现有ACS中的代理VM大小吗
部署
我们可以通过Azure门户更改k8s代理,Azure中的代理是虚拟机,我们应该调整虚拟机的大小
希望这有帮助。看起来问题是targetPort的规格不正确。将其调整为正确的值并替换服务定义解决了问题。它似乎突然开始工作。我想知道Azure是否存在一些服务问题。如果出现任何其他问题,将进行更新。如果您需要ACS方面的更多帮助,请告诉我:)@JasonYe MSFT谢谢!您知道如何更改现有ACS部署中的代理VM大小吗?新创建的负载平衡器挂起时仍然存在问题。请运行此命令
kubectl get service
以检查状态。嘿,实际上我仍然存在与原始问题相同的问题。它又停止工作了,我不明白为什么;)