automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S...

20
Utilizando Operator-Framework para automatizar aplicações no Kubernetes/OpenShift CAMILA MACEDO SR. Software Engineer RED HAT CLOUD SERVICES RED HAT CLOUD SERVICES

Transcript of automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S...

Page 1: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

Utilizando Operator-Framework paraautomatizar aplicações noKubernetes/OpenShift

   

  

 CAMILA MACEDO

SR. Software Engineer

RED HAT CLOUD SERVICESRED HAT CLOUD SERVICES

Page 2: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

AGENDAAGENDA

INTRODUÇÃOINTRODUÇÃO

K8S/OPENSHIFT API'SK8S/OPENSHIFT API'S

RECURSOS CUSTOMIZADOS (CR/CRD)RECURSOS CUSTOMIZADOS (CR/CRD)

OPERATOR-FRAMEWORKOPERATOR-FRAMEWORK

DISPONIBIZANDO O SEU OPERATORDISPONIBIZANDO O SEU OPERATOR

POR ONDE COMEÇAR?POR ONDE COMEÇAR?

DEMODEMO

PERGUNTAS ?PERGUNTAS ?

1 CONTAINERSCONTAINERS

2 ORQUESTRAÇÃO DE CONTAINERSORQUESTRAÇÃO DE CONTAINERS

3 CONFIGURAÇÕES NAS PLATAFORMASCONFIGURAÇÕES NAS PLATAFORMAS

 

 

Page 3: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

CONTAINERSCONTAINERS

Text

$ docker pull postgres

$ docker pull redis

$ docker pull minhaaplicacao 

Page 4: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

ORQUESTRAÇÃO DE CONTAINERSORQUESTRAÇÃO DE CONTAINERS

Page 5: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

ORQUESTRAÇÃO DE CONTAINERSORQUESTRAÇÃO DE CONTAINERS

Page 6: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

CONFIGURAÇÕESCONFIGURAÇÕES

NAS PLATAFORMASNAS PLATAFORMAS 

Page 7: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

CONFIGURAÇÕESCONFIGURAÇÕES

NAS PLATAFORMASNAS PLATAFORMAS

Page 8: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

K8S/OPENSHIFT API'SK8S/OPENSHIFT API'S

# tells which API and version you’re using to create this objectapiVersion: apps/v1 kind: Deployment # What kind of object you want to create

metadata: # Data that helps uniquely identify the object  name: redhat-appspec:  # tells deployment to run 2 pods matching the template   replicas: 2   template:    metadata:      labels:        app: redhat-app    spec:      containers:      - name: redhat-app        # tells the docker image and tag which should be used        image: docker.io/cmacedo/redhat-app:master         ports:        - containerPort: 80 

12

3

45

6789101112

131415

1617

181920

Exemplo não funcional.

Page 9: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

KS8/OPENSHIFT API'SKS8/OPENSHIFT API'S

Page 10: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

CRIANDO RECURSOS CUSTOMIZADOSCRIANDO RECURSOS CUSTOMIZADOS(CUSTOM RESOURCES/CUSTOM RESOURCES DEFINITIONS)

“  CR: Objeto que estende a API doKubernetes ou permite que vocêintroduza sua própria API em umprojeto ou cluster.

“  CRD: Define seus próprios tiposde objeto e permite que o servidorde API manipule todo o ciclo devida.

apiVersion: redhat.example.com/v1alpha1kind: Appmetadata:  name: redhat-appspec:  nome: "Segredo do Universo"  id: 42

1

2

34

56

7

Page 11: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

OPERATOR-FRAMEWORKOPERATOR-FRAMEWORK

“  O Operator Framework é um projeto OpenSource o qual fornece ferramentas erecursos com o objetivo de auxliar o desenvolvimento de projetos que realizam"operações" utilizando as API's em tempo de execução no cluster.

Page 12: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

# Cria novo projeto 

$ operator­sdk new redhat­operator 

$ cd redhat­operator 

 

# Adiciona no projeto AppService CR e CRD (API para AppService)  

$ operator­sdk add api ­­api­version=redhat­operator.example.com/v1alpha1 ­­kind=App 

 

# Adiciona no projeto controller para AppService  

$ operator­sdk add controller ­­api­version=redhat­operator.example.com/v1alpha1 ­­kind=App 

OPERATOR-FRAMEWORKOPERATOR-FRAMEWORK

Page 13: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

OPERATOR-FRAMEWORKOPERATOR-FRAMEWORK

kubectl

Page 14: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

DISPONIBIZANDO O SEU OPERATORDISPONIBIZANDO O SEU OPERATOR  

Page 15: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

DISPONIBIZANDO O SEU OPERATORDISPONIBIZANDO O SEU OPERATOR  

Page 16: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

DISPONIBIZANDO O SEU OPERATORDISPONIBIZANDO O SEU OPERATOR  

Page 17: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

POR ONDE COMEÇAR?POR ONDE COMEÇAR?

 

Getting Started: 

 

Blog: 

https://github.com/operator-framework/getting-started

https://dev4devs.com/2019/03/08/kubernates-openshift-operators-getting-started-from-a-to-z/

Page 18: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

DEMODEMOMOBILE SECURITY SERVICE OPERATOR

Application ( REST + UI ) DATABASE

https://github.com/aerogear/mobile-security-service-operator

Page 19: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

PERGUNTAS ?PERGUNTAS ?

Page 20: automatizar aplicações no Utilizando Operator-Framework ... · INTRODUÇÃO K8S/OPENSHIFT API'S RECURSOS CUSTOMIZADOS (CR/CRD) OPERATOR-FRAMEWORK DISPONIBIZANDO O SEU OPERATOR POR

MUITO OBRIGADA :-)MUITO OBRIGADA :-)  

EU ESPERO QUE VOCÊEU ESPERO QUE VOCÊTENHA GOSTADOTENHA GOSTADO