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
访问成功
开始压力测试,查看日志