我正在为我的研究做一个项目。我应该创建和部署一个应用程序,我已经决定用AKS来做这件事(因为我们有一些预付费的学分)。我可以使用Minikube在本地运行我的部署,但我无法将其部署到AKS。你能帮助我吗?
以下是我的部署文件:app-ns.yml(用于创建命名空间):
apiVersion: v1
kind: Namespace
metadata:
name: pm
字符串
ab.yml(用于部署数据库):
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgresql-db
labels:
app: pm-proc
tier: database
namespace: pm
spec:
serviceName: postgresql-db-service
selector:
matchLabels:
component: postgresql-db
replicas: 1
template:
metadata:
labels:
component: postgresql-db
spec:
containers:
- name: postgresql-db
image: postgres:15
volumeMounts:
- name: postgresql-db-disk
mountPath: /data
env:
- name: POSTGRESS_DB
value: postgres
- name: POSTGRES_USER
value: postgres
- name: POSTGRES_PASSWORD
value: postgres
- name: PGDATA
value: /data/pgdata
volumeClaimTemplates:
- metadata:
name: postgresql-db-disk
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
name: postgres-db-svc
namespace: pm
spec:
selector:
component: postgresql-db
ports:
- port: 5432
targetPort: 5432
型
API.yml(用于部署后端):
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-deploy
labels:
app: pm-proc
tier: backend
component: api
namespace: pm
spec:
selector:
matchLabels:
app: pm-proc
tier: backend
template:
metadata:
labels:
app: pm-proc
tier: backend
component: api
spec:
containers:
- name: api
image: madzlk/backend-api:latest
ports:
- containerPort: 8080
env:
- name: DB_SERVICE_HOST
value: $(POSTGRES_DB_SVC_SERVICE_HOST)
- name: DB_SERVICE_PORT
value: "5432"
- name: DB_USER
value: "postgres"
- name: DB_PASSWORD
value: "postgres"
- name: DB_DATABASE
value: "postgres"
replicas: 2
---
apiVersion: v1
kind: Service
metadata:
name: api-svc
namespace: pm
spec:
selector:
app: pm-proc
tier: backend
component: api
ports:
- port: 8080
targetPort: 8080
型
api-np-svc.yml(创建一个服务,使API可以从外部访问):
apiVersion: v1
kind: Service
metadata:
name: api-np-svc
namespace: pm
spec:
type: NodePort
selector:
app: pm-proc
tier: backend
ports:
- port: 8080
targetPort: 8080
nodePort: 30080
型
这只是API的一部分,当一切都设置好了,它应该显示一个空列表
我已经将NodePort类型的pod更改为Loadbalancer,因为我读到这是AKS首选的方式,但它没有帮助。
1条答案
按热度按时间zfycwa2u1#
请修改您的YAML如下部署Postgre上AKS
字符串
部署
型
使用相同的方法。
型
现在执行
kubectl get pods | grep post
现在,您可以使用
型
你可以使用下面的yaml通过负载平衡器类型的服务公开pod
型
使用
kubectl apply -f <service-yaml-file-name>
应用相同的方法现在执行kubectl get svc | grep postgres-db-lb
#注意,这将是您在服务yaml中保留的任何名称 * 输出 *您现在可以使用此LB IP连接到pgadmin UI tool
的
参考文件:
GitHub_PostgresOnAKS的
Deploying PostgreSQL as a StatefulSet