栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

(更新时间)2021年6月5日 商城高并发秒杀系统(.NET Core版) 36-高并发秒杀项目k8s集群部署

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(更新时间)2021年6月5日 商城高并发秒杀系统(.NET Core版) 36-高并发秒杀项目k8s集群部署

秒杀项目docker部署 前提准备 k8s集群网络

serviceSubnet: “10.96.0.0/16”

podSubnet: “10.100.0.0/20”

初始化的时候进行设置

环境镜像

1、mcr.microsoft.com/dotnet/core/sdk:3.1-buster镜像

docker pull mcr.microsoft.com/dotnet/core/sdk:3.1-buster

2、mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim镜像

docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim

3、consul镜像

​ 镜像地址:https://hub.docker.com/_/consul

​ 下载地址:docker pull consul

​ 运行命令:kubectl create deployment consul-deploy --image=consul

​ 暴露命令:kubectl expose deployment consul-deploy --name=consul --port=8500 --target-port=8500 --type=NodePort --cluster-ip=10.96.0.2

​ 弹性伸缩命令:kubectl scale --replicas=3 deployment/my-consul

​ 连接地址:http://172.18.0.2:8500

4、rabbitmq镜像 消息队列

​ 镜像地址:https://hub.docker.com/_/rabbitmq

​ 下载地址:docker pull rabbitmq:management

​ 运行命令:kubectl create deployment rabbitmq-deploy --image=rabbitmq:management

​ 暴露命令:kubectl expose deployment rabbitmq-deploy --name=rabbitmq --port=15672 --target-port=15672 --type=NodePort --cluster-ip=10.96.0.3

​ 弹性伸缩命令:kubectl scale --replicas=3 deployment/rabbitmq-deploy

​ 连接地址:http://172.18.0.3:8500

5、mysql镜像

​ 镜像地址:https://hub.docker.com/_/mysql?tab=tags

​ 下载地址:docker pull mysql:5.7

​ 运行命令:kubectl create deployment mysql-deploy --image=mysql:5.7

​ 暴露命令:kubectl expose deployment mysql-deploy --name=mysql --port=3306 --target-port=3306 --type=NodePort --cluster-ip=10.96.0.4

​ 弹性伸缩命令:kubectl scale --replicas=3 deployment/mysql-deploy

​ 连接地址:http://172.18.0.4:3306

6、skywalking镜像

​ 6.1 apache/skywalking-base 镜像(这个镜像用于构建ui和oap-server)不进行使用

​ 镜像地址:https://hub.docker.com/r/apache/skywalking-base

​ 下载地址:docker pull apache/skywalking-base:6.6.0-es6

​ 运行命令:

​ 连接地址:http://172.18.0.5:3306

​ 6.2 apache/skywalking-ui:6.6.0 镜像

​ 镜像地址:https://hub.docker.com/r/apache/skywalking-ui

​ 下载地址:docker pull apache/skywalking-ui:6.6.0

​ 运行命令:docker run --name skywalking-ui -d -e SW_OAP_ADDRESS=oap:12800 --restart=always --network seckillservice --ip 172.18.0.6 skywalking-ui:6.6.0

​ 连接地址:http://172.18.0.6:8090

​ 6.3 apache/skywalking-oap-server 镜像

​ 镜像地址:https://hub.docker.com/r/apache/skywalking-oap-server

​ 下载地址:docker pull apache/skywalking-oap-server:6.6.0-es6

​ 运行命令:docker run --name skywalking-oap-server -d -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 --restart=always --network seckillservice --ip 172.18.0.7 apache/skywalking-oap-server:6.6.0-es6

​ 连接地址:http://172.18.0.7:12800

7、elasticsearch镜像

​ 镜像地址:https://hub.docker.com/_/elasticsearch

​ 下载地址:docker pull elasticsearch:6.6.0

​ 运行命令:docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 --restart=always --network seckillservice --ip 172.18.0.8 elasticsearch:6.6.0

​ 连接地址:http://172.18.0.8:9200

7、nginx镜像

​ 镜像地址:https://hub.docker.com/_/nginx?tab=tags。

​ 下载地址:docker pull nginx

​ 运行命令:kubectl create deployment nginx-deploy --image=nginx

​ 暴露命令:kubectl expose deployment nginx-deploy --name=nginx --port=80 --target-port=80 --type=NodePort --cluster-ip=10.96.0.5

​ 弹性伸缩命令:kubectl scale --replicas=3 deployment/nginx-deploy

​ 连接地址:http://172.18.0.18:80

8、redis镜像

​ 镜像地址:https://hub.docker.com/_/redis?tab=tags。

​ 下载地址:docker pull redis

​ 运行命令:kubectl create deployment redis-deploy --image=redis

​ 暴露命令:kubectl expose deployment redis-deploy --name=redis --port=6379 --target-port=6379 --type=NodePort --cluster-ip=10.96.0.6

​ 弹性伸缩命令:kubectl scale --replicas=3 deployment/redis-deploy

​ 连接地址:http://172.18.0.19:6379

项目镜像 商品微服务镜像

镜像文件:Dockerfile vs2019自动生成

镜像构建:docker build -t productservices .

运行命令:kubectl create deployment productservices-deploy --image=productservices

暴露命令:kubectl expose deployment productservices-deploy --name=redis --port=5001 --target-port=80 --type=NodePort --cluster-ip=10.96.0.7

弹性伸缩命令:kubectl scale --replicas=3 deployment/productservices-deploy

订单微服务镜像

镜像文件:Dockerfile vs2019自动生成

镜像构建:docker build -t orderservices .

运行命令:kubectl create deployment orderservices-deploy --image=orderservices

暴露命令:kubectl expose deployment orderservices-deploy --name=redis --port=5002 --target-port=80 --type=NodePort --cluster-ip=10.96.0.8

弹性伸缩命令:kubectl scale --replicas=3 deployment/orderservices-deploy

支付微服务镜像

镜像文件:Dockerfile vs2019自动生成

镜像构建:docker build -t paymentservices .

运行命令:kubectl create deployment paymentservices-deploy --image=paymentservices

暴露命令:kubectl expose deployment paymentservices-deploy --name=redis --port=5003 --target-port=80 --type=NodePort --cluster-ip=10.96.0.9

弹性伸缩命令:kubectl scale --replicas=3 deployment/paymentservices-deploy

秒杀服务镜像

镜像文件:Dockerfile vs2019自动生成

镜像构建:docker build -t seckillservices .

运行命令:kubectl create deployment seckillservices-deploy --image=seckillservices

暴露命令:kubectl expose deployment seckillservices-deploy --name=redis --port=5004 --target-port=80 --type=NodePort --cluster-ip=10.96.0.10

弹性伸缩命令:kubectl scale --replicas=3 deployment/seckillservices-deploy

用户微服务镜像

镜像文件:Dockerfile vs2019自动生成

镜像构建:docker build -t userservices .

运行命令:kubectl create deployment userservices-deploy --image=userservices

暴露命令:kubectl expose deployment userservices-deploy --name=redis --port=5005 --target-port=80 --type=NodePort --cluster-ip=10.96.0.11

弹性伸缩命令:kubectl scale --replicas=3 deployment/userservices-deploy

秒杀聚合微服务镜像

ConfigurationDbContext

镜像文件:Dockerfile vs2019自动生成

镜像构建:docker build -t seckillaggregateservices .

运行命令:kubectl create deployment seckillaggregateservices-deploy --image=seckillaggregateservices

暴露命令:kubectl expose deployment seckillaggregateservices-deploy --name=redis --port=5006 --target-port=80 --type=NodePort --cluster-ip=10.96.0.12

弹性伸缩命令:kubectl scale --replicas=3 deployment/seckillaggregateservices-deploy

前台客户端镜像

镜像文件:Dockerfile vs2019自动生成

镜像构建:docker build -t seckillfronts.

运行命令:kubectl create deployment seckillfronts-deploy --image=seckillfronts

暴露命令:kubectl expose deployment seckillfronts-deploy --name=redis --port=5006 --target-port=80 --type=NodePort --cluster-ip=10.96.0.13

弹性伸缩命令:kubectl scale --replicas=3 deployment/seckillfronts-deploy

项目脚本
sql脚本
项目实战-生厂.sql
服务yaml文件 consul consul-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: consul-deploy #资源名称
  labels: #资源标签(版本号)
    app: consul 
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: consul
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: consul
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: consul #容器名称
        image: consul #容器使用的镜像
        ports: #端口号
        - containerPort: 8500 #容器对应的端口号

执行命令:kubectl create -t consul-deployment.yaml

consul-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: consul # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: consul
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.2 # service ip地址
  ports:
    - port: 8500 #service 端口
      targetPort: 8500 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30001 #映射端口号
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: consul

执行命令:kubectl create -t consul-service.yaml

rabbitmq rabbitmq-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: rabbitmq-deploy #资源名称
  labels: #资源标签(版本号)
    app: rabbitmq 
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: rabbitmq
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: rabbitmq
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: rabbitmq #容器名称
        image: rabbitmq:management #容器使用的镜像
        ports: #端口号
        - containerPort: 5672 #容器对应的端口号
        - containerPort: 15672
rabbitmq-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: rabbitmq # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: rabbitmq
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.3 # service ip地址
  ports:
    - port: 5672 #service 端口
      targetPort: 5672 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30002 #映射端口号
      name: tcp
    - port: 15672 #service 端口
      targetPort: 15672 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30003 #映射端口号
      name: http
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: rabbitmq
mysql mysql-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: mysql-deploy #资源名称
  labels: #资源标签(版本号)
    app: mysql
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: mysql
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: mysql
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: mysql #容器名称
        image: mysql:5.7 #容器使用的镜像
        ports: #端口号
        - containerPort: 3306 #容器对应的端口号
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: root
mysql-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: mysql # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: mysql
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.4 # service ip地址
  ports:
    - port: 3306 #service 端口
      targetPort: 3306 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30004 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: mysql
nginx nginx-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: nginx-deploy #资源名称
  labels: #资源标签(版本号)
    app: nginx
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: nginx
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: nginx
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: nginx #容器名称
        image: nginx #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
nginx-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: nginx # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: nginx
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.5 # service ip地址
  ports:
    - port: 80 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30005 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: nginx
redis redis-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: redis-deploy #资源名称
  labels: #资源标签(版本号)
    app: redis
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: redis
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: redis
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: redis #容器名称
        image: redis #容器使用的镜像
        ports: #端口号
        - containerPort: 6379 #容器对应的端口号
redis-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: redis # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: redis
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.6 # service ip地址
  ports:
    - port: 6379 #service 端口
      targetPort: 6379 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30006 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: redis
商品微服务 productservices-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: productservices-deploy #资源名称
  labels: #资源标签(版本号)
    app: productservices
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: productservices
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: productservices
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: productservices #容器名称
        image: productservices #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
        imagePullPolicy: IfNotPresent #镜像拉取策略,先从本地拉取,不存在从远程拉取
productservices-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: productservices # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: productservices
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.7 # service ip地址
  ports:
    - port: 5001 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30007 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: productservices
订单微服务 orderservices-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: orderservices-deploy #资源名称
  labels: #资源标签(版本号)
    app: orderservices
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: orderservices
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: orderservices
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: orderservices #容器名称
        image: orderservices #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
        imagePullPolicy: IfNotPresent #镜像拉取策略,先从本地拉取,不存在从远程拉取
orderservices-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: orderservices # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: orderservices
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.8 # service ip地址
  ports:
    - port: 5002 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30008 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: orderservices
支付微服务 paymentservices-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: paymentservices-deploy #资源名称
  labels: #资源标签(版本号)
    app: paymentservices
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: paymentservices
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: paymentservices
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: paymentservices #容器名称
        image: paymentservices #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
        imagePullPolicy: IfNotPresent #镜像拉取策略,先从本地拉取,不存在从远程拉取
paymentservices-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: paymentservices # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: paymentservices
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.9 # service ip地址
  ports:
    - port: 5003 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30009 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: paymentservices
秒杀微服务 seckillservices-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: seckillservices-deploy #资源名称
  labels: #资源标签(版本号)
    app: seckillservices
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: seckillservices
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: seckillservices
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: seckillservices #容器名称
        image: seckillservices #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
        imagePullPolicy: IfNotPresent #镜像拉取策略,先从本地拉取,不存在从远程拉取
seckillservices-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: seckillservices # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: seckillservices
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.14 # service ip地址
  ports:
    - port: 5004 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30010 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: seckillservices
用户微服务 userservices-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: userservices-deploy #资源名称
  labels: #资源标签(版本号)
    app: userservices
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: userservices
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: userservices
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: userservices #容器名称
        image: userservices #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
        imagePullPolicy: IfNotPresent #镜像拉取策略,先从本地拉取,不存在从远程拉取
userservices-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: userservices # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: userservices
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.11 # service ip地址
  ports:
    - port: 5005 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30011 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: userservices
秒杀聚合微服务 seckillaggregateservices-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: seckillaggregateservices-deploy #资源名称
  labels: #资源标签(版本号)
    app: seckillaggregateservices
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: seckillaggregateservices
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: seckillaggregateservices
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: seckillaggregateservices #容器名称
        image: seckillaggregateservices #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
        imagePullPolicy: IfNotPresent #镜像拉取策略,先从本地拉取,不存在从远程拉取
seckillaggregateservices-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: seckillaggregateservices # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: seckillaggregateservices
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.12 # service ip地址
  ports:
    - port: 5006 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30012 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: seckillaggregateservices
前台客户端 seckillfronts-deployment.yaml
apiVersion: apps/v1 #k8s版本号
kind: Deployment #部署类型(资源类型)
metadata: #元数据(用于定义资源信息)
  name: seckillfronts-deploy #资源名称
  labels: #资源标签(版本号)
    app: seckillfronts
spec: #资源相关信息规范
  replicas: 1 #副本数
  selector: #选择哪一个版本
    matchLabels:
      app: seckillfronts
  template: #模板
    metadata: #资源的元数据/属性
      labels: #设置资源的标签
        app: seckillfronts
    spec: #资源规范字段(规范容器配置)
      containers: #指定容器
      - name: seckillfronts #容器名称
        image: seckillfronts #容器使用的镜像
        ports: #端口号
        - containerPort: 80 #容器对应的端口号
        imagePullPolicy: IfNotPresent #镜像拉取策略,先从本地拉取,不存在从远程拉取
seckillaggregateservices-service.yaml
apiVersion: v1 # 指定api版本,此值必须在kubectl api-versions中
kind: Service # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
  name: seckillfronts # 资源的名字,在同一个namespace中必须唯一
  namespace: default #部署在哪个namespace中
  labels: # 设定资源的标签
    app: seckillfronts
spec: # 资源规范字段
  type: NodePort #ClusterIP 类型
  clusterIP: 10.96.0.13 # service ip地址
  ports:
    - port: 5007 #service 端口
      targetPort: 80 #容器暴露的端口
      protocol: TCP #协议
      nodePort: 30013 #映射端口号
      name: tcp
  selector: #选择器(选择什么资源进行发布给外界进行访问:pod deployment 等等资源)
    app: seckillfronts
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984802.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号