<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GKE archivos - Geko Cloud</title>
	<atom:link href="https://geko.cloud/es/etiqueta/gke/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Servicios de consultoría cloud y devops</description>
	<lastBuildDate>Wed, 03 Nov 2021 10:01:35 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.7</generator>

<image>
	<url>https://geko.cloud/wp-content/uploads/2021/08/cropped-geko-fav-150x150.png</url>
	<title>GKE archivos - Geko Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GCP/GKE &#8211; Nuevo sistema de logging</title>
		<link>https://geko.cloud/es/gcp-gke-nuevo-sistema-de-logging/</link>
					<comments>https://geko.cloud/es/gcp-gke-nuevo-sistema-de-logging/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Mon, 07 Sep 2020 05:27:42 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[GKE]]></category>
		<category><![CDATA[Google Cloud]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://geko2.factoryfy.com/?p=2388</guid>

					<description><![CDATA[<p>Introducción Es muy probable que tengas un clúster de GKE en la versión v1.15 y durante varios meses no hayas sufrido problemas cuando, de repente, los logs han dejado de recibirse. Estás usando el sistema de logging que provee el sistema por defecto, por lo que compruebas la página de status de GCP pero todo [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/gcp-gke-nuevo-sistema-de-logging/">GCP/GKE &#8211; Nuevo sistema de logging</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introducción</h2>
<p>Es muy probable que tengas un clúster de <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/kubernetes-engine-overview">GKE</a> en la versión v1.15 y durante varios meses no hayas sufrido problemas cuando, de repente, los logs han dejado de recibirse. Estás usando el sistema de logging que provee el sistema por defecto, por lo que compruebas la <a href="https://status.cloud.google.com/">página de status de GCP</a> pero todo está funcionando correctamente. Además sabes que no has modificado nada en el clúster antes de que se detuviese la recepción de logs, pero al mismo tiempo sospechas que tiene que estás causado por algo en tu parte (en nuestro caso nos dimos cuenta de que no estaba sucediendo en otros clústeres que gestionamos).</p>
<p>Si la anterior historia te resulta familiar, continúa leyendo ya que este artículo cubrirá desde cómo detectarlo hasta la solución que hará que los logs del clúster se vuelvan a recibir.</p>
<h2>1. Síntomas</h2>
<ol style="list-style-type: none; color: #3a3a3a; font-weight: 400;">
<li style="list-style-type: none;">
<ol style="list-style-type: none; color: #3a3a3a; font-weight: 400;">
<li>&#8211; El síntoma principal que verás es la repentina y completa ausencia de logs en <a href="https://en.wikipedia.org/wiki/Stackdriver">Stackdriver</a>, los cuales deberían estar recibiéndose -como de costumbre- desde los pods de tu clúster.</li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<ol style="list-style-type: none; color: #3a3a3a; font-weight: 400;">
<li>&#8211; Además del hecho anterior, podrás descubrir que ya no hay agentes de <a href="https://en.wikipedia.org/wiki/Fluentd">Fluentd</a> en tu clúster.
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{">$ kubectl get daemonset -n kube-system | grep -i fluentd

</pre>
</div>
</li>
<li>&#8211; Por otra parte todos los nodos de tu clúster tienen la etiqueta («label») <strong>beta.kubernetes.io/fluentd-ds-ready=true</strong>, la cual es requerida por los agentes de Fluentd para saber en qué nodos deben desplegarse.
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{">$ kubectl get nodes
NAME                           STATUS   ROLES    AGE     VERSION
gke-cluster-node-93c020-7rjq   Ready    none     14h     v1.15.11-gke.15
gke-cluster-node-93c020-9w22   Ready    none     23h     v1.15.11-gke.15
gke-cluster-node-93c020-jdbt   Ready    none     47h     v1.15.11-gke.15
gke-cluster-node-93c020-jvcl   Ready    none     3h17m   v1.15.11-gke.15

$ kubectl describe node gke-cluster-node-93c020-7rjq | grep -i fluentd-ds-ready
       beta.kubernetes.io/fluentd-ds-ready=true

$ # Haz lo mismo para los nodos restantes para asegurar que todos ellos están adecuadamente etiquetados</pre>
</div>
</li>
<li>&#8211; Tu clúster de GKE está actualmente en la versión v1.15 o superior.</li>
</ol>
<h2>2. Diagnóstico</h2>
<p>Lo que está sucediendo es que Google está descatalogando a marchas forzadas el antiguo sistema de monitorización/logging. El nuevo sistema que lo reemplaza se llama <a href="https://cloud.google.com/stackdriver/docs/solutions/gke">Cloud Operations for GKE</a> que (para nuestro caso) hace básicamente lo mismo. Una vez dicho eso, cabe mencionar que hay algunas diferencias que deberás tener en cuenta cuando realices búsquedas (como por ejemplo cambios en los nombres de las métricas), y que todas ellas las encontrarás en la <a href="https://cloud.google.com/stackdriver/docs/solutions/gke/migration#what-is-changing">guía de migración</a>.</p>
<h2>3. Tratamiento</h2>
<h3>Etiquetar los nodos del clúster</h3>
<p>Si te encontraste en pasos previos que uno o varios de los nodos de tu clúster no están etiquetados, ¡hazlo ahora!</p>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{">$ kubectl label node $NODE_NAME beta.kubernetes.io/fluentd-ds-ready=true</pre>
</div>
<h3>Obtén el nombre de tu clúster</h3>
<p>Lista los clústeres disponibles.</p>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{">$ gcloud container clusters list
NAME        LOCATION        MASTER_VERSION  MASTER_IP    MACHINE_TYPE   NODE_VERSION    NUM_NODES  STATUS
my-cluster  europe-east1-a  1.15.12-gke.2   34.35.36.37  n1-standard-2  1.15.11-gke.15  4          RUNNING
</pre>
</div>
<h3>Deshabilita el servicio de logging para tu clúster</h3>
<p>Actualiza la configuración de tu clúster para establecer el servicio de logging al valor <em>none.</em></p>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{">$ gcloud container clusters update my-cluster --logging-service none</pre>
</div>
<h3>Habilita de nuevo el servicio de logging para tu clúster</h3>
<p>Actualiza la configuración de tu clúster para volver a establecer el servicio de logging al que hay por defecto.</p>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{">$ gcloud container clusters update my-cluster --logging-service logging.googleapis.com</pre>
</div>
<p><strong>ATENCIÓN:</strong> Obtendrás un mensaje de error informándote que no es posible habilitarlo debido a la descatalogación. Esta es la forma por la que finalmente nos dimos cuenta dónde estaba el problema. Simplemente sigue adelante, vas en la dirección correcta.</p>
<h3>Verifica que el estado de la migración es el esperado</h3>
<p>Abre la <a href="https://console.cloud.google.com/monitoring">sección de monitorización (monitoring) de interfaz web de GCP</a> y dirígete a la sub-sección de configuración (Settings). Encontrarás una pestaña llamada «Kubernetes Migration Status» que debería verse como a continuación.</p>
<p><img fetchpriority="high" decoding="async" class="wp-image-2435 size-full alignnone" src="https://geko2.factoryfy.com/wp-content/uploads/kubernetes-migration-dashboard.png" alt="" width="871" height="554" /></p>
<h3>Habilitar completamente el servicio de loggin y monitorización para tu clúster</h3>
<p>Abre la <a href="https://console.cloud.google.com/kubernetes/list">lista de clústeres de GKE</a> haz clic en el nombre del clúster donde quieres configurar el nuevo sistema de logging. Una vez veas la configuración del clúster, haz clic en el botón EDITAR como se muestra a continuación.</p>
<p><img decoding="async" class="size-full wp-image-2437 alignnone" src="https://geko2.factoryfy.com/wp-content/uploads/edit-cluster.png" alt="" width="731" height="213" /></p>
<p>Desliza hacia abajo hasta encontrar el parámetro <span class="p6n-form-label"><span class="p6n-form-label-transclude"><strong>Kubernetes Engine Monitoring</strong> y, haciendo clic en el desplegable, selecciona la opción <strong>Almacenamiento de registros y supervisión del sistema y las cargas de trabajo</strong> (<strong>System and workload logging and monitoring)</strong>.</span></span></p>
<p><img decoding="async" class="alignnone size-full wp-image-2439" src="https://geko2.factoryfy.com/wp-content/uploads/monitoring-dropdown.png" alt="" width="463" height="131" /></p>
<p><strong>IMPORTANTE: </strong>No olvides guardas los cambios usando el botón que hay al final.</p>
<h5>Y ya está! Tu clúster volverá a recibir de nuevo los logs!</h5>
<p>&nbsp;</p>
<h2>Conclusión</h2>
<p>Como probablemente ya sabrás Google Cloud Platform está todavía en fase beta, por lo que habitualmente encontrarás algunos cambios que harán que fallen tus sistemas en funcionamiento. Tienes dos opciones en este punto: Por un lado puedes mantenerte actualizado acerca de todos los cambios y descatalogaciones futuras. Por otro, puedes limitarte a ir arreglar las cosas según vayan surgiendo, pero ten en cuenta que siempre estarás luchando contra los problemas a ciegas.</p>
<p>Hay una tercera opción (que podría ser la primera), que consiste en consultar regularmente el <a href="https://geko.cloud/es/blog/">blog de Geko</a> y verificar si ya nos hemos tratado con el problema que te estás encontrando. El equipo de Geko siempre estará contento de verte aquí <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href="https://geko.cloud/es/contacto/" target="_blank" rel="noopener noreferrer">Contáctanos para más información!</a></p>
<p>La entrada <a href="https://geko.cloud/es/gcp-gke-nuevo-sistema-de-logging/">GCP/GKE &#8211; Nuevo sistema de logging</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/gcp-gke-nuevo-sistema-de-logging/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Actualización del módulo Terraform en los clústeres públicos de GKE</title>
		<link>https://geko.cloud/es/actualizacion-modulo-terraform-clusteres-publicos-gke/</link>
					<comments>https://geko.cloud/es/actualizacion-modulo-terraform-clusteres-publicos-gke/#respond</comments>
		
		<dc:creator><![CDATA[Geko Cloud]]></dc:creator>
		<pubDate>Wed, 13 May 2020 06:24:40 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[GKE]]></category>
		<category><![CDATA[Google Cloud]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">https://geko2.factoryfy.com/?p=1831</guid>

					<description><![CDATA[<p>Introducción De vez en cuando, Google introduce nuevas características y cambios que a veces también obligan a los módulos de Terraform a actualizarse. En Geko, estábamos usando el módulo GKE para la implementación y administración de clústeres públicos en la versión 5.x. Hace unos días, cuando planeamos actualizar algunos parámetros, descubrimos que Google había eliminado [&#8230;]</p>
<p>La entrada <a href="https://geko.cloud/es/actualizacion-modulo-terraform-clusteres-publicos-gke/">Actualización del módulo Terraform en los clústeres públicos de GKE</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Introducción</h3>
<p>De vez en cuando, Google introduce nuevas características y cambios que a veces también obligan a los <a href="https://www.terraform.io/docs/configuration/modules.html">módulos de Terraform</a> a actualizarse. En <strong><a href="http://geko.cloud/es">Geko</a></strong>, estábamos usando el módulo <a href="https://registry.terraform.io/modules/terraform-google-modules/kubernetes-engine/google/5.1.1/submodules/beta-public-cluster">GKE para la implementación y administración de clústeres públicos en la versión 5.x</a>. Hace unos días, cuando planeamos actualizar algunos parámetros, descubrimos que Google había eliminado la compatibilidad con el panel de control de Kubernetes. Estaba completamente en desuso y el módulo estaba fallando debido a ello, por lo que nos vimos obligados a actualizar el módulo para cumplir con las nuevas condiciones. Hubo hasta 3 actualizaciones de versiones principales disponibles, por lo que decidimos probarlo y usar la última. Sin embargo, no era una solución independiente, ya que requería gestionar las incoherencias del estado de Terraform.</p>
<p>El objetivo de este laboratorio es aprender cómo actualizar el módulo oficial Terraform destinado a implementar y administrar un clúster GKE público. Nos ocuparemos especialmente de los cambios de ruptura del módulo (<a href="https://registry.terraform.io/modules/terraform-google-modules/kubernetes-engine/google/8.1.0/submodules/beta-public-cluster">kubernetes-engine.beta-public-cluster</a>), y lograremos obtener el estado consistente que teníamos antes de la falla que precedió a la actualización.</p>
<p><strong>Tiempo estimado para terminar este laboratorio:</strong> ~ 20 minutos</p>
<h3>1. Eliminar los recursos anteriores</h3>
<p><strong>¡Se recomienda encarecidamente realizar una copia de seguridad de archivos tfstate antes de continuar!</strong></p>
<p>Es especialmente importante eliminar todos los recursos conflictivos del tfstate de Terraform ya que están vinculados entre ellos como dependencias. El objetivo aquí es eliminar cualquier enlace obsoleto antes de importarlo nuevamente desde la «imagen» actual que ya se ha desplegado.</p>
<p>Los componentes principales en un clúster de Kubernetes son las redes (y subredes), el grupo de nodos y el clúster en sí. Centrémonos en ellos.</p>
<div class="wp-block-codemirror-blocks code-block">
<pre class="CodeMirror" data-setting="{">terraform state rm module.gke.google_container_cluster.primary
terraform state rm module.gke.google_container_node_pool.pools[0]
terraform state rm module.vpc.google_compute_network.network
terraform state rm module.vpc.google_compute_subnetwork.subnetwork[0]
terraform state rm module.vpc.google_compute_subnetwork.subnetwork[1]</pre>
</div>
<h3>2. Actualizar versiones</h3>
<p>Una vez eliminados los estados anteriores, el siguiente paso es configurar la última versión los módulos requeridos. Para el módulo GKE, la última versión disponible a fecha de hoy es 8.1.0, pero se permite aplicar automáticamente actualizaciones menores («~&gt;»).</p>
<h5>Actualizar el módulo clúster GKE</h5>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{"> module "gke" {
   source  = "terraform-google-modules/kubernetes-engine/google//modules/beta-public-cluster"
-  version = "~&gt; 5.0"
+  version = "~&gt; 8.1"
</pre>
</div>
<h5>Actualizar el módulo VPC</h5>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{"> module "vpc" {
-  source  = "github.com/terraform-google-modules/terraform-google-network?ref=v1.1.0"
+  source  = "github.com/terraform-google-modules/terraform-google-network?ref=v2.3.0"</pre>
</div>
<h5>Comprobar los nuevos recursos</h5>
<p>Para saber si los nuevos recursos han experimentado un cambio de nombre (debido a la actualización de los módulos), se recomienda encarecidamente lanzar un <a href="https://www.terraform.io/docs/commands/plan.html">plan de Terraform.</a></p>
<p>En este caso, se ha encontrado que la jerarquía interna de algunos módulos y también los índices de la lista han cambiado.</p>
<div class="wp-block-codemirror-blocks code-block">
<pre class="CodeMirror" data-setting="{">  module.gke.google_container_cluster.primary
  
<b>-</b> module.gke.google_container_node_pool.pools[0]
<b>+</b> module.gke.google_container_node_pool.pools["default-node-pool"]

  module.vpc.google_compute_network.network
  
<b>-</b> module.vpc.google_compute_subnetwork.subnetwork[0]
<b>+</b> module.vpc.module.subnets.google_compute_subnetwork.subnetwork["southamerica-east1/my-cluster-public"]

<b>-</b> module.vpc.google_compute_subnetwork.subnetwork[1]
<b>+</b> module.vpc.module.subnets.google_compute_subnetwork.subnetwork["southamerica-east1/my-cluster-private"]</pre>
</div>
<h3>3. Importar los nuevos recursos</h3>
<p>Ten en cuenta que la zona/región depende del tipo de clúster. Si es de zona, debe usar la zona maestra (por ejemplo, southamerica-east1-a). Por otro lado, si se trata de un clúster regional, debe usar la región (por ejemplo, southamerica-east1). El siguiente ejemplo supone un clúster regional ubicado en southamerica-east1, en el proyecto «my-project» y con el nombre de clúster «my-cluster». Los nombres de red se configuraron de acuerdo con el nombre del clúster, simplemente agregando los sufijos «private» y «public» a las subredes para diferenciarlos adecuadamente.</p>
<p><strong>Ten en cuenta también la nueva jerarquía de módulos e indexación.</strong></p>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{"># Global vars
REGION="southamerica-east1"
PROJECT="my-project"
CLUSTER="my-cluster"

# Cluster
CLUSTER_LOCAL="module.gke.google_container_cluster.primary"
CLUSTER_REMOTE="${PROJECT}/${REGION}/${CLUSTER}"
terraform import $CLUSTER_LOCAL $CLUSTER_REMOTE

# Node pool
POOL_LOCAL="module.gke.google_container_node_pool.pools["default-node-pool"]"
POOL_REMOTE="${CLUSTER_REMOTE}/default-node-pool"
terraform import $POOL_LOCAL $POOL_REMOTE

# Subnetworks
BASE_SUBNET_LOCAL="module.vpc.module.subnets.google_compute_subnetwork.subnetwork"

## Public
PUBLIC_SUBNET_LOCAL="${BASE_SUBNET_LOCAL}["${REGION}/${CLUSTER}-public"]"
PUBLIC_SUBNET_REMOTE="${CLUSTER_REMOTE}-public"
terraform import $PUBLIC_SUBNET_LOCAL $PUBLIC_SUBNET_REMOTE

## Private
PRIVATE_SUBNET_LOCAL="${BASE_SUBNET_LOCAL}["${REGION}/${CLUSTER}-private"]"
PRIVATE_SUBNET_REMOTE="${CLUSTER_REMOTE}-private"
terraform import $PRIVATE_SUBNET_LOCAL $PRIVATE_SUBNET_REMOTE

# Network
NETWORK_LOCAL="module.vpc.module.vpc.google_compute_network.network"
NETWORK_REMOTE="${PROJECT}/${CLUSTER}"
terraform import $NETWORK_LOCAL $NETWORK_REMOTE</pre>
</div>
<h3> 4. Actualizar parámetros</h3>
<p>Es muy probable que encuentres que, después de lanzar un plan de Terraform, el recurso <em><strong>google_container_cluster</strong></em> todavía necesite actualizarse debido a un cambio en el parámetro de subred. Las nuevas claves de subred han hecho que los índices cambien su orden. Simplemente edita el módulo GKE para reemplazar el parámetro <em>subnetwork </em>como se muestra a continuación.</p>
<div class="wp-block-codemirror-blocks code-block ">
<pre class="CodeMirror" data-setting="{"><b>-</b> subnetwork = module.vpc.subnets_names[<b>0</b>]
<b>+</b> subnetwork = module.vpc.subnets_names[<b>1</b>]</pre>
</div>
<h3>Conclusión</h3>
<p>Como habrás visto anteriormente, a veces, al depender de terceros, puede suceder que se introduzca un cambio importante y tengas problemas para recuperar el servicio nuevamente. Además de esto, la solución podría introducir daños colaterales que requerirán subsoluciones adicionales. En este caso particular con respecto a Terraform, lidiar con estados inconsistentes no es realmente común ni recomendado, pero es el único método que tiene disponible para resolverlos en su conjunto de herramientas.</p>
<hr />
<p>Espero que hayas disfrutado de este post y te animo a que <a href="https://geko.cloud/es/blog/">revises nuestro blog para leer otrosposts</a> que puedan ser de tu interés. <a href="https://geko.cloud/es/contacto/">No dudes en contactarnos</a> si deseas que te ayudemos en tus proyectos.</p>
<p>¡Nos vemos en la próxima entrada!</p>
<p>La entrada <a href="https://geko.cloud/es/actualizacion-modulo-terraform-clusteres-publicos-gke/">Actualización del módulo Terraform en los clústeres públicos de GKE</a> se publicó primero en <a href="https://geko.cloud/es/">Geko Cloud</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geko.cloud/es/actualizacion-modulo-terraform-clusteres-publicos-gke/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
