Loading AI tools
software para gerenciar contêineres em um cluster de servidor Da Wikipédia, a enciclopédia livre
Kubernetes (comumente estilizado como K8s) é um sistema de orquestração de contêineres open-source que automatiza a implantação, o dimensionamento e a gestão de aplicações em contêineres.[3][4] Ele foi originalmente projetado pelo Google e agora é mantido pela Cloud Native Computing Foundation.[5] Ele funciona com uma variedade de ferramentas de conteinerização, incluindo Docker.
Kubernetes | |
---|---|
Desenvolvedor | Kubernetes |
Plataforma | Multiplataforma |
Modelo do desenvolvimento | Software livre |
Lançamento | 7 junho 2014[1] |
Versão estável | 1.31.0[2] (13 agosto 2024) |
Idioma(s) | Inglês |
Escrito em | Go |
Sistema operacional | Linux |
Gênero(s) | Orquestração de contêiners |
Licença | Apache License 2.0 |
Estado do desenvolvimento | Ativo |
Página oficial | kubernetes |
Repositório | https://github.com/kubernetes/kubernetes |
Muitos serviços de nuvem oferecem uma plataforma baseada em Serviço (Paas ou Iaas), onde o kubernetes pode ser implantado sob serviço gerenciado. Muitos fornecedores também provém sua própria marca de distribuição de kubernetes. [6]
Kubernetes (κυβερνήτης, a palavra grega para "timoneiro" ou "piloto") foi fundado por Joe Beda, Brendan Burns e Craig McLuckie,[7] a quem se juntaram rapidamente outros engenheiros da Google, incluindo Brian Grant e Tim Hockin, e foi anunciado pelo Google em meados de 2014.[8] Seu desenvolvimento e design são fortemente influenciadas pelo sistema Google Borg,[9][10] e muitos dos principais contribuintes do projeto trabalharam anteriormente em Borg. O codinome original para Kubernetes dentro do Google era Project Seven, uma referência aos personagens de Star Trek Sete de Nove que é um Borg "amigável".[11] Os sete raios na roda no logotipo do Kubernetes são uma referência ao codinome.
Kubernetes v1.0, foi lançado em 21 de julho de 2015.[12] Juntamente com o lançamento, o Google fez uma parceria com a Linux Foundation para formar a Cloud Native Computing Foundation (CNCF)[13] e ofereceu Kubernetes como uma tecnologia de base.
Em fevereiro de 2016 foi lançado o gerenciador de pacotes Helm.[14]. O Helm é amplamente utilizado, e é parte da CNCF.[15][16]
No Kubernetes o estado do cluster é definido pelo utilizador, sendo função do serviço de orquestração atingir e manter o estado desejado, dentro das limitações impostas pelo utilizador. O Kubernetes pode ser entendido como dividido em dois planos - o plano de controle, que realiza a orquestração global do sistema, e o plano de dados, onde residem os containers.[17][18][19]
Os principais componentes do plano de controle são o etcd, um banco de dados distribuído que armazena as configurações globais do cluster, o API server, um serviço de borda para interação com os demais componentes, além do controller manager e do scheduler, que realizam tarefas administrativas relacionadas à orquestração do cluster.[17][18][19]
O plano de dados pode ser compreendido como um conjunto dos objetos que o constituem, listados abaixo.
Labels (rótulos) são nomes associados a um recurso, como o nome de um pod. Selectors (seletores) são expressões que selecionam recursos baseado em alguma regra, como todos recursos com label igual a determinado valor.[17][18][19]
Um pod é um grupo de containers que compartilham um espaço de rede local. O pod é a unidade de trabalho básica no Kubernetes.[17][18][19]
Os Nodes (nodos) são os servidores físicos ou virtuais onde os pods e seus containers rodam.[17][18][19]
Os namespaces são divisões lógicas dos demais recursos do plano de dados, podendo ser usados para separar, por exemplo, ambiente de testes do de produção.[23][17][18][19]
Os ReplicaSets são um recurso utilizado para definir o número de replicas de um ou mais pods, identificados através de um seletor associado ao ReplicaSet.[17][18][19]
Um Deployment define o estado desejado de Pods e ReplicaSets. No exemplo abaixo, o Deployment define um ReplicaSet com três replicas, para os Pods cujo rótulo seja encontrado através do seletor definido.[17][18][19]
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
Os DaemonSets definem um ou mais pods que devem rodar em todos os nodos, sempre.[17][18][19]
Um Service (serviço) no Kubernetes é uma entidade lógica constituida de um ou mais pods, selecionados através de um seletor. O serviço possui um endereço de IP associado a si, publicado através do serviço de DNS do Kubernetes, permitindo assim a sua descoberta por demais serviços do cluster ou externos a ele. Além disso, o Kubernetes realiza o balanceamento das conexões recebidas entre os pods que constituem esse serviço. No exemplo abaixo um serviço é definido, expondo uma porta para os pods selecionados através do seletor.[17][18][19]
apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app.kubernetes.io/name: MyApp ports: - protocol: TCP port: 80 targetPort: 9376
O armazenamento dos containers é efêmero, isto é, ele deixa de existir quando os containers param de rodar. Os Volumes no Kubernetes são unidades lógicas de armazenamento que podem ser efêmeras ou persistentes, e que são acessíveis por todos containers de um pod.[17][18][19]
ConfigMaps são objetos lógicos que armazenam informação no formato chave-valor, informações essas que podem ser acessadas através de variáveis de ambientes, arquivos em um volume, ou através de uma API.[17][18][19]
Secrets são como ConfigMaps, mas são feitos para armazenar dados sensíveis como senhas.[17][18][19]
Helm charts são pacotes para o Kubernetes, e Helm é o software que os gerencia. Os pacotes (charts) são nada mais nada menos que arquivos no formato YML dispostos em uma certa estrutura de diretórios, e que descrevem objetos com os descritos nas seções acima, além de um arquivo Chart.yml que descreve o pacote em si. O Helm por sua vez faz a gerência destes pacotes, como controle de versão e empacotamento, interação com o Kubernetes para aplicar os recursos descritos no pacote, entre outros.[24][25]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.