Docker构建镜像到K8s部署并测试吞吐量

Docker构建镜像到K8s部署并测试吞吐量

环境

构建镜像环境:windows10 + docker for windows
K8s环境:CentOS7

步骤1
准备
打包一个jar,新建Dockerfile文件
在这里插入图片描述
在这里插入图片描述
编写Dockerfile文件 注:程序配置文件里端口号和这里的端口号对应上
在这里插入图片描述
步骤2
构建镜像并push到私库
Dockerfile文件目录下打开cmd
在这里插入图片描述
构建镜像 注:最后的 . 表示 Dockerfile 文件在当前目录下

docker build -t my/demo8088 .

构建成功

运行镜像并测试

docker run -p 8088:8088 -t -i my/demo8088

在这里插入图片描述
在这里插入图片描述
登录自己的docker账号(我这里是保存了账号密码)

docker login

在这里插入图片描述
访问https://hub.docker.com/repositories查看自己的私库
在这里插入图片描述
重命名镜像

docker tag eea43fc2a946 caijie41736081/demo8088

注:eea43fc2a946为镜像ID,修改的镜像名称为 私库名/自定义镜像名
在这里插入图片描述
push到私库

docker push caijie41736081/demo8088

push成功,在私库里查看
在这里插入图片描述
步骤3
搭建k8s集群环境
参考《CentOS7 部署K8S集群》

步骤4
安装水平自动扩容、缩容相关插件
参考K8S-安装metric-server插件

测试一
docker运行demo8090
登录docker
在这里插入图片描述
拉取私库demo8090项目

docker pull caijie41736081/demo8090

在这里插入图片描述
运行demo8090镜像

docker run -p 8089:8089 -t -i caijie41736081/demo8090

访问成功
在这里插入图片描述
使用HP LoadRunner测试
在这里插入图片描述

测试二
k8s部署运行demo8090
master上创建yaml文件,放到任意文件夹下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo8090-deployment
  labels:
    app: demo8090
spec:
  replicas: 1 #设置pod副本数量
  revisionHistoryLimit: 10 #设置保留的历史版本个数,默认是10
  selector:
    matchLabels:
      app: demo8090
  template:
    metadata:
      labels:
        app: demo8090
    spec:
      containers:
      - name: demo8090
        image: caijie41736081/demo8090
        #imagePullPolicy: Never
        ports:
        - containerPort: 8089
        resources:
          requests:
            memory: "200Mi"
            cpu: "100m"
          limits:
            memory: "600Mi"
            cpu: "300m"
---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: demo8090-deployment
  name: demo8090-deployment-service
spec:
  ports:
    - port: 8089
      targetPort: 8089
      name: http
      nodePort: 30005
  selector:
    app: demo8090
  type: NodePort

在文件夹下执行,创建部署

kubectl apply -f demo8090-deployment.yaml

在这里插入图片描述
创建自动扩容

kubectl autoscale deployment demo8090-deployment --min=1 --max=15 --cpu-percent=20

在这里插入图片描述
访问成功
在这里插入图片描述
开始压力测试,查看日志
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以下是使用 Docker 构建镜像部署Kubernetes (k8s) 的步骤: 1. 在本地开发环境中创建一个 Dockerfile 文件。Dockerfile 文件定义了如何构建 Docker 镜像,包括基础镜像、应用程序的依赖、应用程序的代码等信息。例如: ``` FROM node:12-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["npm", "start"] ``` 2. 使用 Docker 命令构建 Docker 镜像,例如: ``` docker build -t my-docker-image:tag . ``` 其中,my-docker-image:tag 是 Docker 镜像的名称和版本号。 3. 将 Docker 镜像推送到 Docker Hub 或其他 Docker 镜像仓库中,例如: ``` docker push my-docker-image:tag ``` 4. 使用 kubectl 命令创建一个 Deployment 对象: ``` kubectl create deployment my-app --image=my-docker-image:tag ``` 其中,my-app 是应用程序的名称,my-docker-image:tag 是 Docker 镜像的名称和版本号。 5. 使用 kubectl 命令创建一个 Service 对象: ``` kubectl expose deployment my-app --port=80 --target-port=8080 --type=LoadBalancer ``` 其中,my-app 是应用程序的名称,80 是 Service 对象的端口号,8080 是容器的端口号,LoadBalancer 是 Service 对象的类型。 6. (可选)使用 kubectl 命令创建一个 Ingress 对象: ``` kubectl apply -f my-ingress.yaml ``` 其中,my-ingress.yaml 是 Ingress 对象的 YAML 配置文件。在配置文件中,需要指定 Ingress 规则、后端 Service 对象的名称和端口号等信息。 7. 部署应用程序: ``` kubectl apply -f my-deployment.yaml ``` 其中,my-deployment.yaml 是 Deployment 对象的 YAML 配置文件。在配置文件中,需要指定应用程序的镜像信息、容器数量、容器的启动参数等信息。 8. 监控应用程序: ``` kubectl logs my-app-<pod-id> kubectl describe pod my-app-<pod-id> ``` 其中,my-app-<pod-id> 是应用程序的 Pod 的名称。使用 kubectl logs 命令查看 Pod 的日志,使用 kubectl describe 命令查看 Pod 的状态信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值