5) Operators: existem diversos tipos de recursos em que cada um ultiliza workloads de maneiras diferentes. Por exemplo, jobs e cronjobs ultilizam workloads temporariamente, mas deployments e stateful sets os ultilizam permanentemente. De modo que estes ultilizam diferentes quantidades de workloads, como por ex, um deploy de front-end ultiliza menos workload do que um deploy de banco de dados. Assim, operators servem para manage e deploy essa quantidade de workloads, automatizando esse processo. Além disso, operators ultilizam Custom Resources (CRs), que contêm a info necessária da aplicação para o operator realizar sua função, como por ex, o nome da app, sizing requirements e etc. Com isso, operators funcionam rastreando o cluster por CRs e, a partir disso, realizando o deploy do workload e criando os recursos necessários para fazê-la funcionar. Como por exemplo, ao criar um banco de dados, o operator responsável por DBs irá criar um stateful set e um PV para prover o banco de dados que está prescrito no CR. Assim, a criação de um CR é basicamente todas as necessidades da aplicação em um lugar só, e o operator monta tudo.
5.1) Deploying operators: existem vários tipos de operators com diferentes funcionalidades.
- Cluster operators: providenciam serviços específicos do openshift, como algumas funcionalidades do web console e a autenticação OAuth e vêm com a instalação do openshift;
- Add-On operators: são introduzidos, atualizados e managed a partir do Operator Lifecycle Manager (OLM) e são instalados e atualizados através do OperatorHub.
O responsável por manage aqulele tipo de operators é o Cluster Version Operator (CVO). Além disso, o CVO é o responsável por monitorar os operators no sistema. Assim, use o comando oc get clusteroperator para analisá-los.O OLM ultiliza diversos resource types para cumprir sua função. Entre esses resources estão os mais importantes: Catalog Source (referencia um operator repository) e Package Manifest (cria um manifest para cada operator contendo a info necessária para sua instalação).
5.2) Installing operators: siga esses passos:
- Locate the operator to install.
- Review the operator and its documentation for installation options and requirements.
- Decide the update channel to use.
- Decide the installation mode. For most operators, you should make them available to all namespaces.
- Decide to deploy the operator workload to an existing namespace or to a new namespace.
- Decide whether the Operator Lifecycle Manager (OLM) applies updates automatically, or requires an administrator to approve updates.
- Create an operator group if needed for the installation mode.
- Create a namespace for the operator workload if needed.
- Create the operator subscription.
- Review and test the operator installation.
5.2.1) Examine available operators:
- ultilize o comando oc get catalogsource -n openshift-marketplace para entrar no marketplace namespace e ver os operators disponíveis;
- O OLM cria um package manifest para cada operator na lista de referências. O comando oc get packagemanifests mostra quais estão available para instalação.
- Após analisar qual operator quer instalar, use o comando oc describe packagemanifest nome_operator -n openshift-marketplace para analisar sua manifest file. NOTA: essa file é muito importante analisar. Leia ela toda e tente compreender
- use o comando oc get csv -A para list os installed operators. Esse commando mostra o cluster service version em todos os namespaces. Mostrar os operators é apenas uma consequência.
- Use the command oc get clusteroperatorto list the cluster operators and their status.