网站栏目架构,手机网站制作行业排行,网上下载的网站后台安全吗,网店美工的岗位职责文章目录 项目地址一、微服务1.1 分析User的Domian Verb和Nouns 二、运行docker和k8s2.1 Docker1. 编写dockerfile2. 创建docker image3. 运行docker使用指定端口4. 查看当前运行的镜像5. 停止当前所有运行的docker6. 删除不用的docker images7. 将本地的image上传到hub里 2.2 … 文章目录 项目地址一、微服务1.1 分析User的Domian Verb和Nouns 二、运行docker和k8s2.1 Docker1. 编写dockerfile2. 创建docker image3. 运行docker使用指定端口4. 查看当前运行的镜像5. 停止当前所有运行的docker6. 删除不用的docker images7. 将本地的image上传到hub里 2.2 K8S1. 创建k8s的部署2. 创建node服务3. 运行当前的环境4. 查看运行状态5. 删除部署 项目地址
教程作者教程地址 代码仓库地址 所用到的框架和插件
dbt
airflow一、微服务 1.1 分析User的Domian Verb和Nouns 根据用户行为分析用户需要的实体和查询条件 列出所有的实体
Customer
Order
Order Details
Product
Shopping Cart
Shopping Cart ltems
Supplier
User
Address
Brand
Category根据动词设计关系图 二、运行docker和k8s
2.1 Docker
1. 编写dockerfile
编写好.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 --frombuild-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/platformservice4. 查看当前运行的镜像
docker ps5. 停止当前所有运行的docker
docker stop $(docker ps -q)6. 删除不用的docker images
查看
docker images删除
docker -rmi -f 镜像ID7. 将本地的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 # 选择标签为 appplatformservice1 的 PodsKubernetes 使用这个标签来选择受此 Deployment 管理的 Podstemplate: # Pod 模板描述 Pods 应该如何创建metadata:labels:app: platformservice1 # Pod 的标签用于与 selector 配合选择该 Podspec: # Pod 的规格定义containers: #容器定义说明该 Pod 中将运行的容器- name: platformservice1 # 容器的名称image: pjj521/platformservice1 # 容器使用的镜像这里是一个本地镜像 pjj521/platformservice1ports:- 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. 运行当前的环境
先启动环境
kubectl apply -f .\platform-depl.yaml 在部署Node kubectl apply -f .\platform-np-srv.yaml4. 查看运行状态
查看部署的状态
kubectl get deployments查看pods的状态
kubectl get pods查看服务状态
kubectl get services查看 Kubernetes 事件
kubectl get events --sort-by.lastTimestamp5. 删除部署
查看当前部署的集群
kubectl get deployments删除
kubectl delete deployment platforms-depl