Skip to content

Instantly share code, notes, and snippets.

@sanketsudake
Last active June 15, 2024 23:48
Show Gist options
  • Save sanketsudake/a089e691286bf2189bfedf295222bd43 to your computer and use it in GitHub Desktop.
Save sanketsudake/a089e691286bf2189bfedf295222bd43 to your computer and use it in GitHub Desktop.
Running metric-server on Kind Kubernetes

I have created a local Kubernetes cluster with kind. Following are changes you need to get metric-server running on Kind.

Deploy latest metric-server release.

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.0/components.yaml

Within existing arguments to metric-server container, you need to add argument --kubelet-insecure-tls.

You can create file metric-server-patch.yaml with following content,

spec:
  template:
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls
        name: metrics-server

NOTE: If you are using metric-server latest release above 0.5.0, it's possible container arguments may change. You should get existing arguments to container and just add --kubelet-insecure-tls argument to get patch.

Patch metric-server deployment,

kubectl patch deployment metrics-server -n kube-system --patch "$(cat metric-server-patch.yaml)"
@ETisREAL
Copy link

Absolute God <3 I owe you a beer whenever dude

@qasimsqt
Copy link

@avoidik Thanks alot :)

@kishorevaishnav
Copy link

one-liner

$ kubectl patch -n kube-system deployment metrics-server --type=json \
  -p '[{"op":"add","path":"/spec/template/spec/containers/0/args/-","value":"--kubelet-insecure-tls"}]'

This worked nicely.

@MA3CIN
Copy link

MA3CIN commented Apr 4, 2024

one-liner

$ kubectl patch -n kube-system deployment metrics-server --type=json \
  -p '[{"op":"add","path":"/spec/template/spec/containers/0/args/-","value":"--kubelet-insecure-tls"}]'

The one liner is still the fastest solution, almost 3 years later :)

@kkbruce
Copy link

kkbruce commented Apr 5, 2024

kubectl patch -n kube-system deployment metrics-server --type=json \
  -p '[{"op":"add","path":"/spec/template/spec/containers/0/args/-","value":"--kubelet-insecure-tls"}]'

This worked nicely +1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment