【发布时间】:2023-03-09 14:12:01
【问题描述】:
我使用 Nodejs、Angular、MongoDB 和 Express 在 Google 云上开发了我的项目。我已经成功地为 Express 和 Node.js 构建了身份验证部分。现在我正在尝试集成 Angular。我已经使用谷歌云设置了 Ingress-NGINX,并正在使用谷歌云 shell 来创建代码。
我按照以下步骤进行设置
在 Google Cloud 上设置 Ingress-NGINX 的步骤
- 创建一个项目 blog-dev
- 在 us-central1-c 区域中创建具有 3 个 N1-g1 小型实例的集群 blog-dev
- 导航到https://kubernetes.github.io/ingress-nginx/deploy/#gce-gke
- 在谷歌云账号上,打开云shell并导航到终端中的BPB_MEAN_Framework目录
- 执行命令 gcloud init,重新初始化集群,选择账户、项目和地区
- 执行命令 gcloud container clusters get-credentials blog-dev
- 执行命令kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.3/deploy/static/provider/cloud/deploy.yaml配置ingress-nginx
- 转到网络服务 -> 负载平衡并检查负载平衡器是否已创建。记下负载均衡器的ip
- 打开hosts.ini文件并更新如下图 130.211.113.34 博客.dev 8.1) kubectl create secret generic jwt-secret --from-literal=JWT_KEY=asdf
- 运行脚手架开发
- 在浏览器中转到http://blog.dev/api/users/currentuser 并获取“隐私错误”页面。点击此处的“高级”
- 在键盘上输入 thisisunsafe
下面列出了各种文件
下面列出的是Kubernetes部署yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: client-depl
spec:
replicas: 1
selector:
matchLabels:
app: client
template:
metadata:
labels:
app: client
spec:
containers:
- name: client
image: us.gcr.io/blog-dev-326403/client:project-latest
---
apiVersion: v1
kind: Service
metadata:
name: client-srv
spec:
selector:
app: client
ports:
- name: client
protocol: TCP
port: 4200
targetPort: 4200
下面列出的是 Ingress 服务
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: blog.dev
http:
paths:
- path: /api/users/?(.*)
backend:
serviceName: auth-srv
servicePort: 3100
- path: /?(.*)
backend:
serviceName: client-srv
servicePort: 4200
下面列出的是 Skaffold yaml
apiVersion: skaffold/v2alpha3
kind: Config
deploy:
kubectl:
manifests:
- ./infra/k8s/*
build:
#local:
# push: false
googleCloudBuild:
projectId: blog-dev-326403
artifacts:
- image: us.gcr.io/blog-dev-326403/auth
context: auth
docker:
dockerfile: Dockerfile
sync:
manual:
- src: 'src/**/.ts'
dest: .
- image: us.gcr.io/blog-dev-326403/client
context: client
docker:
dockerfile: Dockerfile
sync:
manual:
- src: 'src/**/.ts'
dest: .
angular文件夹结构如下图 Angular project folder structure
我在 hosts.ini 文件中添加了 Google 云负载均衡器 ip,后跟 blog.dev。
当我运行 skaffold dev 时,没有错误。当我尝试访问 blog.dev 时,我得到一个 502 bad gateway。
当我导航到客户端目录并在 Google Cloud Shell 中键入 npm start 并访问预览时,我的网站如图所示 Application in preview mode in Google cloud 请帮助...这对我来说是一个很好的展示
【问题讨论】:
标签: node.js angular nginx kubernetes google-cloud-platform