Kubernetes/Azure ACS:为什么我无法访问我服务的外部 IP?
Kubernetes/Azure ACS: Why can't I access external IPs of my Service?
在 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 负载均衡器已创建并指向正确的外部 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,我可以看到它与 pods 正确匹配。但是当我尝试连接到外部 IP 时超时。同时,作为部署的一部分创建的负载平衡器继续正常工作。
do you know how to change the agent VM size in an existing ACS
deployment?
我们可以通过 Azure 门户更改 k8s 代理,Azure 中的代理是一个 VM,我们应该 resize VM :
希望对您有所帮助。
看起来问题是 targetPort 指定错误。将其调整为正确的值并替换服务定义解决了问题。
在 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 负载均衡器已创建并指向正确的外部 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,我可以看到它与 pods 正确匹配。但是当我尝试连接到外部 IP 时超时。同时,作为部署的一部分创建的负载平衡器继续正常工作。
do you know how to change the agent VM size in an existing ACS deployment?
我们可以通过 Azure 门户更改 k8s 代理,Azure 中的代理是一个 VM,我们应该 resize VM :
希望对您有所帮助。
看起来问题是 targetPort 指定错误。将其调整为正确的值并替换服务定义解决了问题。