Skip to content

Commit

Permalink
Added metrics-server deployment for 1.16+
Browse files Browse the repository at this point in the history
Since kubernetes 1.16 does not support older deployments api versions
this needs to be updated as well.

Added addon.yaml and amended README.md
  • Loading branch information
elisiano committed Apr 5, 2020
1 parent ec42233 commit b1bab7d
Show file tree
Hide file tree
Showing 3 changed files with 175 additions and 2 deletions.
8 changes: 6 additions & 2 deletions addons/metrics-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,12 @@ the top-level directory of this repository:
# Kubernetes 1.7
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/kops/master/addons/metrics-server/v1.7.x.yaml

# Kubernetes 1.8+
# Kubernetes 1.8+ <= 1.15
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/kops/master/addons/metrics-server/v1.8.x.yaml

# Kubernetes 1.16+
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/kops/master/addons/metrics-server/v1.16.x.yaml

```

## Flags
Expand Down Expand Up @@ -95,4 +99,4 @@ behavior:

- `--kubelet-preferred-address-types`: the order in which to consider
different Kubelet node address types when connecting to Kubelet.
Functions similarly to the flag of the same name on the API server.
Functions similarly to the flag of the same name on the API server.
22 changes: 22 additions & 0 deletions addons/metrics-server/addon.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
kind: Addons
metadata:
name: metrics-server
spec:
addons:
- version: 0.1.0
selector:
k8s-addon: metrics-server.addons.k8s.io
manifest: v1.7.x.yaml
kubernetesVersion: "<1.8.0"
- version: 0.3.6
selector:
k8s-addon: metrics-server.addons.k8s.io
id: pre-k8s-1-16
kubernetesVersion: "<1.16.0"
manifest: v1.8.x.yaml
- version: 0.3.6
selector:
k8s-addon: metrics-server.addons.k8s.io
manifest: v1.16.x.yaml
id: k8s-1-16
kubernetesVersion: ">=1.16.0"
147 changes: 147 additions & 0 deletions addons/metrics-server/v1.16.x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: metrics-server:system:auth-delegator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:auth-delegator
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: metrics-server-auth-reader
namespace: kube-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:metrics-server
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- nodes/stats
- namespaces
verbs:
- get
- list
- watch
- apiGroups:
- "apps"
resources:
- deployments
verbs:
- get
- list
- watch
---
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"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: system:metrics-server
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:metrics-server
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
---
apiVersion: apiregistration.k8s.io/v1beta1
kind: APIService
metadata:
name: v1beta1.metrics.k8s.io
spec:
service:
name: metrics-server
namespace: kube-system
group: metrics.k8s.io
version: v1beta1
insecureSkipTLSVerify: true
groupPriorityMinimum: 100
versionPriority: 100
---
apiVersion: v1
kind: Service
metadata:
name: metrics-server
namespace: kube-system
labels:
kubernetes.io/name: "Metrics-server"
spec:
selector:
k8s-app: metrics-server
ports:
- port: 443
protocol: TCP
targetPort: 443
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-server
namespace: kube-system
labels:
k8s-app: metrics-server
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
name: metrics-server
labels:
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: k8s.gcr.io/metrics-server-amd64:v0.3.6
imagePullPolicy: Always
command:
- /metrics-server
- --kubelet-preferred-address-types=InternalIP,Hostname,ExternalIP
- --kubelet-insecure-tls
volumeMounts:
- name: tmp-dir
mountPath: /tmp

0 comments on commit b1bab7d

Please sign in to comment.