Project Calico é um software de rede open source que fornece conectividade e segurança de rede para containers. Ele usa um modelo de rede simplificado baseado em tecnologias de roteamento como BGP. Cada nó de rede é responsável por seu próprio tráfego de rede e regras de firewall, enquanto um banco de dados centralizado armazena as configurações de rede. Project Calico também fornece capacidades avançadas de microsegmentação de rede através de políticas de rede do Kubernetes.
Palestra apresentada no QCON SP 2018 sobre como estender o Kubernetes para além de um orquestrador de containers, apresentando todos os componentes e seu uso além do tradicional
Palestra apresentada no QCON SP 2018 sobre como estender o Kubernetes para além de um orquestrador de containers, apresentando todos os componentes e seu uso além do tradicional
Kubernetes no Governo Federal - Kubernetes Meetup #3Ricardo Katz
Apresentação sobre caso de uso do Kubernetes no Governo Federal do Brasil (SERPRO), orientado à metodologia abordada para a implantação segura da tecnologia como base para a Plataforma como Serviço
Workshop de desenvolvimento para blockchain EthereumOriginalMy.com
Este workshop utiliza o Mercado Pokémon como plataforma de exemplo, utilizando blockchain para:
- Criar uma criptomoeda
- Criar ativos digitais únicos e exclusivos
- Apresentar uma plataforma de trade e negociação de ativos
Além disso é possível criar uma aplicação totalmente standalone, distribuída no P2P, se conectando diretamente no blockchain para utilizá-lo como infraestrutura distribuída e descentralizada.
O workshop também apresenta 15 dicas avançadas de desenvolvimento.
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure através do serviço AKS (Azure Kubernetes Service). Palestra realizada em 25/06/2018 durante o evento AzureDevOpsNight, uma iniciativa promovida pelo grupo Developers-BR em São Paulo-SP.
Ferramentas para desenvolvimento no blockchain EthereumOriginalMy.com
Apresentamos o desenvolvimento para blockchain Ethereum utilizando:
- Solidity Browser
- Geth
- Mist
- Trufffle
Utilizando o Mercado Pokémon como plataforma de exemplo.
Criando um site com LAMP e Joomla em 30 minutosFernando Mercês
Essa palestra propõe uma instalação local do Joomla 1.6 passo a passo, desde o servidor web, banco de dados e todos os requisitos necessários para ter um Joomla funcional em sua máquina com Linux. Essa palestra foi apresentada no II Fórum de Software Livre de Duque de Caxias, em dezembro de 2010.
Kerberos é um protocolo amplamente utilizado em grandes empresas para prover ambientes SSO(Single Sigin On), mas quais são as suas reais limitações ? É possível capturar senhas e/ou forjar tickets em ambientes como Active Directory?
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure. Palestra realizada em 16/05/2018 durante evento promovido pelo grupo .NET SP em São Paulo-SP.
Instalação do i-Educar com Linux Containers (LXC)Portabilis
Instalação do i-Educar utilizando Linux Containers (LXC), utilizado durante o curso de extensão do i-Educar na Universidade Federal do Vale do São Francisco (Univasf), realizado por meio do Programa para Formação de Agentes para Sustentabilidade do Software Público Brasileiro (PRO-SPB), que promoveu palestras sobre diversas soluções do Portal do Software Público Brasileiro (www.softwarepublico.go.br) para as prefeituras e parceiros no programa entre os dias 12 e 13/11/2014, no Campus Univasf de Juazeiro/BA.
Palestra realizada no meetup GDG Uberlandia em 29/08/2018 - Um breve hand-ons para amostragem de como criar um cluster com Kubernetes de maneira simples e rápida.
Kubernetes no Governo Federal - Kubernetes Meetup #3Ricardo Katz
Apresentação sobre caso de uso do Kubernetes no Governo Federal do Brasil (SERPRO), orientado à metodologia abordada para a implantação segura da tecnologia como base para a Plataforma como Serviço
Workshop de desenvolvimento para blockchain EthereumOriginalMy.com
Este workshop utiliza o Mercado Pokémon como plataforma de exemplo, utilizando blockchain para:
- Criar uma criptomoeda
- Criar ativos digitais únicos e exclusivos
- Apresentar uma plataforma de trade e negociação de ativos
Além disso é possível criar uma aplicação totalmente standalone, distribuída no P2P, se conectando diretamente no blockchain para utilizá-lo como infraestrutura distribuída e descentralizada.
O workshop também apresenta 15 dicas avançadas de desenvolvimento.
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure através do serviço AKS (Azure Kubernetes Service). Palestra realizada em 25/06/2018 durante o evento AzureDevOpsNight, uma iniciativa promovida pelo grupo Developers-BR em São Paulo-SP.
Ferramentas para desenvolvimento no blockchain EthereumOriginalMy.com
Apresentamos o desenvolvimento para blockchain Ethereum utilizando:
- Solidity Browser
- Geth
- Mist
- Trufffle
Utilizando o Mercado Pokémon como plataforma de exemplo.
Criando um site com LAMP e Joomla em 30 minutosFernando Mercês
Essa palestra propõe uma instalação local do Joomla 1.6 passo a passo, desde o servidor web, banco de dados e todos os requisitos necessários para ter um Joomla funcional em sua máquina com Linux. Essa palestra foi apresentada no II Fórum de Software Livre de Duque de Caxias, em dezembro de 2010.
Kerberos é um protocolo amplamente utilizado em grandes empresas para prover ambientes SSO(Single Sigin On), mas quais são as suas reais limitações ? É possível capturar senhas e/ou forjar tickets em ambientes como Active Directory?
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure. Palestra realizada em 16/05/2018 durante evento promovido pelo grupo .NET SP em São Paulo-SP.
Instalação do i-Educar com Linux Containers (LXC)Portabilis
Instalação do i-Educar utilizando Linux Containers (LXC), utilizado durante o curso de extensão do i-Educar na Universidade Federal do Vale do São Francisco (Univasf), realizado por meio do Programa para Formação de Agentes para Sustentabilidade do Software Público Brasileiro (PRO-SPB), que promoveu palestras sobre diversas soluções do Portal do Software Público Brasileiro (www.softwarepublico.go.br) para as prefeituras e parceiros no programa entre os dias 12 e 13/11/2014, no Campus Univasf de Juazeiro/BA.
Palestra realizada no meetup GDG Uberlandia em 29/08/2018 - Um breve hand-ons para amostragem de como criar um cluster com Kubernetes de maneira simples e rápida.
Slides da palestra apresentada no QCon 2019 sobre Kubernetes e um deepdive em seus componentes (apiserver, scheduler, ingress, etc) e os objetos do cluster
Apresentação da palestra OpenShift Origin Index - Python e Flask na prática, ministrada por Mateus Caruccio na Semana Acadêmica ICET, Feevale, em 12/04/2014.
Blog post em http://getupcloud.com/blog/?p=1607
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
Será mostrado uma aplicação de demonstração em IoT para monitorar o nível de tanques em uma fazenda. Será construída uma API com Django Rest Framework, salvando os dados básicos no Cloud SQL e dados de telemetria dos dispositivos no BigQuery. Tudo isso rodando em ambiente serverless no Google Cloud, sem ter que se queimar configurando servidores. Também veremos o básico de um dispositivo IoT para este projeto feito com MicroPython.
Docker tem diversas features para garantir a segurança dos seus containers. Vamos discutir como adicionar estas camadas de segurança como SELinux, Capabilities, AppArmor, Seccomp e outras abordagens para garantir o isolamento das suas aplicações.
Semelhante a Calico seguranca para containers e mais (20)
2. Eu, rapidão :)
● CKA e LPIC3 (essa venceu…)
● Gerente de engenharia de
Nuvem no SERPRO - Projeto
Estaleiro
● Nesse mundo Linux desde
2004, no SERPRO desde
2009, mexendo com esses
trecos desde 2014
● Curioso, aficionado por aviação
● Corinthiano
4. Conceitos
● Container - Menor unidade existente no Host - Um PROCESSO
● Labels - Identificador para cada objeto no Kubernetes
● PODs - Objeto que representa o conjunto de 1 a N agregados, que
compartilham REDE, CPU e Memória, storage, etc - Uma aplicação
rodando (e a menor unidade em um Cluster Kubernetes)
● Services - Objeto que representa a abstração lógica para um conjunto de
PODs idênticos - 1 IP fixo que identifica 1 a N PODs
● Deployment - Objeto que controla um conjunto de PODs, quantidade de
réplicas, volumes, etc
● Network Policy - Objeto que controla permissões de comunicação de
PODs
6. Namespaces
$ man 7 namespaces
“A namespace wraps a global system resource in an abstraction that makes it
appear to the processes within the namespace that they have their own
isolated instance of the global resource.
Changes to the global resource are visible to other processes that are
members of the namespace, but are invisible to other processes. One use of
namespaces is to implement containers.”
9. CNI - Container Network Interface
● Originalmente criado para o RKT (runtime de Containers da CoreOS)
● O Kubelet chama um programa (o CNI!) para:
○ Criar um Network Namespace (e as placas de rede), caso não exista, alocado ao Namespace
(PID) do POD
○ Alocar um IP para o POD
○ Desfazer e destruir tudo isso quando o POD morre
● No Kubelet, é composto do diretório de binários (--cni-bin-dir) e configuração (--
cni-conf-dir)
{
"name": "nomequalquer",
"cniVersion": "0.1.0",
"type": "calico",
"ipam": {
"type": "calico-ipam"
}
}
10. CNI - Container Network Interface
● Quando criamos um POD o seguinte ocorre dentro do Kubelet:
# CNI_COMMAND=ADD CNI_CONTAINERID=1234567890 CNI_NETNS=/var/run/netns/1234567890 CNI_IFNAME=eth12
CNI_PATH=/opt/cni/bin ./calico <calico.conf
{
"ip4": {
"ip": "172.17.1.17/32"
},
"dns": {}
}
● Ou seja, o Kubernetes não conhece a stack de rede. Ao invés disso ele
delega a um programa (o CNI!) o controle dessa rede, inclusive IPAM
● Adicionalmente, ele pode usar esse programa para controle de regras de
firewall do ambiente
11. Resumo até aqui
Kube APIWorkload
Scheduler
Kubelet
● Baixa imagem
● Executa o CNI
● Sobe o POD (Pause +
Containers)
13. O que é o Calico?
● Software que provê conectividade e segurança de redes
● Simples - Modelo de redes simplificado, baseado em tecnologias de
roteamento já conhecidas e bem utilizadas e sem necessidade de
Overlays de rede
● Escalável - Possui uma arquitetura descentralizada onde cada node de
rede é responsável pelo seu workload (regras, roteamento) e utiliza
apenas um banco centralizado para armazenar informações
● Seguro - Calico provê capacidades de microsegmentação de forma
simplificada, com a declaração de regras baseadas em objetos, labels e
ações
● OpenSource - Código totalmente aberto, comunidade participante de
decisões no design do Kubernetes
14. Principais recursos
● Rede - Responsável por prover conectividade entre PODs
○ Suporte a IPv6
○ NAT de saída
○ BGP e suporte à IPs reais por PODs
○ IP-in-IP para roteamento entre Datacenters
● Segurança - Provê microsegmentação
○ Para o Kubernetes através do uso de Network Policies
○ Para hosts físicos, com o agente instalado
15. Topologia 1 - Acesso direto ao ETCD
ETCD
calicoctl
K8s
policy
controller
configurações
kube-api
Network policies (*)
Objetosde
regrasCalico
Calico
Node
Calico
Node
Calico
Node
Configurações e
regras de firewall (*)
(*) = O Calico Node e o
k8s-policy quem lêem as
configurações
CNI
Requisita IP, aloca rotas
Network Policies
16. Topologia 2 - Acesso via API do Kubernetes (beta)
ETCD
kube-api
Calico
Node
Configurações e regras de firewall
CNI
Requisita IP, aloca rotas
Objetos de conf
(CRD)
17. Componentes
● Node - Container que agrega vários componentes para funcionamento do
Calico
○ Felix - “Coração” da solução, responsável pela programação de interfaces, rotas e
ACLs/regras de firewall e NAT
○ BIRD e BIRD6 - Cliente BGP para troca de informações de Rotas entre cada um dos
nós (IPv4 e IPv6)
○ CONFD - Daemon que lê configurações do ETCD e reconfigura arquivos de acordo com
templates - Gera as configurações do BIRD
18. Componentes
● Kubernetes Policy Controller - Traduz objetos Network Policies em
Objetos de regras para o Calico
○ Existem também plugins para o Openstack, por exemplo
● Route Reflector - Em ambientes muito grandes ou que demandem
sincronização com roteadores externos, replica e agrega as rotas do
ambiente via BGP - Baseado no BIRD