(更新时间)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
- 1
- 2
服务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 #容器对应的端口号
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
执行命令: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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
执行命令: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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
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 #容器对应的端口号
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
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 #容器对应的端口号
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
商品微服务
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 #镜像拉取策略,先从本地拉取,不存在从远程拉取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
订单微服务
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 #镜像拉取策略,先从本地拉取,不存在从远程拉取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
支付微服务
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 #镜像拉取策略,先从本地拉取,不存在从远程拉取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
秒杀微服务
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 #镜像拉取策略,先从本地拉取,不存在从远程拉取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
用户微服务
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 #镜像拉取策略,先从本地拉取,不存在从远程拉取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
秒杀聚合微服务
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 #镜像拉取策略,先从本地拉取,不存在从远程拉取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
前台客户端
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 #镜像拉取策略,先从本地拉取,不存在从远程拉取
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/117605145
- 点赞
- 收藏
- 关注作者
评论(0)