k8s使用busybox创建测试pod和svc,可用于跑高可用测试

分类:随笔 日期: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>

Dingtalk_20231114095818.jpg

Dingtalk_20231114095605.jpg

CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接

评论 (暂无评论)

发表评论

昵称:  
邮箱:  
网址: