我一直在這個問題上掙扎了幾個小時。我有一個非常簡單的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