无法在 AKS 上访问 LoadBalancer 类型的 kubernetes 服务
Can't access kubernetes service of type LoadBalancer on AKS
我正在创建一个带有 ACR 容器注册表的普通 AKS 集群并部署一个虚拟服务,我之前已经做过很多次并且应该可以工作,但事实并非如此 - 服务部署没有错误,我明白了pod 和服务还活着,端口似乎匹配 - 但我无法访问 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 已注册。
还有什么问题?
您应用了错误的标签。服务正在寻找 app: dummyapp-prep
,而容器和部署有 run: dummyapp-prep
。注意 run
与 app
标签名称。
您还可以通过检查 API 服务器由 运行 kubectl describe endpoints dummyapp-prep
为您创建的端点对象来检查服务是否已绑定。如果它没有在 Subsets
部分列出 pod IP,则意味着该服务找不到 pods.
我正在创建一个带有 ACR 容器注册表的普通 AKS 集群并部署一个虚拟服务,我之前已经做过很多次并且应该可以工作,但事实并非如此 - 服务部署没有错误,我明白了pod 和服务还活着,端口似乎匹配 - 但我无法访问 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 已注册。
还有什么问题?
您应用了错误的标签。服务正在寻找 app: dummyapp-prep
,而容器和部署有 run: dummyapp-prep
。注意 run
与 app
标签名称。
您还可以通过检查 API 服务器由 运行 kubectl describe endpoints dummyapp-prep
为您创建的端点对象来检查服务是否已绑定。如果它没有在 Subsets
部分列出 pod IP,则意味着该服务找不到 pods.