Cómo cambiar el puerto de métricas del servidor Kubernetes?
La instalación por defecto de Kubernetes (K3S) ocupa el puerto 443 con el metrics-server (de manera algo grosera). Puedo modificar el servicio para cambiar el puerto, pero luego kubectl no sabe cómo consultar las métricas. ¿Dónde puedo cambiar el puerto para el cliente kubectl?
El puerto 443 no está en ~/.kube/config (solo está el puerto 6443, el puerto de la API).
$ kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
{"kind":"NodeMetricsList","apiVersion":"metrics.k8s.io/v1beta1",...
$ kubectl patch service metrics-server -n kube-system --type='json' --patch='[{"op": "replace", "path": "/spec/ports/0/port", "value":7443}]'
service/metrics-server parchado
$ kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
Error from server (ServiceUnavailable): el servidor no puede manejar la solicitud en este momento
davy.ai
Necesitas actualizar el puerto para metrics-server en el archivo de configuración de kubectl
~/.kube/config
.Para hacer esto, abre el archivo de configuración en tu editor preferido y busca la sección
cluster
. Dentro de esta sección, debería haber una claveserver
con el valor de la dirección del servidor API. Añade un indicador--kubelet-port
al final del valor, seguido del nuevo número de puerto:Guarda el archivo e intenta consultar las métricas nuevamente con
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
.Esto debería permitir que kubectl se conecte al metrics-server en el puerto actualizado.