分类:随笔 日期:2023-11-14 作者:caocaofff 浏览:432
在k8s进行高可用测试时,如果需要小巧的docker镜像,可以使用busybox创建pod和svc,然后使用jmeter压测访问它的nodeport。
直接给yaml吧。
apiVersion: apps/v1
kind: Deployment
metadata:
name: busybox
spec:
replicas: 1
selector:
matchLabels:
app: busybox
template:
metadata:
labels:
app: busybox
spec:
containers:
- name: busybox
image: 192.168.1.129/public/busybox:1.36
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- httpd -p 80 -h /www/ && tail -f /dev/null
volumeMounts:
- name: www
mountPath: /www
volumes:
- name: www
hostPath:
path: /www
type: Directory
---------
apiVersion: v1
kind: Service
metadata:
name: busybox-service
labels:
name: busybox-service
spec:
type: NodePort #这里代表是NodePort类型的
ports:
- port: 80 #这里的端口和clusterIP对应,供内部访问。
targetPort: 80 #端口一定要和container暴露出来的端口对应,busybox暴露出来的端口是80,所以这里也应是80
protocol: TCP
nodePort: 30080 # 所有的节点都会开放此端口,此端口供外部调用。
selector:
app: busybox #这里选择器一定要选择容器的标签
/www是容器映射在宿主机的路径,可以直接放你的index.html,比如可以创建一个包含动态内容的HTML文件,以显示Pod所在的Node主机名。
<!DOCTYPE html>
<html>
<head>
<title>Pod Node Hostname</title>
</head>
<body>
<h1>Pod Node Hostname</h1>
<p>Pod is running on Node: <span id="node-hostname"></span></p>
<script>
// 使用JavaScript获取并显示Pod所在的Node主机名
var nodeHostname = window.location.hostname;
document.getElementById("node-hostname").innerText = nodeHostname;
</script>
</body>
</html>
CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接