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

  • https://youtu.be/ghObMDoLcAQ
  • https://www.bilibili.com/video/BV16Z4y1W75P/

# 创建一个服务端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