Palestra apresentada no Golang SP, link da palestra: https://youtu.be/5ou3IZe6ukI?t=2425
Gifs:
Explicando CR/CRD: https://imgur.com/MX30Bc1
Demo do Operator: https://imgur.com/cyj6TS7
22. // Kubernetes Operator
● Um pattern introduzido pelo CoreOS
● Usa CRDs!
● Um controller não core do Kubernetes
● Reconcile loop (Toda vez que há um evento, o reconcile loop é chamado
para “reconciliar” o recurso)
● Estende a API do Kubernetes para fazer da aplicação um Custom
Resource
24. // Vantagens de usar um Operator
● Faz uso da API nativa do Kubernetes
● Orientado a eventos (Conectado diretamente ao etcd)
● Abstrai para dentro do Kubernetes algo que não é nativo do Kubernetes
● Lógica de negócio encapsulada
● Interação via kubectl
30. // AWS IAM Roles
● IAM: Identity Access Manager
● Role: perfil a ser incorporado pela aplicação com permissões pré definidas
a recursos da AWS
● Cada deploy no Kubernetes possui uma role
● Eram gerenciadas fora do cluster, via terraform
● Aplicações frequentemente precisavam ser migradas de cluster/conta
AWS, e as roles eram esquecidas.
32. // Caso de uso: AWS IAM Roles
● Porque um Operator?
○ Move junto com o cluster
○ Gerenciamento acoplado à aplicação
○ Continua infra as code
○ Entra no workflow para quem já está acostumado a trabalhar com o
ecossistema do Kubernetes
41. // Para regerar código
● operator-sdk generate k8s
○ Gera deep copy para API do Kubernetes
● operator-sdk generate crds
○ Gera o CRD baseado no arquivo iamrole_types.go
42. Temos a API, os CRDs,
mas ainda falta o
Controller