我一直在这个问题上挣扎了几个小时。我有一个非常简单的2层dotnet核心骨架应用程序(mvc和webapi),它使用Kubernetes以Windows作为管弦乐器在Azure上托管。 部署工作正常,我可以通过基本的环境变量。我面临的挑战是我无法确定如何将后端服务IP地址传递到前端变量。 如果我部署了部署,我可以手动将后端的公开IP传递到前端。理想情况下,这需要作为服务进行部署。Kubernetes前端和后端通信
任何帮助将不胜感激。
部署命令:
1 - kubectl创建-f后端-deploy.yaml
2 - kubectl创建-f后端-service.yaml
3 - kubectl创建-f前端-deploy.yaml
4 - kubectl创建-f前端-service.yaml
后端-deploy.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: acme
spec:
replicas: 5
template:
metadata:
labels:
app: acme-app
tier: backend
spec:
containers:
- name: backend-container
image: "some/image"
imagePullSecrets:
- name: supersecretkey
env:
- name: Config__AppName
value: "Acme App"
- name: Config__AppDescription
value: "Just a backend application"
- name: Config__AppVersion
value: "1.0"
- name: Config__CompanyName
value: "Acme Trading Limited"
后端-service.yaml
kind: Service
apiVersion: v1
metadata:
name: acme-app
spec:
selector:
app: acme-app
tier: backend
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
前端德ploy.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 2
template:
metadata:
labels:
app: acme-app
tier: frontend
spec:
containers:
- name: frontend-container
image: "some/image"
imagePullSecrets:
- name: supersecretkey
env:
- name: Config__AppName
value: "Acme App"
- name: Config__AppDescription
value: "Just a frontend application"
- name: Config__AppVersion
value: "1.0"
- name: Config__AppTheme
value: "fx-theme-black"
- name: Config__ApiUri
value: ***THIS IS WHERE I NEED THE BACKEND SERVICE IP***
- name: Config__CompanyName
value: "Acme Trading Limited"
前端-service.yaml
kind: Service
apiVersion: v1
metadata:
name: frontend
spec:
selector:
app: acme
tier: frontend
ports:
- protocol: "TCP"
port: 80
targetPort: 80
type: LoadBalancer
你应该加上'类型:LoadBalancer'你的后端了。这样,运行你的前端代码的*用户浏览器就可以连接到它。 – kichik
谢谢。我更新了我的src以反映这一点。 – qdrive
服务作为env变量暴露在吊舱内。只需连接到正在运行的吊舱并运行'printenv'来确认自己。 – danielepolencic