O que há de novo no Kubernetes 1.6?

A versão 1.6 do Kubernetes deve ser lançada oficialmente esta semana. As principais novidades incluem novas capacidades para Daemon Sets, a versão beta do Kubernetes federation, novos recursos de agendamento e novas capacidades de rede. Neste post, faremos um apanhado geral do que há de novo no Kubernetes 1.6.

Atualizações contínuas do DaemonSet

Com o DaemonSets, o usuário especifica os nós que irão executar um determinado conjunto de containers, e o Kubernetes verificará se os nós que satisfazem esses requisitos executarão esses pods. Com Kubernetes 1.6, o usuário agora tem a opção de atualizar os DaemonSets com uma nova imagem ou outras informações. 

Kubernetes Federation

Na medida em que o Kubernetes cresce, aumenta também a probabilidade de situações em que os usuários têm vários clusters grandes para cuidar. O Federation permite criar uma infraestrutura na qual os usuários podem usar, digamos, o cluster mais próximo deles ou aquele que tenha maior capacidade disponível.

Agora em beta, o kubefed “suporta hospedar federation em clusters on-premise, [e] configura automaticamente o kube-dns ao unir clusters e permitir passar argumentos para componentes de federação”.

Melhorias de autenticação e controle de acesso

O Controle de Acesso Baseado em Funções (RBAC), que torna possível definir funções para o plano de controle, nó e componentes do controlador, encontra-se agora na fase beta. Ele também define as funções-padrão para esses componentes. Existem várias mudanças na versão alfa (como usar * para todos os usuários que utilizam system:authenticated ou system:unauthenticated) então sempre é bom verificar as notas de versão e ficar a par dos detalhes.

O Controle de Acesso Baseado em Atributos (ABAC) também foi modificado, com os wild cards padronizados para usuários autenticados. O kube-apiserver e a API de autenticação também passaram por uma série de melhorias.

Agendamento de alterações

O Kubernetes 1.6 também inclui a versão beta de taints and tolerations, e algumas melhorias para esse recurso a partir da versão alfa. O Taints permite dedicar um nó a um tipo particular de pod, semelhante à maneira em que se selecionam flavors no OpenStack. Ao contrário do OpenStack, no entanto, é possível comunicar ao Kubernetes para evitar o agendamento de pods que não são explicitamente permitidos (leia-se: tolerados) para esse nó, mas, se não houver escolha, ele pode seguir em frente. Essa funcionalidade também permite especificar um período de tempo que um mod pode executar neste nó antes de ser “evitado”.

O Container Runtime Interface é agora padrão

Embora seja natural supor que os containers rodando em Kubernetes são containers Docker, isso nem sempre é verdade. O Kubernetes também suporta containers rkt, e na verdade o objetivo é permitir que o Kubernetes orquestre qualquer tempo de execução do container. Até agora, isso tem sido difícil, porque os tempos de execução do container foram codificados no componente kubelet que executa os containers atuais.

Agora, com o Kubernetes 1.6, a versão beta do Docker Container Runtime Interface é ativada por padrão – é possivel desativá-la com –enable-cri=false – e está mais fácil adicionar novos runtimes. A arquitetura antiga sem tempo de execução está obsoleta na versão 1.6 e está agendada para remoção no Kubernetes 1.7.

Melhorias no armazenamento

O Kubernetes 1.6 inclui a versão de disponibilidade geral do StorageClasses, que permite especificar um tipo de recurso de armazenamento para os usuários sem expor os detalhes. (Isso também é semelhante aos flavors no OpenStack.)

Melhorias na rede

Agora há um controle adicional sobre o DNS; o Kubernetes 1.6 permite definir stubDomains, que por sua vez definem os nameservers usados para domínios específicos (como *.mycompany.local), e especificar qual upstreamNameservers o usuário deseja usar, substituindo resolve.conf.

Indo mais a fundo, a Container Network Interface (CNI) agora é integrada com a Container Runtime Interface (CRI) por padrão, e o plugin foi validado com a combinação.

Outras mudanças

O Kubernetes 1.6 inclui um grande número de mudanças e melhorias, algumas das quais só serão de interesse para os operadores, em oposição aos usuários finais, mas todas importantes. Algumas dessas mudanças incluem:

  • Por padrão, o etcd v3 é habilitado, permitindo clusters de até 5000 nós
  • A capacidade de saber através da API se um deploy está bloqueado
  • Login facilitado
  • Melhorias ao Horizontal Pod Autoscaler
  • A capacidade de adicionar recursos de terceiros e servidores de extensão de API com o comando edit
  • Novos comandos para criar funções, bem como determinar se o usuário pode executar uma ação
  • Novos campos adicionados para descrever a saída
  • Melhorias no kubeadm

A lista completa de melhorias no Kubernetes 1.6 pode ser encontrada aqui

Fonte: Mirantis.com

21