lançamento da plataforma de orquestração de contêineres , permitindo gerenciar como um todo um cluster de contêineres isolados e fornecendo mecanismos para implantação, gerenciamento e escalonamento de aplicações executadas em contêineres. O projeto foi inicialmente criado pela Google, mas posteriormente transferido para uma plataforma independente, supervisionada pela Linux Foundation. A plataforma é posicionada como uma solução universal desenvolvida pela comunidade, não vinculada a sistemas específicos e capaz de operar com quaisquer aplicações em qualquer ambiente de nuvem. O código do Kubernetes é escrito em Go e estão sob a licença Apache 2.0.
fornece funções para implantação e gerenciamento de infraestrutura, como manutenção de banco de dados DNS, balanceamento de carga,
distribuição de contêineres entre os nós do cluster (migração de contêineres com base na mudança de carga e nas necessidades de serviços), verificação de integridade em nível de aplicação, gerenciamento de contas, atualização e escalonamento dinâmico do cluster em funcionamento, sem interrupções. É possível implantar grupos de contêineres realizando operações de atualização e reversão imediatamente para todo o grupo, bem como segmentação lógica do cluster em partes com separação de recursos. Suporte é oferecido para migração dinâmica de aplicações, cujos dados podem ser armazenados em sistemas de armazenamento locais ou em rede.
A versão Kubernetes 1.18 inclui 38 mudanças e melhorias, das quais 15 foram promovidas ao status estável, e 11 ao status beta. 12 novas mudanças foram propostas no status alfa. Ao preparar a nova versão, esforços iguais foram direcionados tanto para aprimorar diversas funcionalidades e estabilizar recursos experimentais, quanto para adicionar novos desenvolvimentos. Principais mudanças:
- Kubectl
- versão alfa do comando "kubectl debug", que simplifica a depuração em pods, por meio da execução de contêineres efêmeros com ferramentas de depuração.
- comando "kubectl diff", que permite visualizar o que mudará no cluster se o manifesto for aplicado.
- todos os geradores do comando "kubectl run", exceto o gerador de um único pod.
- A bandeira «—dry-run», dependendo de seu valor (client, server e none), executa um teste do comando no lado do cliente ou do servidor.
- Código kubectl em um repositório separado. Isso permitiu separar o kubectl de dependências internas do kubernetes e facilitou a importação de código em projetos de terceiros.
- Ingress
- mudança do grupo API para Ingress para networking.v1beta1.
- novos campos:
- pathType, que permite especificar como o caminho na solicitação será comparado
- IngressClassName — substituição da anotação kubernetes.io/ingress.class, que foi declarada obsoleta. Este campo especifica o nome de um objeto IngressClass especial
- o objeto IngressClass, onde se especifica o controlador de ingress, seus parâmetros adicionais e se deve ser usado como padrão
- Service
- o campo AppProtocol, onde se pode indicar qual protocolo o aplicativo utiliza
- para o status beta e habilitado por padrão EndpointSlicesAPI, que é uma substituição mais funcional para os Endpoints comuns.
- Rede
- IPv6 foi traduzido para o status beta.
- Discos permanentes. A seguinte funcionalidade foi declarada estável:
- Configuração do aplicativo
- Nos objetos ConfigMap e Secret novo campo «immutable». Definir o valor do campo como true proíbe a alteração do objeto.
- Agendador
- possibilidade de criar perfis adicionais para kube-scheduler. Se antes era necessário executar planejadores separados adicionais para implementar algoritmos de distribuição não padrão de pods, agora é possível criar conjuntos adicionais de configurações para o planejador padrão e indicar seu nome no mesmo campo do pod «.spec.schedulerName». Status — alfa.
- declarada estável
- Escalabilidade
- a capacidade de especificar no manifesto HPA o grau de agressividade ao mudar o número de pods em execução, ou seja, ao aumentar a carga, iniciar imediatamente N vezes mais instâncias.
- começou a usar
- recebeu status beta. A função inclui alocação NUMA, o que ajuda a evitar degradação de desempenho em sistemas multi-socket.
- Status beta função PodOverhead, permitindo especificar no RuntimeClass uma quantidade adicional de recursos necessária para iniciar o pod.
- suporte a HugePages, a isolação em nível de contêiner foi adicionada no status alfa, bem como o suporte a vários tamanhos de hugepages.
- endpoint para métricas \/metrics\resource\/v1alpha1, em vez disso, é utilizado \/metrics\resource
- API
- remoção da capacidade de usar os grupos de API obsoletos apps\/v1beta1 e extensions\/v1beta1.
- elevado ao status beta2. Essa melhoria transfere a manipulação de objetos do kubectl para o servidor API. Os autores da melhoria afirmam que isso permitirá corrigir muitos erros existentes, que não podem ser corrigidos na situação atual. Também adicionaram a seção ".metadata.managedFields", onde sugerem armazenar um histórico de alterações do objeto, indicando quem, quando e o que exatamente foi alterado.
- como estável o API CertificateSigningRequest.
- Suporte à plataforma Windows.
- Continua a expansão do suporte a Windows node. Versões alfa adicionadas:
- O suporte a Group Managed Service Account foi promovido ao status estável
- Continua a expansão do suporte a Windows node. Versões alfa adicionadas:
Fonte: opennet.ru
