Azure Kubernates网络:我的前端无法到达后端
我有以下docker compose文件,可以很好地工作:Azure Kubernates网络:我的前端无法到达后端,azure,docker,kubernetes,azure-aks,Azure,Docker,Kubernetes,Azure Aks,我有以下docker compose文件,可以很好地工作: version: '3' services: myfrontend: image: myregistry.azurecr.io/im1:latest container_name: myfrontend ports: - 80:80 - 443:443 mybackend: image: myregistry.azurecr.io/im2:latest container_name: mybackend ex
version: '3'
services:
myfrontend:
image: myregistry.azurecr.io/im1:latest
container_name: myfrontend
ports:
- 80:80
- 443:443
mybackend:
image: myregistry.azurecr.io/im2:latest
container_name: mybackend
expose:
- 8080
后端只向内部网络公开8080,前端有一个经过修改的nginx映像,配置如下(它的工作原理是docker用容器名称解析ip)
我将上述配置迁移到kubernates中,我从nginx中得到了一个502坏网关错误,我认为这是因为它无法解决后端地址问题
这是kubernates配置文件,你能看一下并告诉我我做错了什么吗(
您需要将解析器设置为:
kube-dns.kube-system.svc.cluster.local
因此,您群集中的kube dns名称\地址,因为本地主机上的任何内容都无法将mybackend解析为其ip地址。我不确定您是否需要它,因为容器无论如何都会从kubernetes知道后端地址。我可能会放弃该设置,这意味着问题很可能与地址无关。您可以使用<代码>从“前端”播客ping后端。它将为后端播客返回正确的IP。我的问题是,kubernates没有更新映像,因为我用标签“最新”刷新了!它可以工作:)
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mybackend
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
template:
metadata:
labels:
app: mybackend
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: mybackend
image: myregistry.azurecr.io/sgr-mybackend:latest
ports:
- containerPort: 8080
name: mybackend
resources:
requests:
cpu: 250m
limits:
cpu: 500m
---
apiVersion: v1
kind: Service
metadata:
name: mybackend
spec:
ports:
- port: 8080
selector:
app: mybackend
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: myfrontend
spec:
replicas: 1
template:
metadata:
labels:
app: myfrontend
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: myfrontend
image: myregistry.azurecr.io/myfrontend:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: myfrontend
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: myfrontend
kube-dns.kube-system.svc.cluster.local