Selenium Grid 4 — Parte 4
Fala pessoal blz? Esse é um dos artigos da série Selenium Grid 4. Se perdeu algum episódio segue os atalhos:
Nesse artigo iremos nos aproximar de uma implantação produtiva do Selenium Grid 4. Na parte Parte 2 basicamente implantamos o Selenium Grid 4 no Docker em uma máquina virtual Linux. Serve como aprendizado inicial, mas e se for preciso escalar como em um cluster Azure Kubernetes?
Pré-Requisito:
- Conta na Azure, para o laboratório pode-se utilizar a avaliação gratuita na Azure
- Conhecimento básico de Azure Kubernetes
Passo a passo:
1- Criação do cluster AKS
Com a conta criada na Azure, e devidamente logado iremos criar o cluster AKS com os nós virtuais.
Na lista de serviços Azure selecione o Serviço do Kubernetes
Na tela seguinte clique em “Criar um cluster do Kubernetes”
Agora iremos preencher as informações destacadas para configurarmos nosso cluster
No print abaixo informe os valores:
- Grupo de Recursos: Criar novo: rg-kubernete-selenium
- Nome do cluster do Kubernete: kubernete-selenium-hub
- Escolha a região (US) East US
- Em Disponibilidade do Servidor de API deixe padrão 99.5% (Otimize para o custo).
- Na área de Pool de nós primários deixe o padrão Standard DS2v2, dimensionamento automático e o intervalo máximo de nós = 2
- Clique em “Avançar: Pools de nós >”
Na tela a seguir marque a opção “Habilitar nós virtuais”
Clique em Revisar e Criar
Será executada uma validação das configurações informadas, dando tudo certo na próxima tela é só clicar em Criar. Caso ocorra algum erro, verifique o log do erro e revise o preenchimento das informações.
Ao final da implantação a tela a seguir será apresentada. Clique em “Ir para o Recurso” para continuarmos nossas configurações.
Na tela a seguir siga os passos:
1. Clique em Conectar
2. Será aberta uma tela ao lado com as informações para conexão, clique em Abrir o Cloud Shell.
3. Será necessário confirmar o armazenamento na Azure para iniciar o Azure Cloud Shell, clique em Criar Armazenamento
Os comandos do passo 2 serão executados automaticamente
Implantação selenium HUB e NÓS
Vamos criar 5 arquivos YAML, transferir para o armazenamento Azure, e depois executar:
- Implantação do Selenium Hub
2. Criação do serviço para o Selenium Hub permitir tráfego externo
3. Implantação do nó Firefox
4. Implantação do nó Edge
5. Implantação do nó Chrome
Transfira todos os 5 arquivos através do Cloud Shell Azure pela opção do print abaixo
Agora iremos executar os comandos abaixo:
- Implantação do selenium hub
kubectl create -f selenium-hub-deployment.yaml
A saída semelhante ao print abaixo
2. Criação do serviço para permitir comunicação externa no selenium hub
kubectl create -f selenium-hub-svc.yaml
Esse comando que será executado além de expor o IP público para acesso externo irá criar um balanceador de carga externo e assina um endereço IP fixo e externo para o serviço
A saída semelhante ao print abaixo
3. Obtenção do endereço externo do Selenium Grid
kubectl get services
A saída semelhante ao print abaixo
Em seu navegador informe o endereço substituindo o IP pelo seu IP externo http://20.124.162.169:4444
Será aberto o Selenium Grid 4 sem nó adicionado ainda.
Para adicionar os nós iremos executar os comandos abaixo:
- Chrome:
kubectl create -f selenium-node-chrome-deployment.yaml - Edge:
kubectl create -f selenium-node-edge-deployment.yaml - Firefox:
kubectl create -f selenium-node-firefox-deployment.yaml
A saída será semelhante ao print abaixo:
Para verificar os pods criados execute o comando abaixo:
kubectl get pods
Note que foram criados 2 pods para cada nó referente aos navegadores, que foi informado no parâmetro replicas: 2 do arquivo yaml.
Retornando ao endereço do Selenium Grid: http://20.124.162.169:4444 verifique que os nós foram adicionados.
Com isso completamos a implantação do Selenium Grid no Azure Kubernetes. Notamos que esse modelo produtivo é o que mais se aproxima de um uso real. Temos um autoscaler em cada nó dos pods implantados o que possibilita escalar horizontalmente conforme necessidade.
OBS: Até o fechamento desse artigo foi liberada versão 4.6 do Selenium Grid. Caso queiram testar é só alterar os parâmetros abaixo de cada arquivo yaml:
image: selenium/hub:4.6.0
image: selenium/node-chrome:4.6.0
image: selenium/node-edge:4.6.0
image: selenium/node-firefox:4.6.0
Um grande abraço e até a próxima