基于K8S+ingress改造vue+nginx+springcloud微服务(一)

背景

前端项目整体架构使用vue开发web/h5然后部署到nginx上,后端使用springlcoud+docker进行部署。由于不是很了解service mesh 相关内容因此只将原有容器改为k8s管理并部署。 

Ingress介绍

Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP和HTTPS。

Ingress 可以提供负载均衡、SSL 和基于名称的虚拟托管。

必须具有 ingress 控制器【例如 ingress-nginx】才能满足 Ingress 的要求。仅创建 Ingress 资源无效。

基于docker的微服务架构

nginx 与nacos 集群为物理机其余应用均使用docker部署

 

 

 

K8S网络架构

ingress其实就是启动一个nginx pod 进行规则匹配与转发,因此通过ingress 对外暴露80端口,暴露方式为nodeport。

vue静态文件直接用nginx镜像打包,nginx作为容器进行发布不在用于负载均衡。

网管还是使用springcloud gateway,使用springcloud 组件进行服务治理

vue nginx,网管,微服务端口均使用clusterId模式,保证集群安全。

至此原spingcloud+docker ,vue+nginx的架构全部转移到k8s,通过k8s管理全部应用。

总结

虽然使用K8S进行容器管理但并未使用K8S下关于微服务治理的架构方案。其实在图中gateway的功能不但承担路由转发而且负责鉴权。而路由转发功能与ingress转发功能重叠因此会多进行一次网络转发。未来会调研service mesh相关方案通过side car 模式进行服务治理而不在使用应用本身方式进行服务治理。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在 Kubernetes 集群中部署 Hyperf 应用并使用 Ingress 控制器进行路由,需要完成以下步骤: 1. 创建 Hyperf 应用的 Docker 镜像,并将镜像推送到 Docker 镜像仓库中。 2. 在 Kubernetes 集群中创建一个 Deployment 对象,用于部署 Hyperf 应用容器。 3. 在 Kubernetes 集群中创建一个 Service 对象,用于将 Hyperf 应用容器暴露为 Kubernetes 集群内部的服务。 4. 在 Kubernetes 集群中创建一个 Ingress 对象,定义将外部流量路由到 Hyperf 应用服务的规则。 下面是一个示例的 YAML 配置文件,用于在 Kubernetes 集群中部署 Hyperf 应用,并使用 Nginx Ingress 控制器进行路由: ```yaml # hyperf-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: hyperf-app spec: selector: matchLabels: app: hyperf-app replicas: 1 template: metadata: labels: app: hyperf-app spec: containers: - name: hyperf image: <your-docker-image> ports: - containerPort: 9501 --- # hyperf-service.yaml apiVersion: v1 kind: Service metadata: name: hyperf-app spec: selector: app: hyperf-app ports: - name: http port: 9501 --- # hyperf-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hyperf-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: <your-domain-name> http: paths: - path: / pathType: Prefix backend: service: name: hyperf-app port: name: http ``` 将上述 YAML 配置文件保存为 `hyperf.yaml`,然后使用 `kubectl apply -f hyperf.yaml` 命令来部署 Hyperf 应用和 Ingress 控制器。其中 `<your-docker-image>` 填入你的 Hyperf 应用 Docker 镜像地址,`<your-domain-name>` 填入你的域名。 部署完成后,可以通过访问 `<your-domain-name>` 来访问 Hyperf 应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值