我正在创建带有ACR容器注册表的普通香草AKS集群并部署虚拟服务,这是我之前做过很多次的事情,应该可以正常工作,但事实并非如此-该服务的部署没有错误,我看到了吊舱并且该服务仍然有效,端口似乎匹配-但我无法访问在Pod中运行的应用。
这是我的YAML文件:
apiVersion: v1
kind: Service
metadata:
name: dummyapp-prep
spec:
selector:
app: dummyapp-prep
ports:
- protocol: TCP
port: 80
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dummyapp-prep
spec:
selector:
matchLabels:
run: dummyapp-prep
replicas: 1
template:
metadata:
labels:
run: dummyapp-prep
spec:
containers:
- name: dummyapp-prep
image: dummyappregistry.azurecr.io/dummyappregistry.azurecr.io/dummyapp-prep:dummyapp-prep-18
ports:
- containerPort: 80
imagePullSecrets:
- name: secret
一切都部署良好-我看到了该服务,并且它获得了一个外部IP:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dummyapp-prep LoadBalancer 10.0.230.4 52.149.106.85 80:32708/TCP 4m24s
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 26h
pod很好,我连接到它并在localhost:80上卷曲应用程序。不过,浏览http://52.149.106.85:80超时
我检查Azure负载平衡器-IP已注册。
还有什么问题吗?
答案 0 :(得分:3)
您应用了错误的标签。服务在寻找app: dummyapp-prep
,而Pod和部署中有run: dummyapp-prep
。请注意run
与app
标签名称。
您还可以通过检查API服务器通过运行kubectl describe endpoints dummyapp-prep
为您创建的端点对象来检查服务是否绑定。如果未在Subsets
部分中列出Pod IP,则意味着服务无法找到Pod。