微服务(一)


文章目录

  • 项目地址
  • 一、微服务
    • 1.1 分析User的Domian Verb和Nouns
  • 二、运行docker和k8s
    • 2.1 Docker
      • 1. 编写dockerfile
      • 2. 创建docker image
      • 3. 运行docker使用指定端口
      • 4. 查看当前运行的镜像
      • 5. 停止当前所有运行的docker
      • 6. 删除不用的docker images
      • 7. 将本地的image上传到hub里
    • 2.2 K8S
      • 1. 创建k8s的部署
      • 2. 创建node服务
      • 3. 运行当前的环境
      • 4. 查看运行状态
      • 5. 删除部署


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、微服务

在这里插入图片描述

1.1 分析User的Domian Verb和Nouns

  1. 根据用户行为分析用户需要的实体和查询条件
    在这里插入图片描述

  2. 列出所有的实体

Customer
Order
Order Details
Product
Shopping Cart
Shopping Cart ltems
Supplier
User
Address
Brand
Category
  1. 根据动词设计关系图

在这里插入图片描述

二、运行docker和k8s

2.1 Docker

1. 编写dockerfile

  1. 编写好.net的dockerfile
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.# 使用官方的 .NET 5 ASP.NET 基础镜像作为构建环境(base-env
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env#设置容器中的工作目录为 /app。后续的所有命令都将在这个目录下运行。
WORKDIR /app#将当前目录下的所有 .csproj 文件(通常是项目文件)复制到容器的工作目录中。
COPY *.csproj ./#恢复项目的依赖项
RUN dotnet restore#将整个项目的代码复制到容器中。
COPY . ./#编译和打包应用程序代码,生成可以运行的 .NET 程序。输出的构建文件存储在 /app/out 目录中。
RUN dotnet publish -c Release -o out#使用官方的 .NET 5 ASP.NET 基础运行时镜像作为生产环境(最终运行的容器)
FROM mcr.microsoft.com/dotnet/aspnet:5.0
#再次设置容器的工作目录为 /app。
WORKDIR /app
#从前面定义的 base-env 阶段复制 /app/out 文件夹的内容到当前工作目录。
COPY --from=build-env /app/out .#设置容器的入口点为 dotnet 命令,启动 PlatformService.dll 程序。
ENTRYPOINT ["dotnet", "PlatformService.dll"]

2. 创建docker image

  • pjj521/platformservice 是镜像名称
docker build -t pjj521/platformservice .

3. 运行docker使用指定端口

  • 后面是镜像名称
 docker run -p 8080:80 -d pjj521/platformservice

4. 查看当前运行的镜像

docker ps

5. 停止当前所有运行的docker

docker stop $(docker ps -q)

6. 删除不用的docker images

  • 查看
docker images
  • 删除
docker -rmi -f 镜像ID

7. 将本地的image上传到hub里

 docker push pjj521/platformservice1          

2.2 K8S

1. 创建k8s的部署

  • 创建部署的文件platform-depl.yaml
apiVersion: apps/v1 # 自定义apps/v1 代表使用 Deployment 资源
kind: Deployment # 自定义资源类型,表示这是一个 Deployment 对象
metadata:name: platform-deployment # Deployment 的名称,这个名称在 Kubernetes 中唯一
spec:replicas: 1 # 副本数,表示部署一个 Pod 副本,Kubernetes 会确保有一个 Pod 在运行selector: #选择器,用于查找属于这个 Deployment 的 PodsmatchLabels:app: platformservice1 # 选择标签为 app=platformservice1 的 Pods,Kubernetes 使用这个标签来选择受此 Deployment 管理的 Podstemplate: # Pod 模板,描述 Pods 应该如何创建metadata:labels:app: platformservice1 # Pod 的标签,用于与 selector 配合选择该 Podspec: # Pod 的规格定义containers: #容器定义,说明该 Pod 中将运行的容器- name: platformservice1 # 容器的名称image: pjj521/platformservice1 # 容器使用的镜像,这里是一个本地镜像 "pjj521/platformservice1"ports:- containerPort: 80 #容器暴露的端口,这里表示容器会监听 80 端口

2. 创建node服务

  • platform-np-srv.yaml
apiVersion: v1
kind: Service
metadata:name: platformservice1-service
spec:type: NodePort # 使用 NodePort 类型来暴露服务selector:app: platformservice1 # 匹配 platform-depl里的标签ports:- name: platformservice1 # 给端口命名(可选,便于理解)protocol: TCPport: 80 # 对外暴露的端口targetPort: 80 # 容器内的端口nodePort: 30001 # 可以指定 NodePort 的端口范围(可选,如果没有指定,Kubernetes 会自动分配一个在 30000-32767 之间的端口)

3. 运行当前的环境

  1. 先启动环境
kubectl apply -f .\platform-depl.yaml    
  1. 在部署Node
 kubectl apply -f .\platform-np-srv.yaml

4. 查看运行状态

  • 查看部署的状态
kubectl get deployments
  • 查看pods的状态
kubectl get  pods
  • 查看服务状态
kubectl get services
  • 查看 Kubernetes 事件
kubectl get events --sort-by='.lastTimestamp'

5. 删除部署

  1. 查看当前部署的集群
kubectl get deployments
  1. 删除
kubectl delete deployment platforms-depl

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代操作系统一点点

现代操作系统 操作系统为所有其他软件提供基础的运行环境。 操作系统包含很多用于控制输入/输出设备的驱动 文件也是抽象出来的 操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。 shell也是操作系统提…

分享|instructionfine-tuning 指令微调是提高LLM性能和泛化能力的通用方法

《生成式AI导论》课程中,李宏毅老师提到一篇关于“ instruction fine-tuning” 指令微调的论文: 《Scaling Instruction-Finetuned Language Models》 摘要分享: 事实证明, 在一组以指令形式表达的数据集上微调语言模型可以提…

python生成图片和pdf,快速

1、下载安装 pip install imgkit pip install pdfkit2、wkhtmltopdf工具包,下载安装 下载地址:https://wkhtmltopdf.org/downloads.html 3、生成图片 import imgkit path_wkimg rD:\app\wkhtmltopdf\bin\wkhtmltoimage.exe # 工具路径,安…

菜鸟之路Day09一一集合进阶(二)

菜鸟之路Day09一一集合进阶(二) 作者:blue 时间:2025.1.27 文章目录 菜鸟之路Day09一一集合进阶(二)0.概述1.泛型1.1泛型概述1.2泛型类1.3泛型方法1.4泛型接口1.5泛型通配符 2.Set系列集合2.1遍历方式2.2HashSet2.3LinkedHashSet2.4TreeSet 0.概述 内…

Hive:基本查询语法

和oracle一致的部分 和oracle不一样的部分 排序 oracle中,在升序排序中,NULL 值被视为最大的值;在降序排序中,NULL 值被视为最小的值。 在MySQL中,NULL 被视为小于任何非空值。 在Hive中, NULL是最小的; Hive除了可以用order…

在RHEL 8.10上安装开源工业物联网解决方案Thingsboard 3.9

在RHEL/CentOS/Rocky/AlmaLinux/Oracle Linux 8单节点上安装 备注: 适用于单节点 是否支持欧拉??? 前提条件 本指南描述了如何在RHEL/CentOS 7/8上安装ThingsBoard。硬件要求取决于所选的数据库和连接到系统的设备数量。要在单…

Python GUI 开发 | PySide6 辅助工具简介

关注这个框架的其他相关笔记:Python GUI 开发 | PySide6 & PyQt6 学习手册-CSDN博客 在上一章中,我们介绍了如何搭建 PySide6 & PyQt6 的开发环境。在搭建环境的时候我们配置了几个几个快捷工具,很多小伙伴可能都不知道是干啥用的。那…

hive:数据导入,数据导出,加载数据到Hive,复制表结构

hive不建议用insert,因为Hive是建立在Hadoop之上的数据仓库工具,主要用于批处理和大数据分析,而不是为OLTP(在线事务处理)操作设计的。INSERT操作会非常慢 数据导入 命令行界面:建一个文件 查询数据>>复制>>粘贴到新…

HarmonyOS:ForEach:循环渲染

一、前言 ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如,ListItem组件要求ForEach的父容器组件必须为List组件。 API参数说明见:ForEa…

cc算法总结

Vegas:基于延迟。是一种tcp拥塞避免算法,强调延迟而不是丢包来作为发送速率调整的依据。诞生于1994年。 Reno:基于丢包。 NewReno:基于丢包。 loss-based、delay-based、hybrid-based、congestion-based、learning-based。 基于丢包类型&…

基于PostgreSQL的自然语义解析电子病历编程实践与探索(上)

一、引言 1.1研究目标与内容 本研究旨在构建一个基于 PostgreSQL 的自然语义解析电子病历编程体系,实现从电子病历文本中提取结构化信息,并将其存储于 PostgreSQL 数据库中,以支持高效的查询和分析。具体研究内容包括: 电子病历的预处理与自然语言处理:对电子病历文本进…

安装 docker 详解

在平常的开发工作中,我们经常需要部署项目。随着 Docker 容器的出现,大大提高了部署效率。Docker 容器包含了应用程序运行所需的所有依赖,避免了换环境运行问题。可以在短时间内创建、启动和停止容器,大大提高了应用的部署速度&am…

运用python爬虫爬取汽车网站图片并下载,几个汽车网站的示例参考

当然,以下是一些常见的汽车网站及其爬虫示例代码,展示如何爬取汽车图片并下载。请注意,爬取网站内容时应遵守网站的使用协议和法律法规,避免对网站造成不必要的负担。 示例1:爬取汽车之家图片 网站地址 汽车之家 爬…

深度学习项目--基于LSTM的糖尿病预测探究(pytorch实现)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 LSTM模型一直是一个很经典的模型,一般用于序列数据预测,这个可以很好的挖掘数据上下文信息,本文将使用LSTM进行糖尿病…

初阶1 入门

本章重点 C的关键字命名空间C的输入输出缺省参数函数重载引用内联函数auto关键字基于范围的for循环指针的空值nullptr 1.C的关键字 c总共有63个关键字,其中包含c语言的32个 这些关键字不需要特意去记,在我们日后写代码的过程中会慢慢用到并记住。 2.…

自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

在 TensorFlow 中实现逻辑回归、保存模型并加载模型进行预测的过程可以分为以下几个步骤: 准备数据:创建或加载你的自定义数据集。构建逻辑回归模型。训练模型。保存模型。加载模型。使用加载的模型进行预测。 import tensorflow as tf import numpy as…

蓝桥杯LQ1044 求完数

题目描述 因子:因子也叫因数,例如3515,那么3和5是15的因子。 同时15115,那么1和15也是15的因子。 1,3,5,15 这四个因子是15的所有因子。 完数:如果一个数等于不含它本身的其他因子之…

动态规划DP 数字三角形模型(模型分析+例题分析+C++代码实现)(数字三角形、摘花生、最低通行费用、方格取数、传纸条)

总体概览 数字三角形 原题链接 AcWing 898.数字三角形 题目描述 给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路…

人工智能在计算机视觉中的应用与创新发展研究

一、引言 1.1 研究背景与意义 1.1.1 研究背景 在当今数字化与智能化飞速发展的时代,人工智能已成为推动各领域变革的核心力量,而计算机视觉作为人工智能领域中极具活力与潜力的重要分支,正发挥着日益关键的作用。计算机视觉旨在赋予计算机…

C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…