Update to latest metrics-server 0.3.x works

With kubelet service file fixed and correct args set in
metrics-server-deployment.yaml, autoscale seems to be working reliably.

Fixes: #5

Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
This commit is contained in:
Saikrishna Edupuganti
2019-02-08 19:55:50 +00:00
committed by Manohar Castelino
parent b925d25730
commit a43f9bd3de
11 changed files with 101 additions and 20 deletions
@@ -0,0 +1,12 @@
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: system:aggregated-metrics-reader
labels:
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups: ["metrics.k8s.io"]
resources: ["pods"]
verbs: ["get", "list", "watch"]
@@ -1,3 +1,4 @@
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
@@ -1,3 +1,4 @@
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
@@ -1,3 +1,4 @@
---
apiVersion: apiregistration.k8s.io/v1beta1
kind: APIService
metadata:
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
@@ -22,10 +23,19 @@ spec:
k8s-app: metrics-server
spec:
serviceAccountName: metrics-server
volumes:
# mount in tmp so we can safely use from-scratch images and/or read-only containers
- name: tmp-dir
emptyDir: {}
containers:
- name: metrics-server
image: gcr.io/google_containers/metrics-server-amd64:v0.2.0
image: k8s.gcr.io/metrics-server-amd64:v0.3.1
imagePullPolicy: Always
command:
- /metrics-server
- --source=kubernetes.summary_api:https://kubernetes.default.svc?kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&insecure=true
args:
- --logtostderr
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,ExternalIP
volumeMounts:
- name: tmp-dir
mountPath: /tmp
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: Service
metadata:
@@ -1,3 +1,4 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
@@ -9,15 +10,6 @@ rules:
- pods
- nodes
- nodes/stats
- namespaces
verbs:
- get
- list
- watch
- apiGroups:
- "extensions"
resources:
- deployments
verbs:
- get
- list
+1 -1
View File
@@ -1 +1 @@
f90c6705d2381ea2db1a6343da6c400bd2ef4cb2
92d8412788e27ee669d38f21f20bad5342211884
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Pod
metadata:
name: load-generator
spec:
containers:
- command: ["/bin/sh", "-c"]
args:
- while true; do wget -q -O- http://php-apache-test; done;
image: busybox
imagePullPolicy: Always
name: load-generator
+54
View File
@@ -0,0 +1,54 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
run: php-apache-test
name: php-apache-test
spec:
selector:
matchLabels:
run: php-apache-test
template:
metadata:
labels:
run: php-apache-test
spec:
containers:
- image: k8s.gcr.io/hpa-example
name: php-apache-test
ports:
- containerPort: 80
protocol: TCP
resources:
requests:
cpu: 200m
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: php-apache-test
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: php-apache-test
sessionAffinity: None
type: ClusterIP
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: php-apache-test
spec:
maxReplicas: 10
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache-test
targetCPUUtilizationPercentage: 50
@@ -1,8 +1,5 @@
#!/bin/bash
kubectl run php-apache-test --image=k8s.gcr.io/hpa-example --requests=cpu=200m --expose --port=80
kubectl autoscale deployment php-apache-test --cpu-percent=50 --min=1 --max=10
kubectl get hpa
#kubectl run --generator=run-pod/v1 -i --tty load-generator --image=busybox /bin/sh
# while true; do wget -q -O- http://php-apache-test.default.svc.cluster.local; done
SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")"
kubectl apply -f $SCRIPT_DIR
watch kubectl describe hpa