dns/dnsperfgo/deployment-inclusternames.yaml (69 lines of code) (raw):

kind: ServiceAccount apiVersion: v1 metadata: name: dnsperfgo namespace: default --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: dnsperfgo rules: - apiGroups: [""] resources: ["services"] verbs: ["create", "get", "list", "delete"] - apiGroups: [""] resources: ["endpoints"] verbs: ["get", "list"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: dnsperfgo subjects: - kind: ServiceAccount name: dnsperfgo namespace: default roleRef: kind: ClusterRole name: dnsperfgo apiGroup: rbac.authorization.k8s.io --- apiVersion: apps/v1 kind: Deployment metadata: name: dnsperfgo spec: replicas: 5 selector: matchLabels: name: dnsperfgo template: metadata: labels: name: dnsperfgo spec: containers: - image: gcr.io/k8s-staging-perf-tests/dnsperfgo:v1.2.0 # Fetches the dns server from /etc/resolv.conf and sends 10 queries per second. # With searchpath expansion, this is 120 queries per second. # External names like google.com are expanded to 12 queries. # FQDN lookups like kubernetes.default.svc.cluster.local are also expanded to 12 queries since they have < 5 dots in the name. # Names like kubernetes.default will get partial search path expansion, since the query will succeed once "svc.cluster.local" path is applied. # -query-cluster-names flag will generate FQDNs, in order to exercise searchpath expansion. # dnsperf has a client timeout of 5s. It sends queries for 60s, # then sleeps for 10s, to mimic bursts of DNS queries. command: - sh - -c - server=$(cat /etc/resolv.conf | grep nameserver | cut -d ' ' -f 2); echo "Using nameserver ${server}"; ./dnsperfgo -duration 60s -idle-duration 10s -query-cluster-names -qps 10; name: dnsperfgo resources: requests: cpu: 10m memory: 10M serviceAccountName: dnsperfgo terminationGracePeriodSeconds: 1 # Add not-ready/unreachable tolerations for 15 minutes so that node # failure doesn't trigger pod deletion. tolerations: - key: "node.kubernetes.io/not-ready" operator: "Exists" effect: "NoExecute" tolerationSeconds: 900 - key: "node.kubernetes.io/unreachable" operator: "Exists" effect: "NoExecute" tolerationSeconds: 900