← Back to Index

openshift 4.3 QoS

https://docs.openshift.com/container-platform/4.3/nodes/pods/nodes-pods-configuring.html

https://docs.openshift.com/container-platform/3.11/admin_guide/managing_pods.html#admin-guide-manage-pods-limit-bandwidth

video


        # 创建一个服务端Pod,用iperf3作为服务端,服务端限制带宽1Mb/s。再创建一个客户端Pod,有iperf3作为客户端。
        
        cat << EOF > demo.yaml
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: demo-pod
          annotations:
            kubernetes.io/ingress-bandwidth: 1M
            kubernetes.io/egress-bandwidth: 1M
        spec:
          nodeSelector:
            kubernetes.io/hostname: 'infra1.hsc.redhat.ren'
          restartPolicy: Always
          containers:
            - name: demo1
              image: >- 
                registry.redhat.ren:5443/docker.io/wangzheng422/centos:centos7-test
              env:
                - name: key
                  value: value
              command: ["iperf3", "-s", "-p" ]
              args: [ "6666" ]
              imagePullPolicy: Always
        ---
        kind: Deployment
        apiVersion: apps/v1
        metadata:
          annotations:
          name: iperf
        spec:
          replicas: 1
          selector:
            matchLabels:
              app: iperf
          template:
            metadata:
              labels:
                app: iperf  
            spec:
              nodeSelector:
                kubernetes.io/hostname: 'infra0.hsc.redhat.ren'
              restartPolicy: Always
              containers:
                - name: iperf
                  image: >- 
                    registry.redhat.ren:5443/docker.io/wangzheng422/centos:centos7-test
                  env:
                    - name: key
                      value: value
                  command: ["/bin/bash", "-c", "--" ]
                  args: [ "trap : TERM INT; sleep infinity & wait" ]
                  imagePullPolicy: Always
        EOF
        oc apply -n demo -f demo.yaml
        
        # 查找服务端pod ip
        
        oc get pod -o wide
        
        # 进入客户端,进行测速
        
        oc exec -it iperf-5b95866ff5-c9p9m -- iperf3 -t 20 -b 2M -p 6666 -c 10.254.5.52
        
        # 查看服务端pod的日志,可以看到流量信息
        
        # 更改服务端带宽为2M
        
        oc delete pod -n demo demo-pod
        
        cat << EOF > demo1.yaml
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: demo-pod
          annotations:
            kubernetes.io/ingress-bandwidth: 2M
            kubernetes.io/egress-bandwidth: 2M
        spec:
          nodeSelector:
            kubernetes.io/hostname: 'infra1.hsc.redhat.ren'
          restartPolicy: Always
          containers:
            - name: demo1
              image: >- 
                registry.redhat.ren:5443/docker.io/wangzheng422/centos:centos7-test
              env:
                - name: key
                  value: value
              command: ["iperf3", "-s", "-p" ]
              args: [ "6666" ]
              imagePullPolicy: Always
        
        EOF
        oc apply -n demo -f demo1.yaml
        
        # 查找服务端pod ip
        
        oc get pod -o wide
        
        # 进入客户端,进行测速
        
        oc exec -it iperf-5b95866ff5-c9p9m -- iperf3 -t 20 -b 2M -p 6666 -c 10.254.5.53
        
        # 查看服务端pod的日志,可以看到流量信息
        
        oc delete -n demo -f demo.yaml