Je to v zásadě velmi jednoduché, pokud již máte funkční minikube či kubernetes cluster.
Na tomto zdroji se dočtete o následujícím příkazu:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Nicméně já si obvykle soubor prvně stáhnu, abych si ho pak upravoval a dělal si s ním, co mi připadne za vhodné, tedy:
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
(pokud nemáte wget tak debian/ubuntu/Azure distra: apt install wget -y | RedHatí/Amazon distra: dnf install wget -y | Suse Linux distra: zypper install wget )
Potom:
kubectl apply -f components.yaml
To vám však zařve na verzi 1.23 error:
Warning Unhealthy 2m43s (x66 over 12m) kubelet Readiness probe failed: HTTP probe failed with statuscode: 500
což zjistíte pomocí příkazu:
kubectl describe pod metrics-server -n kube-system
Kde se dočtete:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 12m default-scheduler Successfully assigned kube-system/metrics-server-847dcc659d-24b9b to kubenode3 Normal Pulling 12m kubelet Pulling image "k8s.gcr.io/metrics-server/metrics-server:v0.6.1" Normal Pulled 12m kubelet Successfully pulled image "k8s.gcr.io/metrics-server/metrics-server:v0.6.1" in 4.117592511s Normal Created 12m kubelet Created container metrics-server Normal Started 12m kubelet Started container metrics-server Warning Unhealthy 2m43s (x66 over 12m) kubelet Readiness probe failed: HTTP probe failed with statuscode: 500
Co s tím?
pomohl mi tento zdroj protože to na první dobrou původně, tak jak je to na webu, NESTARTOVALO.
V manifest konfiguračním souboru components.yaml pod řádek 139 je nutné vložit:
–kubelet-insecure-tls
Aby to vypadalo takto:
k8s-app: metrics-server
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-insecure-tls
Uložte a dejte příkaz: (který zruší kontejner/pod a nahradí ho tím nově upraveným vloženým insecure-tls argumentem). Pozor NENÍ to secure věc a rozhodně NIC z tohoto nedělejte v produkčním clusteru!
kubectl delete -f components.yaml && kubectl apply -f components.yaml
Výsledek
kubectl get pods –all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system metrics-server-7cf8b65d65-pc8sl 1/1 Running 0 10m
Ukázka
kubectl top pod --all-namespaces
kubectl top node