{"id":9951,"date":"2024-10-31T10:03:07","date_gmt":"2024-10-31T09:03:07","guid":{"rendered":"https:\/\/geko.cloud\/?p=9951"},"modified":"2024-10-31T10:26:30","modified_gmt":"2024-10-31T09:26:30","slug":"cluster-kubernetes","status":"publish","type":"post","link":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/","title":{"rendered":"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps"},"content":{"rendered":"<p>Para resumir r\u00e1pidamente un viaje FinOps, debemos centrarnos en tres fases:<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Informaci\u00f3n<span style=\"font-weight: 400;\">: saber en qu\u00e9 se ha gastado el dinero, es decir, visibilidad\/asignaci\u00f3n de costes.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Optimizaci\u00f3n:<span style=\"font-weight: 400;\"> optimizar los costes mediante la reducci\u00f3n de tarifas\/estrategia de reducci\u00f3n de escala\/&#8230;).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Operar<span style=\"font-weight: 400;\">: mejora continua y supervisi\u00f3n de su estrategia FinOps, y automatizaci\u00f3n.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Para cada fase, intentaremos describir los conceptos clave y el mejor enfoque, en funci\u00f3n del proveedor de cloud (principalmente Amazon Web Services y Microsoft Azure) y del entorno del cluster (producci\u00f3n\/no producci\u00f3n).<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Informar<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">En el mundo de Kubernetes y especialmente con los servicios gestionados, <\/span>asignar costes <span style=\"font-weight: 400;\">puede ser una aut\u00e9ntica pesadilla porque para hacerlo bien hay que tener en cuenta e identificar m\u00faltiples recursos: por un lado, respecto a Kubernetes como los pods, pero tambi\u00e9n a nivel del proveedor Cloud (y teniendo en cuenta costes como balanceador de carga\/nodo\/almacenamiento\/red\/&#8230;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La <\/span>asignaci\u00f3n de costes<span style=\"font-weight: 400;\"> es el proceso de dividir facturas y asociar cada parte a un centro de costes, que podr\u00eda ser una aplicaci\u00f3n\/departamento\/equipo e intentar obtener la mayor precisi\u00f3n posible. De este modo, se obtiene una mayor visibilidad de los costes. En un entorno de nube, esto no es f\u00e1cil porque algunos recursos se comparten entre muchos centros. Por otro lado, tambi\u00e9n hay que gestionar descuentos como reservas, ancho de banda de red y muchos otros elementos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Para lograrlo, se utilizan etiquetas para identificar al propietario de los recursos (por ejemplo, aplicaci\u00f3n1) y, a continuaci\u00f3n, es necesario establecer una <\/span>estrategia adicional <span style=\"font-weight: 400;\">para asignar los elementos no etiquetados.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Adem\u00e1s, los proveedores cloud cobran a nivel de host (con la excepci\u00f3n de AWS EKS que se ejecuta en modo Fargate completo y GKE Autopilot), no a nivel de contenedor. Por lo tanto, debe asignar una cantidad determinada de recursos de host (vCPU\/Memoria\/&#8230;) a cada contenedor y, a continuaci\u00f3n, resumirla en funci\u00f3n de su estrategia de aplicaci\u00f3n de etiquetas. Tambi\u00e9n debes tener en cuenta los \u00ab<\/span>costes compartidos<span style=\"font-weight: 400;\">\u00bb, como el coste primario de Kubernetes, y los \u00ab<\/span>costes ociosos<span style=\"font-weight: 400;\">\u00bb (porcentaje de recursos de host no utilizados). No puedes utilizar el servicio de gesti\u00f3n de costes de un proveedor de nube com\u00fan, como AWS Cost Explorer o Azure Cost Management, para crear la distribuci\u00f3n de costes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Utilizar una <\/span>herramienta de terceros<span style=\"font-weight: 400;\"> como Cloudhealth podr\u00eda ser \u00fatil en tu tarea de distribuci\u00f3n de costes, pero la realidad es que tiene un coste elevado, a menos que puedas utilizar herramientas como<\/span><a href=\"https:\/\/github.com\/kubecost\/cost-model\"><span style=\"font-weight: 400;\"> Kubecost<\/span><\/a><span style=\"font-weight: 400;\"> para obtener una estimaci\u00f3n de la distribuci\u00f3n de costes (funciona con AWS y GCP).<\/span><\/p>\n<p>No existe una estrategia \u00fanica que funcione en todos los casos, tienes que encontrar la que mejor se adapte a tu caso de uso. Estas son algunas de las pautas:<\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"> Hay que definir una estrategia de etiquetado. Debe ser la misma que la definida respecto al proveedor de la nube.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Utiliza Kubernetes Labels con tu estrategia de etiquetado definida para la asignaci\u00f3n de costes.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Agrupa contenedores mediante espacios de nombres de Kubernetes para simplificar la asignaci\u00f3n de costes.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Optimizar<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">La fase de optimizaci\u00f3n se centra en los procesos de <\/span>reducci\u00f3n de costes<span style=\"font-weight: 400;\">. Algunos de ellos pueden aplicarse independientemente del proveedor de la nube, pero otros dependen de especificaciones.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Podemos agrupar las optimizaciones en cuatro categor\u00edas:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"> Rightsizing: asignar la cantidad adecuada de recursos (vCPU\/Memoria) a hosts y pods.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Off-hours: desconectar o reducir recursos durante las noches y los fines de semana.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Spot node: utilizar instancias spot para nodos Kubernetes.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Reserva de nodos: comprar una instancia\/m\u00e1quina virtual (o planes de ahorro para AWS).<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">A modo de gu\u00eda r\u00e1pida, te compartimos el siguiente diagrama, en el que puedes encontrar el orden de las optimizaciones recomendadas en funci\u00f3n del entorno del cluster (producci\u00f3n o no producci\u00f3n):<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9952 size-full\" src=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/cluster-kubernetes.png\" alt=\"\" width=\"899\" height=\"1510\" srcset=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/cluster-kubernetes.png 899w, https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/cluster-kubernetes-179x300.png 179w, https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/cluster-kubernetes-610x1024.png 610w, https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/cluster-kubernetes-768x1290.png 768w\" sizes=\"(max-width: 899px) 100vw, 899px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400;\">Redimensionar<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">El <\/span>redimensionamiento<span style=\"font-weight: 400;\"> puede realizarse a nivel de pod\/contenedor y\/o a nivel de host\/nodo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nota: redimensionar significa ajustar las capacidades de los recursos, pero tambi\u00e9n a\u00f1adir\/eliminar recursos id\u00e9nticos.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Contenedor<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">En el mundo de los contenedores, existen varias <\/span>estrategias de escalado<span style=\"font-weight: 400;\">: Escalado horizontal (HPA)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Al igual que un grupo de autoescalado de EC2 o Azure VMSS, el escalado horizontal tiene como objetivo a\u00f1adir o eliminar recursos (pods en este caso) para mantenerse al d\u00eda con la carga de trabajo actual.<\/span><\/p>\n<p><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/horizontal-pod-autoscale-walkthrough\/\"><span style=\"font-weight: 400;\">Kubernetes Horizontal Pod AutoScaling<\/span><\/a><span style=\"font-weight: 400;\"> est\u00e1 dise\u00f1ado para aplicaciones sin estado, que pueden iniciarse r\u00e1pidamente para gestionar picos de uso y detenerse con elegancia.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Escalado vertical (VPA)<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">A diferencia del escalado horizontal, que a\u00f1ade o elimina pods, el escalado vertical puede <\/span>aumentar o disminuir los recursos de los pods<span style=\"font-weight: 400;\"> (CPU\/Memoria) tras un periodo de evaluaci\u00f3n.<\/span><\/p>\n<p><a href=\"https:\/\/github.com\/kubernetes\/autoscaler\/tree\/master\/vertical-pod-autoscaler\"><span style=\"font-weight: 400;\">El autoescalado vertical de Kubernetes<\/span><\/a><span style=\"font-weight: 400;\"> es especialmente \u00fatil para ajustar las demandas de CPU y memoria al consumo real de los contenedores. A menudo, las demandas de los contenedores est\u00e1n sobredimensionadas, desperdiciando recursos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">VPA puede ajustar autom\u00e1ticamente los recursos de los contenedores. Sin embargo, no\u00a0 es recomendable. T\u00f3malo como consejo y luego ajusta tus definiciones de recursos de Kubernetes.\u00a0<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Redimensionamiento de nodos<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Tus pods utilizan recursos de nodo, por lo que cuando utiliza HPA o VPA, es obligatorio poder <\/span>ajustar su capacidad<span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El Kubernetes<\/span><a href=\"https:\/\/github.com\/kubernetes\/autoscaler\/tree\/master\/cluster-autoscaler\"> <span style=\"font-weight: 400;\">Cluster Autoscaler<\/span><\/a><span style=\"font-weight: 400;\"> puede a\u00f1adir o eliminar nodos para optimizar la capacidad de los recursos del cluster.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El<\/span><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\"> <span style=\"font-weight: 400;\">PodDistruptionBudget<\/span><\/a><span style=\"font-weight: 400;\"> es un elemento esencial cuando se activa el cluster Autoscaler para evitar el tiempo de inactividad de la aplicaci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Otro concepto importante relativo al escalado de nodos es la <\/span>coherencia<span style=\"font-weight: 400;\"> con la carga de trabajo. Esto significa que se debe tener en cuenta la relaci\u00f3n CPU\/memoria de su nodo para evitar tener demasiada memoria o CPU sin utilizar. Por ejemplo, tus pods consumen m\u00e1s memoria que CPU, pero la capacidad de los nodos es m\u00e1s o menos igual. En este caso, estar\u00e1s malgastando recursos de CPU y aumentando el coste de tu infraestructura. Para evitarlo, cambia el tipo de instancia de nodo a una instancia optimizada para memoria.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Para detectar el problema de coherencia con la carga de trabajo, comprueba el \u00ab<\/span>uso solicitado de CPU<span style=\"font-weight: 400;\">\u00bb y el \u00ab<\/span>uso solicitado de memoria<span style=\"font-weight: 400;\">\u00bb. Por ejemplo, tienes un problema si el \u00abuso de CPU\u00bb es del 100% mientras que la \u00abdemanda de memoria\u00bb es solo del 50%.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Fuera de horario<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Fuera de hora significa <\/span>detener o reducir la capacidad de los recursos <span style=\"font-weight: 400;\">por la noche (y los fines de semana). Para los entornos que no son de producci\u00f3n, deber\u00eda ser la norma.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Parar los recursos entre las 8 de la tarde y las 7 de la ma\u00f1ana y los fines de semana tiene una ventaja, y es que reduce el coste en un 60%.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/codeberg.org\/hjacobs\/kube-downscaler\">kube-downscaler<\/a> es el punto de entrada para clusters de producci\u00f3n y no producci\u00f3n (debe combinarse con<a href=\"https:\/\/github.com\/kubernetes\/autoscaler\/tree\/master\/cluster-autoscaler\"> Cluster Autoscaler<\/a> para ahorrar dinero).<\/p>\n<p>Este proyecto de c\u00f3digo abierto reducir\u00e1 los despliegues\/clusters est\u00e1ticos\/HPA bas\u00e1ndose en pol\u00edticas definidas (tiempo\/no conforme con condiciones de exclusi\u00f3n como la restricci\u00f3n del espacio de nombres).<\/p>\n<h3><span style=\"font-weight: 400;\">Producci\u00f3n<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">En un entorno de producci\u00f3n, debes asegurarte de que, incluso fuera de las horas de trabajo, tu cluster\/aplicaci\u00f3n cliente permanece <\/span>altamente disponible<span style=\"font-weight: 400;\"> y tolerante a fallos:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tiene al menos 2 r\u00e9plicas de cada aplicaci\u00f3n cr\u00edtica.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Distribuidas en al menos 2 nodos.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">No se trata realmente de horas valle, sino de una reducci\u00f3n de escala cuando disminuye la carga del cluster.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400;\">No producci\u00f3n<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Un cluster que no sea de producci\u00f3n deber\u00eda poder escalarse hasta 0 trabajadores, pero con los clusters Kubernetes gestionados, algunos servicios en la nube tienen <\/span>limitaciones <span style=\"font-weight: 400;\">(ver m\u00e1s abajo).<\/span><\/p>\n<blockquote><p><a href=\"https:\/\/github.com\/kubecost\/cluster-turndown\"><span style=\"font-weight: 400;\">cluster-turndown<\/span><\/a><span style=\"font-weight: 400;\"> es un proyecto de c\u00f3digo abierto que facilita la realizaci\u00f3n de operaciones fuera de producci\u00f3n. Actualmente, el proyecto es compatible con GKE, EKS y KOPS en AWS.<\/span><\/p><\/blockquote>\n<h4><span style=\"font-weight: 400;\">AWS EKS<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Puedes reducir el n\u00famero de trabajadores (grupo administrado o no administrado) a 0, pero no olvides que AWS sigue cobrando por la administraci\u00f3n del cluster.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">AZURE AKS<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Azure AKS es diferente a AWS porque Azure <\/span>no cobra<span style=\"font-weight: 400;\"> por la gesti\u00f3n del cluster (a menos que a\u00f1adas la opci\u00f3n uptime SLA.sta opci\u00f3n no tiene sentido para un cluster que no sea de producci\u00f3n), pero no puedes reducir el grupo de nodos por defecto (sistema) a 0.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El coste depende del tama\u00f1o de la m\u00e1quina virtual. Para los pools de trabajadores, puedes reducirlos a 0.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Nodo spot\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Los Spot Nodes son otra buena forma de reducir el coste de los clusters Kubernetes. En general, las instancias\/m\u00e1quinas virtuales spot son recursos \u00abnormales\u00bb que se benefician de un <\/span>descuento significativo<span style=\"font-weight: 400;\">. Pero este descuento tiene un inconveniente: los proveedores de la nube <\/span>no garantizan la disponibilidad de estos recursos<span style=\"font-weight: 400;\">. Pueden interrumpirse en cualquier momento.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esto significa que las aplicaciones en ejecuci\u00f3n deben ser tolerantes a fallos para un entorno de producci\u00f3n (fuera de producci\u00f3n, esto no es obligatorio, pero debes aceptar el riesgo de tiempo de inactividad hasta que un nuevo nodo est\u00e9 listo).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cada proveedor de nube ofrece una forma de recibir una notificaci\u00f3n (API de metadatos local) unos segundos\/minutos antes de que el nodo se apague. Esto mitiga el impacto del apagado del nodo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Para utilizar con \u00e9xito los nodos spot, es ideal considerar el uso de:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/assign-pod-node\/#affinity-and-anti-affinity\"><span style=\"font-weight: 400;\">node affinity y anti-affinity<\/span><\/a><span style=\"font-weight: 400;\"> (identificar pods que puedan soportar\/desplegarse en nodos spot).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Kubernetes cluster-autoscaler con la funci\u00f3n de<\/span><a href=\"https:\/\/github.com\/kubernetes\/autoscaler\/blob\/master\/cluster-autoscaler\/expander\/priority\/readme.md\"> <span style=\"font-weight: 400;\">expansi\u00f3n del cluster-autoscaler<\/span><\/a><span style=\"font-weight: 400;\"> (para volver autom\u00e1ticamente al tipo bajo demanda si no hay m\u00e1s spots disponibles).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">la funci\u00f3n<\/span><a href=\"https:\/\/github.com\/kubernetes\/autoscaler\/blob\/master\/cluster-autoscaler\/cloudprovider\/aws\/MixedInstancePolicy.md\"> <span style=\"font-weight: 400;\">MixedInstancePolicy de cluster-autoscaler<\/span><\/a><span style=\"font-weight: 400;\">\u00a0 [toma diferentes instancias (deben tener la misma capacidad de CPU y Memoria) para mejorar la disponibilidad de Spots. Exr5.2xlarge\/r5a.2xlarge\/r5d.2xlarge\/r5ad.2xlarge\/i3.2xlarge)] &#8211; solo AWS<\/span><\/li>\n<\/ul>\n<blockquote><p><span style=\"font-weight: 400;\">AWS anunci\u00f3<\/span><a href=\"https:\/\/aws.amazon.com\/es\/about-aws\/whats-new\/2020\/12\/amazon-eks-support-ec2-spot-instances-managed-node-groups\/?nc1=h_ls\"><span style=\"font-weight: 400;\"> la compatibilidad con instancias spot en un grupo de nodos administrados<\/span><\/a><span style=\"font-weight: 400;\">. Con esta nueva caracter\u00edstica, el drenaje de nodos y la estrategia de instancias spot son gestionados por AWS. Adem\u00e1s, ofrece una<\/span><a href=\"https:\/\/docs.aws.amazon.com\/autoscaling\/ec2\/userguide\/ec2-auto-scaling-mixed-instances-groups.html#asg-spot-strategy\"><span style=\"font-weight: 400;\">estrategia de asignaci\u00f3n de capacidad optimizada<\/span><\/a><span style=\"font-weight: 400;\"> y<\/span><a href=\"https:\/\/docs.aws.amazon.com\/autoscaling\/ec2\/userguide\/ec2-auto-scaling-capacity-rebalancing.html\"><span style=\"font-weight: 400;\">reequilibrio de capacidad<\/span><\/a><span style=\"font-weight: 400;\">, dos caracter\u00edsticas interesantes para los grupos de Spot AutoScaling.<\/span><\/p><\/blockquote>\n<p><span style=\"font-weight: 400;\">Azure tiene algunas limitaciones\/condiciones para utilizar los nodos spot:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">El pool de nodos por defecto (sistema) no admite Spot Nodes (y debe tener al menos 1 VM).\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">No puede mezclar nodos est\u00e1ndar y nodos spot en el mismo pool de nodos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Debe crear uno (o m\u00e1s) pool de nodos est\u00e1ndar y otro (o m\u00e1s) pool de nodos spot.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400;\">Producci\u00f3n<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">El consejo m\u00e1s com\u00fan para utilizar nodos spot en un cluster de producci\u00f3n es <\/span>distribuir la capacidad de nodos<span style=\"font-weight: 400;\"> entre nodos bajo demanda\/est\u00e1ndar y nodos spot para evitar sufrir un apagado completo si los nodos spot no est\u00e1n disponibles. La distribuci\u00f3n depende principalmente de las aplicaciones alojadas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por ejemplo, la distribuci\u00f3n podr\u00eda ser<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">30% Spot &#8211; 70% A la carta\/Est\u00e1ndar<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">50% Spot &#8211; 50% A la carta\/Est\u00e1ndar<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">70% Spot &#8211; 30% A la carta\/Est\u00e1ndar<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400;\">Fuera de producci\u00f3n<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">En un entorno fuera de producci\u00f3n, la <\/span>estrategia de distribuci\u00f3n puntual puede ser mucho m\u00e1s agresiva <span style=\"font-weight: 400;\">que en producci\u00f3n, ya que no es necesaria una disponibilidad absoluta. Incluso puede apuntar a la distribuci\u00f3n solo con nodos puntuales. En caso contrario, como en un entorno de producci\u00f3n, elige un equilibrio entre bajo demanda\/est\u00e1ndar y puntual.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Producci\u00f3n<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Para un cluster de producci\u00f3n debes<\/span> iniciar el proceso de reserva lo antes posible<span style=\"font-weight: 400;\">. Puedes empezar poco a poco reservando solo, por ejemplo, el 10% de tu capacidad e ir reservando m\u00e1s con el tiempo.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">AWS<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Utilizar AWS Fargate (parcial o totalmente) es una elecci\u00f3n f\u00e1cil, ya que solo los planes de ahorro inform\u00e1tico pueden cubrir tanto EC2 como Fargate.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Alternativamente, si tienes una <\/span>mezcla de instancias On-Demand y Spot<span style=\"font-weight: 400;\">, puedes elegir cubrir el 100% de tu On-Demand y si no tienes una instancia Spot, depende de la carga del cluster.\u00a0<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Azure<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">El punto de partida es comprar m\u00e1quinas virtuales reservadas para el conjunto de nodos por defecto (sistema). Si tienes una mezcla de instancias Standard y Spot, puedes elegir cubrir el 100% de tu instancia Standard y si no tienes una instancia Spot, depende de la carga del cluster.<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">Con la funci\u00f3n de cancelaci\u00f3n de reservas, puedes ser realmente agresivo en la cobertura de reservas, ya que el punto de equilibrio se alcanza r\u00e1pidamente (los gastos de cancelaci\u00f3n son s\u00f3lo el 3% de los gastos de reserva restantes). Consulta la<\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cost-management-billing\/reservations\/exchange-and-refund-azure-reservations#cancel-exchange-and-refund-policies\"> <span style=\"font-weight: 400;\">documentaci\u00f3n de Azure<\/span><\/a><span style=\"font-weight: 400;\"> para obtener m\u00e1s informaci\u00f3n.<\/span><\/p><\/blockquote>\n<h3><span style=\"font-weight: 400;\">No producci\u00f3n<\/span><\/h3>\n<h4><span style=\"font-weight: 400;\">AWS<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Si no ejecutas tu cluster \u00fanicamente con nodos de subasta y no cambias a grupos de 0 nodos durante las noches o los fines de semana, puedes reservar el <\/span>n\u00famero m\u00ednimo<span style=\"font-weight: 400;\"> de nodos operativos.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Azure<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">Como no puedes reducir el pool de nodos por defecto (sistema) a 0, puedes adquirir <\/span>m\u00e1quinas virtuales<span style=\"font-weight: 400;\"> reservadas para cubrirlos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">En el caso de los pools de nodos de trabajo, si los reduces a 0 durante las noches\/los fines de semana, no puedes comprar reservas. Como alternativa, puedes reservar el n\u00famero m\u00ednimo de nodos de trabajo.<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">Con la funci\u00f3n de cancelaci\u00f3n de reservas, puedes ser muy agresivo en la cobertura de reservas, ya que el punto de equilibrio se alcanza r\u00e1pidamente (los gastos de cancelaci\u00f3n son s\u00f3lo el 3% de los gastos de reserva restantes). Consulta la<\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cost-management-billing\/reservations\/exchange-and-refund-azure-reservations#cancel-exchange-and-refund-policies\"> <span style=\"font-weight: 400;\">documentaci\u00f3n de Azure<\/span><\/a><span style=\"font-weight: 400;\"> para obtener m\u00e1s informaci\u00f3n.<\/span><\/p><\/blockquote>\n<h3><span style=\"font-weight: 400;\">Particularidades de AWS Fargate<\/span><\/h3>\n<h4><span style=\"font-weight: 400;\">Obligatorio:<\/span><\/h4>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Solo cargas de trabajo interrumpibles.<\/span><\/li>\n<\/ul>\n<h4><span style=\"font-weight: 400;\">Limitaciones:<\/span><\/h4>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Statefulset no soportado (usar EFS para volumen persistente)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">No est\u00e1 disponible en todas las regiones de AWS<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Solo admite ALB como tipo de balanceador de carga<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">M\u00e1ximo 4vCPU y 30GB de memoria por contenedor<\/span><\/li>\n<\/ul>\n<h4><span style=\"font-weight: 400;\">Opciones:<\/span><\/h4>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Fargate<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Fargate con instancias puntuales<\/span><\/li>\n<\/ul>\n<h4><span style=\"font-weight: 400;\">Modelo de precios<\/span><\/h4>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Por vCPU por hora y por memoria (GB) por hora.<\/span><\/li>\n<\/ul>\n<h4><span style=\"font-weight: 400;\">Fargate es un buen candidato para:<\/span><\/h4>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clusters muy peque\u00f1os<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pruebas r\u00e1pidas\/POC<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Operar<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">La fase de operaciones permite mejorar continuamente tu estrategia FinOps. Sus controles permiten:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cambios en los costes globales<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cambios en los costes elemento por elemento<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dar a los desarrolladores los medios para supervisar su uso de Kubernetes y animarles a hacerlo.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Utilizar las \u00faltimas funcionalidades del proveedor de Cloud (por ejemplo, disponibilidad de la instancia\/vm de nueva generaci\u00f3n)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Comprobar si se pueden aplicar nuevas optimizaciones<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Esta es una lista no exhaustiva de cosas que hay que hacer\/comprobar durante la fase de operaciones, que DEBEN llevarse a cabo en entornos de producci\u00f3n y de no producci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Si quieres saber m\u00e1s sobre recursos \u00fatiles relacionados con Kubernetes desde la perspectiva de FinOps, aqu\u00ed te dejamos nuestras recomendaciones:\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/cloud.google.com\/architecture\/best-practices-for-running-cost-effective-kubernetes-applications-on-gke\"><span style=\"font-weight: 400;\">Mejores pr\u00e1cticas de Google Cloud para ejecutar Kubernetes de forma rentable<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.finops.org\/introduction\/what-is-finops\/\"><span style=\"font-weight: 400;\">Libro blanco FinOps para Kubernetes de la FinOps Foundation<\/span><\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">\u00bfNecesitas ayuda? <\/span><a href=\"https:\/\/geko.cloud\/es\/contacto\/\"><span style=\"font-weight: 400;\">Contacta<\/span><\/a><span style=\"font-weight: 400;\"> con nuestro equipo.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para resumir r\u00e1pidamente un viaje FinOps, debemos centrarnos en tres fases: Informaci\u00f3n: saber en qu\u00e9 se ha gastado el dinero, es decir, visibilidad\/asignaci\u00f3n de costes. Optimizaci\u00f3n: optimizar los costes mediante la reducci\u00f3n de tarifas\/estrategia de reducci\u00f3n de escala\/&#8230;). Operar: mejora continua y supervisi\u00f3n de su estrategia FinOps, y automatizaci\u00f3n. &nbsp; Para cada fase, intentaremos describir [&hellip;]<\/p>\n","protected":false},"author":38,"featured_media":9954,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[18],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps<\/title>\n<meta name=\"description\" content=\"En este art\u00edculo, desgranamos las pr\u00e1cticas clave para gestionar Kubernetes en la nube con un enfoque FinOps\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps - Geko Cloud\" \/>\n<meta property=\"og:description\" content=\"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Geko Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-31T09:03:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-31T09:26:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1706\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Geko Cloud\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps - Geko Cloud\" \/>\n<meta name=\"twitter:description\" content=\"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/04\/Co\u0301mo-cumplir.png\" \/>\n<meta name=\"twitter:creator\" content=\"@geko_cloud\" \/>\n<meta name=\"twitter:site\" content=\"@geko_cloud\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/\"},\"author\":{\"name\":\"Geko Cloud\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6\"},\"headline\":\"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps\",\"datePublished\":\"2024-10-31T09:03:07+00:00\",\"dateModified\":\"2024-10-31T09:26:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/\"},\"wordCount\":2524,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg\",\"articleSection\":[\"Labs\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/\",\"url\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/\",\"name\":\"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg\",\"datePublished\":\"2024-10-31T09:03:07+00:00\",\"dateModified\":\"2024-10-31T09:26:30+00:00\",\"description\":\"En este art\u00edculo, desgranamos las pr\u00e1cticas clave para gestionar Kubernetes en la nube con un enfoque FinOps\",\"breadcrumb\":{\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg\",\"width\":2560,\"height\":1706},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/geko.cloud\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/geko.cloud\/es\/#website\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"name\":\"Geko Cloud\",\"description\":\"Servicios de consultor\u00eda cloud y devops\",\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/geko.cloud\/es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/geko.cloud\/es\/#organization\",\"name\":\"Geko Cloud\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"width\":1650,\"height\":809,\"caption\":\"Geko Cloud\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/geko_cloud\",\"https:\/\/www.instagram.com\/gekocloud\/\",\"https:\/\/www.linkedin.com\/company\/gekocloud\",\"https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6\",\"name\":\"Geko Cloud\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g\",\"caption\":\"Geko Cloud\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps","description":"En este art\u00edculo, desgranamos las pr\u00e1cticas clave para gestionar Kubernetes en la nube con un enfoque FinOps","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps - Geko Cloud","og_description":"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.","og_url":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/","og_site_name":"Geko Cloud","article_published_time":"2024-10-31T09:03:07+00:00","article_modified_time":"2024-10-31T09:26:30+00:00","og_image":[{"width":2560,"height":1706,"url":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg","type":"image\/jpeg"}],"author":"Geko Cloud","twitter_card":"summary_large_image","twitter_title":"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps - Geko Cloud","twitter_description":"En Geko Cloud nos enorgullece mantenernos a la vanguardia de las tecnolog\u00edas emergentes y las mejores pr\u00e1cticas de la industria.","twitter_image":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/04\/Co\u0301mo-cumplir.png","twitter_creator":"@geko_cloud","twitter_site":"@geko_cloud","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#article","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/"},"author":{"name":"Geko Cloud","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6"},"headline":"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps","datePublished":"2024-10-31T09:03:07+00:00","dateModified":"2024-10-31T09:26:30+00:00","mainEntityOfPage":{"@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/"},"wordCount":2524,"commentCount":0,"publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"image":{"@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg","articleSection":["Labs"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/geko.cloud\/es\/cluster-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/","url":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/","name":"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg","datePublished":"2024-10-31T09:03:07+00:00","dateModified":"2024-10-31T09:26:30+00:00","description":"En este art\u00edculo, desgranamos las pr\u00e1cticas clave para gestionar Kubernetes en la nube con un enfoque FinOps","breadcrumb":{"@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/geko.cloud\/es\/cluster-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#primaryimage","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2024\/10\/geko-cluster-kubernetes-scaled.jpg","width":2560,"height":1706},{"@type":"BreadcrumbList","@id":"https:\/\/geko.cloud\/es\/cluster-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/geko.cloud\/es\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo gestionar un cluster Kubernetes desde una perspectiva FinOps"}]},{"@type":"WebSite","@id":"https:\/\/geko.cloud\/es\/#website","url":"https:\/\/geko.cloud\/es\/","name":"Geko Cloud","description":"Servicios de consultor\u00eda cloud y devops","publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/geko.cloud\/es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/geko.cloud\/es\/#organization","name":"Geko Cloud","url":"https:\/\/geko.cloud\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","width":1650,"height":809,"caption":"Geko Cloud"},"image":{"@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/geko_cloud","https:\/\/www.instagram.com\/gekocloud\/","https:\/\/www.linkedin.com\/company\/gekocloud","https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ"]},{"@type":"Person","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6","name":"Geko Cloud","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g","caption":"Geko Cloud"}}]}},"_links":{"self":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/9951"}],"collection":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/users\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/comments?post=9951"}],"version-history":[{"count":8,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/9951\/revisions"}],"predecessor-version":[{"id":9964,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/9951\/revisions\/9964"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media\/9954"}],"wp:attachment":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media?parent=9951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/categories?post=9951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/tags?post=9951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}