Post on 05-Jun-2020
Utilizando Operator-Framework paraautomatizar aplicações noKubernetes/OpenShift
CAMILA MACEDO
SR. Software Engineer
RED HAT CLOUD SERVICESRED HAT CLOUD SERVICES
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
CONTAINERSCONTAINERS
Text
$ docker pull postgres
$ docker pull redis
$ docker pull minhaaplicacao
ORQUESTRAÇÃO DE CONTAINERSORQUESTRAÇÃO DE CONTAINERS
ORQUESTRAÇÃO DE CONTAINERSORQUESTRAÇÃO DE CONTAINERS
CONFIGURAÇÕESCONFIGURAÇÕES
NAS PLATAFORMASNAS PLATAFORMAS
CONFIGURAÇÕESCONFIGURAÇÕES
NAS PLATAFORMASNAS PLATAFORMAS
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.
KS8/OPENSHIFT API'SKS8/OPENSHIFT API'S
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
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.
# Cria novo projeto
$ operatorsdk new redhatoperator
$ cd redhatoperator
# Adiciona no projeto AppService CR e CRD (API para AppService)
$ operatorsdk add api apiversion=redhatoperator.example.com/v1alpha1 kind=App
# Adiciona no projeto controller para AppService
$ operatorsdk add controller apiversion=redhatoperator.example.com/v1alpha1 kind=App
OPERATOR-FRAMEWORKOPERATOR-FRAMEWORK
OPERATOR-FRAMEWORKOPERATOR-FRAMEWORK
kubectl
DISPONIBIZANDO O SEU OPERATORDISPONIBIZANDO O SEU OPERATOR
DISPONIBIZANDO O SEU OPERATORDISPONIBIZANDO O SEU OPERATOR
DISPONIBIZANDO O SEU OPERATORDISPONIBIZANDO O SEU OPERATOR
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/
DEMODEMOMOBILE SECURITY SERVICE OPERATOR
Application ( REST + UI ) DATABASE
https://github.com/aerogear/mobile-security-service-operator
PERGUNTAS ?PERGUNTAS ?
MUITO OBRIGADA :-)MUITO OBRIGADA :-)
EU ESPERO QUE VOCÊEU ESPERO QUE VOCÊTENHA GOSTADOTENHA GOSTADO