<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Omer Kushmaro - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Omer Kushmaro - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/pt/search-labs/author/omer-kushmaro</link>
    </image>
    <link>https://www.elastic.co/pt/search-labs/author/omer-kushmaro</link>
    <atom:link href="https://www.elastic.co/pt/search-labs/rss/author/omer-kushmaro.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[pt]]></language>
    <lastBuildDate>Fri, 18 Sep 2026 21:23:14 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Elastic Cloud on Kubernetes, simplificado: reconhecimento de zona, reinicializações e mTLS]]></title>
    <description><![CDATA[O ECK 3.4 reduz o HA com reconhecimento de zonas de 40 linhas de YAML para um campo, adiciona reinicializações contínuas declarativas por meio de anotações e conecta os mTLS do Kibana-Elasticsearch automaticamente.]]></description>
    <content:encoded><![CDATA[<p>O ECK 3.4 torna o Elastic Stack no Kubernetes mais simples de operar. O HA com reconhecimento de zonas, as reinicializações contínuas seguras e o mTLS do Kibana↔Elasticsearch passam a ser configurações de uma única linha no manifesto.</p><p>Se você opera <a href="https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s">Elastic Cloud no Kubernetes</a> (ECK), esta versão tem como objetivo reduzir o atrito nas tarefas que você realiza diariamente.</p><h2>Mais fácil de operar, mais fácil de entender</h2><p>O ECK 3.4 é uma versão focada em reduzir a complexidade do que você precisa considerar ao executar o Elastic Stack no Kubernetes. Cada uma das principais mudanças pega uma tarefa com várias etapas e a transforma em uma única configuração declarativa:</p><ul><li><p><strong>Reconhecimento simplificado de zonas.</strong> Informar ao ECK que um cluster deve ser distribuído pelas zonas de disponibilidade agora é um único campo no NodeSet. O operador gerencia a topologia, o agendamento e a configuração de reconhecimento do lado do Elasticsearch em seu nome. Seus manifestos refletem a intenção da configuração, e não como ela foi implementada.</p></li><li><p><strong>Reinicie um cluster do mesmo jeito que faz todo o resto.</strong> Disparar um reinício contínuo agora é uma anotação no recurso Elasticsearch. É declarativo, se encaixa no GitOps e deixa um rastro de auditoria. Nada de forçar a edição de um campo não relacionado para iniciar uma implantação.</p></li><li><p><strong>O mTLS é configurado automaticamente pelo operador.</strong> A conexão manual de TLS mútuo entre o Kibana e o Elasticsearch exige o gerenciamento manual de CAs, certificados de cliente por componente, montagens, rotação e configurações em ambas as extremidades. O ECK 3.4 cuida de tudo isso: ative um sinalizador no Elasticsearch, aponte o Kibana para ele e o operador gerencia o restante.</p></li></ul><p>Esta versão tem o objetivo de tornar as operações diárias do ECK monótonas, no melhor sentido: menos campos para lembrar, menos etapas secundárias para manter a sincronia e manifestos mais simples de entender.</p><h2>Reconhecimento simplificado de zonas</h2><p>Torne um cluster Elasticsearch altamente disponível entre as zonas de disponibilidade definindo um campo no NodeSet. O ECK 3.4 cuida da dispersão da topologia, do escalonamento dos pods e da configuração de reconhecimento do lado do Elasticsearch para você.</p><p><a href="https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s/advanced-elasticsearch-node-scheduling#k8s-availability-zone-awareness-example">Antes</a>, era necessário conectar tudo isso manualmente a quatro objetos separados: uma anotação no recurso Elasticsearch para rótulos de Node descendentes, atributos de reconhecimento na configuração do NodeSet, uma variável <code>fieldRef</code> .env no modelo do pod para revelar a zona e um bloco <code>topologySpreadConstraints</code> correspondente mais uma regra <code>nodeAffinity</code> fixando o cluster em zonas específicas. Aproximadamente quarenta linhas de YAML, fáceis de configurar incorretamente.</p><p>No ECK 3.4, o mesmo cluster com reconhecimento de zonas ocupa quatro linhas:</p>apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: my-cluster
spec:
  version: 9.4.0
  nodeSets:
  - name: default
    count: 3
    zoneAwareness: {}<p>Para fixar um conjunto específico de zonas, nomeie-as, e o ECK adicionará as regras de afinidade de Node correspondentes necessárias:</p>spec:
  nodeSets:
  - name: hot
    count: 3
    zoneAwareness:
      zones: ["us-east-1a", "us-east-1b", "us-east-1c"]<p>Se você precisar personalizar <code>maxSkew</code> ou <code>whenUnsatisfiable</code>, fornecer uma restrição de dispersão de topologia correspondente com o mesmo <code>topologyKey</code> em <code>podTemplate</code> ainda será a melhor opção. Sua substituição personalizada continua sendo aplicada.</p><p>Uma observação para atualizações: ativar <code>zoneAwareness</code> em um NodeSet existente altera o modelo do pod StatefulSet (novas restrições de espalhamento de topologia, variável de ambiente <code>ZONE</code>, afinidade de nó, <code>node.attr.zone</code>), o que desencadeia uma reinicialização contínua única do NodeSet afetado. Planeje adequadamente.</p><p>Para saber mais sobre gestão simplificada de zonas, você pode <a href="https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s/advanced-elasticsearch-node-scheduling">ler esta página no Elastic Docs</a>.</p><h2>Reinicializações contínuas declarativas</h2><p>Reiniciar um cluster do Elasticsearch sem alterar sua especificação agora é um fluxo de trabalho de primeira classe na versão 3.4. Duas novas anotações no recurso Elasticsearch fazem o trabalho:</p><ul><li><p><code>eck.k8s.elastic.co/restart-trigger</code>: defina ou altere esse valor (um carimbo de tempo é a escolha convencional) para iniciar um reinício contínuo. Mudar o valor aciona outro reinício depois; remover a anotação não o faz.</p></li><li><p><code>eck.k8s.elastic.co/restart-allocation-delay</code>: string de duração opcional (por exemplo, "20m") passado para a <a href="https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-shutdown-put-node">API de desligamento de Node do Elasticsearch</a> como o atraso de alocação durante a reinicialização, para que você possa adiar o rebalanceamento enquanto um pod é recriado.</p></li></ul>apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: my-cluster
  annotations:
    eck.k8s.elastic.co/restart-trigger: "2026-04-30T10:00:00Z"
    eck.k8s.elastic.co/restart-allocation-delay: "20m"
spec:
  version: 9.4.0<p>Por baixo, o ECK propaga o valor do gatilho para anotações de pod, o que altera o hash do template StatefulSet e alimenta cada pod pelo caminho existente de atualização contínua (API de desligamento de Node, predicados, exclusão um pod por vez). Não há um novo mecanismo de reinício para aprender, e as mensagens de status e a observabilidade que você já tem nas atualizações contínuas continuam sendo mantidas.</p><p>Para usuários do GitOps, isso significa que um pipeline Flux/ArgoCD pode solicitar uma reinicialização corrigindo uma anotação: sem desvio de especificação, sem ruído no diff, sem edição forçada em um campo não relacionado.</p><h2>mTLS gerenciado para Kibana ↔ Elasticsearch</h2><p>A orquestração <a href="https://www.elastic.co/docs/deploy-manage/security/set-up-basic-security-plus-https">mútua de TLS</a> entre Kibana e Elasticsearch chega com esse lançamento. O CRD Elasticsearch aceita um único campo novo, <code>spec.http.tls.client.authentication: true</code>, que orienta o cluster a exigir certificados de cliente em sua interface HTTPS. O ECK faz o restante: cria uma cadeia de confiança a partir de qualquer segredo rotulado <code>eck.k8s.elastic.co/client-certificate: true</code>, monta o pacote nos pods do Elasticsearch, define <code>xpack.security.http.ssl.client_authentication: required</code>, e emite um certificado cliente do lado do operador para que ele possa continuar se comunicando com o cluster durante toda a implantação.</p><p>Isso torna habilitar e configurar mTLS para a pilha (somente Elasticsearch e Kibana, nesta versão) uma tarefa muito mais simples.</p><p>Habilitando o mTLS no Elasticsearch:</p>apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: secure-cluster
spec:
  version: 9.4.0
  http:
    tls:
      client:
        authentication: true # &lt;---- This is all you need
  nodeSets:
  - name: default
    count: 3<p>No lado do cliente, o controlador de associação do Kibana agora detecta a anotação <code>client-authentication-required</code> no Elasticsearch referenciado e gera automaticamente um certificado de cliente para o Kibana — sem necessidade de configuração extra. Se quiser usar seu próprio certificado (cert-manager, um PKI interno), aponte para o segredo que você já providenciou:</p>apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: kibana
spec:
  version: 9.4.0
  count: 1
  elasticsearchRef:
    name: secure-cluster
    clientCertificateSecretName: my-custom-client-cert<p>O ECK faz a rotação do certificado, monta o segredo no pod do Kibana e configura <code>elasticsearch.ssl.certificate</code> e <code>elasticsearch.ssl.key</code>. A limpeza dos recursos mTLS é adiada até que todos os pods tenham concluído a atualização contínua, então a conectividade se mantém durante toda a transição.</p><p>O Kibana é o primeiro componente do Stack a receber esse tratamento de primeira classe na versão 3.4. O suporte para APM Server, Beats, Fleet Server, Elastic Agent, Logstash, Maps e Enterprise Search chegará em breve. Entretanto, uma <a href="https://github.com/elastic/cloud-on-k8s/pull/9124">nova receita</a> orienta o usuário no processo de configuração manual do mTLS para esses componentes usando o cert-manager.</p><h2>Outras melhorias notáveis</h2><p>Esta versão inclui outros aprimoramentos que merecem destaque. Aqui está uma lista com os pull requests relacionados.</p><ul><li><p><strong>Go FIPS 140-3 nativo no operador habilitado para FIPS (imagem separada).</strong> A imagem ECK com FIPS (<code>docker.elastic.co/eck/eck-operator-fips:3.4.0</code>, além de uma variante UBI <code>eck-operator-ubi-fips:3.4.0</code>) agora inclui suporte nativo ao Go FIPS 140-3, fixada no módulo <code>GOFIPS140=v1.0.0</code> certificado e aplicada em tempo de execução. A imagem padrão <code>eck-operator</code> não foi alterada. Para o Elasticsearch 9.4.0 ou posterior, o operador também gera e monta automaticamente uma senha de keystore compatível com FIPS quando <code>xpack.security.fips_mode.enabled: true</code> é definido (<a href="https://github.com/elastic/cloud-on-k8s/pull/9263">#9263</a>, <a href="https://github.com/elastic/cloud-on-k8s/pull/9287">#9287</a>).</p></li><li><p><strong>Correções de confiabilidade que valem a pena mencionar:</strong></p><ul><li><p>Agora, as CAs obsoletas na cadeia de certificados são detectadas e acionam a reemissão <a href="https://github.com/elastic/cloud-on-k8s/pull/9197">(#9197</a>).</p></li><li><p>As falhas na geração de segredos de CA remoto não bloqueiam o processo <a href="https://github.com/elastic/cloud-on-k8s/pull/9271">(#9271</a>).</p></li><li><p>O rótulo do seletor de namespace do NetworkPolicy foi corrigido para configurações de multilocação flexível (<a href="https://github.com/elastic/cloud-on-k8s/pull/9153">#9153</a>).</p></li><li><p>O controlador Elasticsearch pula seu PVC padrão se já existir um volume com o mesmo nome (<a href="https://github.com/elastic/cloud-on-k8s/pull/9199">#9199</a>).</p></li><li><p>O reconciliador do DaemonSet lida com o cache obsoleto da mesma forma que o reconciliador da implantação (<a href="https://github.com/elastic/cloud-on-k8s/pull/9256">#9256</a>).</p></li></ul></li></ul><h2>Para começar</h2><p>Se você já estiver usando o ECK, atualize para a versão 3.4.0. com o Helm:</p>helm upgrade elastic-operator elastic/eck-operator -n elastic-system<p>Ou aplique diretamente o manifesto mais recente do operador:</p>kubectl apply -f https://download.elastic.co/downloads/eck/3.4.0/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/3.4.0/operator.yaml<p>Se você é novo no ECK, comece com o <a href="https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s#eck-quickstart">guia de início rápido</a> para obter um cluster do Elasticsearch em execução no Kubernetes em minutos.</p><p>Para ver a lista completa de mudanças, consulte as <a href="https://github.com/elastic/cloud-on-k8s/releases/tag/v3.4.0">notas de lançamento do ECK 3.4.0 no GitHub</a>.</p><p>Para começar a usar o Elastic Cloud hoje, faça login no <a href="https://cloud.elastic.co/">console do Elastic Cloud</a> ou inscreva-se para uma <a href="https://cloud.elastic.co/registration">avaliação gratuita</a>.</p><h2>Perguntas frequentes</h2><p><strong>Como faço para tornar um cluster Elasticsearch ciente de zonas no ECK sem escrever restrições de dispersão de topologia?</strong></p><p>Defina <code>spec.nodeSets[].zoneAwareness: {}</code> no recurso Elasticsearch. ECK deriva a topologia, associa <code>node.attr.zone</code>, estabelece <code>maxSkew=1</code> restrições de espalhamento topológico e injeta os rótulos descendentes para você. Forneça <code>zones: [...]</code> se você quiser fixar em um conjunto específico de zonas de disponibilidade. Ativar isso em um NodeSet existente desencadeia uma reinicialização contínua única.</p><p><strong>Posso acionar uma reinicialização contínua de um cluster Elasticsearch no Kubernetes sem editar a especificação?</strong></p><p>Sim. O ECK 3.4 introduz duas anotações no recurso Elasticsearch: <code>eck.k8s.elastic.co/restart-trigger</code> (definir ou alterar o valor, por exemplo, um carimbo de data, para iniciar um reinício contínuo) e <code>eck.k8s.elastic.co/restart-allocation-delay</code> (string opcional de duração passada para a API de desligamento do Node Elasticsearch). Remover a anotação do gatilho não inicia um novo reinício.</p><p><strong>Como habilitar o TLS mútuo entre Kibana e Elasticsearch no Kubernetes?</strong></p><p>Com ECK 3.4, defina <code>spec.http.tls.client.authentication: true</code> no CRD Elasticsearch e faça referência a partir de Kibana via <code>elasticsearchRef</code>. O ECK gera automaticamente um certificado de cliente para o Kibana, constrói uma cadeia de confiança a partir de qualquer segredo rotulado <code>eck.k8s.elastic.co/client-certificate: true</code>, e configura <code>xpack.security.http.ssl.client_authentication: required</code> para você. mTLS para Kibana ↔ Elasticsearch é uma prévia técnica em 3.4.</p><p><strong>O suporte ao ECK 3.4 mTLS cobre todos os componentes do Stack, como Beats e Fleet?</strong></p><p>Ainda não. O Kibana é o primeiro componente da Stack a receber suporte de primeira classe a mTLS na versão 3.4 — o operador gera automaticamente seu certificado de cliente. O suporte para APM Server, Beats, Fleet Server, Elastic Agent, Logstash, Maps e Enterprise Search chegará na próxima versão. Uma nova receita explica o mTLS manual para esses componentes usando o cert-manager enquanto isso.</p><p><strong>O ECK é compatível com FIPS 140-3?</strong></p><p>Sim, em uma imagem de operador separada. O ECK 3.4 publica uma versão FIPS (<code>docker.elastic.co/eck/eck-operator-fips:3.4.0</code>, além de uma variante UBI) com suporte nativo ao Go FIPS 140-3. A imagem padrão <code>eck-operator</code> não foi alterada. Para o Elasticsearch 9.4.0 ou posterior, o ECK também gera e monta automaticamente uma senha de keystore compatível com FIPS quando <code>xpack.security.fips_mode.enabled: true</code> é definida.</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/elasticsearch-kubernetes-zone-awareness-restarts-mtls</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/elasticsearch-kubernetes-zone-awareness-restarts-mtls</guid>
    <category><![CDATA[Kubernetes]]></category>
    <dc:creator><![CDATA[Omer Kushmaro]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltef5f197adb2b717e/6a17e85b4b055d1a85432209/d8a9512a3839164368d348637803c0d486cb1cb2-720x420.jpg" length="0" type="image/jpeg"/>
    <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>