OpenFaaS
O OpenFaaS é uma plataforma open-source para executar funções (FaaS) sobre Kubernetes. Ele simplifica a implantação de pequenas unidades de código que executam sob demanda ou em resposta a eventos.
No núcleo do OpenFaaS está o modelo Function as a Service (FaaS): você escreve uma função, empacota em uma imagem Docker e o OpenFaaS cuida do escalonamento, rede e gerenciamento do ciclo de vida.
Oferece uma interface web amigável e uma ferramenta de linha de comando chamada faas-cli. Você pode escrever funções em linguagens populares como Python, Node.js, Go e outras, usando templates prontos.
A documentação completa do OpenFaaS no Kubernetes está disponível no site oficial.
Instalar o OpenFaaS Copiar link
Para instalar o OpenFaaS:
- Vá para a seção Kubernetes e clique no seu cluster.
- Na aba Complementos, clique em OpenFaaS.
- Na janela de Configuração:
- Encontre a seção
ingresse habilite definindoenabled: true. - Especifique seu domínio no parâmetro
host. Isso simplifica o acesso ao dashboard e permite o uso dofaas-cli. - Caso habilite o
ingress, você pode desativarexposeServices, que é usado por padrão.
- Encontre a seção
- Depois de definir os parâmetros, clique em Instalar e aguarde a instalação.
Verifique se tudo está rodando checando o status dos pods no namespace openfaas-fn:
kubectl get pods -n openfaas-fnExemplo de saída:
NAME READY STATUS RESTARTS AGE
alertmanager-57767d864c-hdqdn 1/1 Running 0 19h
gateway-5f9c4b5754-ksr6x 2/2 Running 1 (19h ago) 19h
nats-6ddf479847-dxr2g 1/1 Running 0 19h
prometheus-6cbd946f66-wqdf8 1/1 Running 0 19h
queue-worker-57c7479989-bw282 1/1 Running 0 19hSe todos os pods estiverem com status Running, a instalação foi bem-sucedida.
Instalar a CLI Copiar link
Para trabalhar com OpenFaaS via terminal, você precisa da ferramenta faas-cli. Ela permite criar funções, construir e enviar imagens, implantar no cluster, invocar funções e verificar seus status.
Está disponível para Linux, macOS e Windows.
Linux/macOS
curl -sSL https://cli.openfaas.com | shOu via Homebrew (macOS):
brew install faas-cliWindows (PowerShell)
$version = (Invoke-WebRequest "https://api.github.com/repos/openfaas/faas-cli/releases/latest" | ConvertFrom-Json)[0].tag_name
(New-Object System.Net.WebClient).DownloadFile("https://github.com/openfaas/faas-cli/releases/download/$version/faas-cli.exe", "faas-cli.exe")Verifique a instalação:
faas-cli versionExemplo de uso Copiar link
Neste exemplo, vamos:
- Implantar o complemento OpenFaaS.
- Vincular um domínio para facilitar acesso ao dashboard e uso do CLI.
- Implantar uma função da store integrada.
- Criar e implantar uma função customizada usando Docker Hub.
Requisitos Copiar link
- Um domínio ou subdomínio para acesso ao OpenFaaS
- Complemento Nginx Ingress instalado
- Conta no Docker Hub (para funções customizadas)
faas-clie Docker instalados
Implantar o add-on Copiar link
No painel de controle, instale o complemento OpenFaaS.
Na seção de Configuração, habilite o ingress (enabled: true) e especifique seu domínio no campo host. Inicie a instalação.
Criar um Load Balancer Copiar link
Crie um manifesto loadbalancer.yaml:
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx-lb
namespace: ingress-nginx
spec:
selector:
app.kubernetes.io/name: ingress-nginx
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
appProtocol: k8s.hostman.com/proto-http
- name: https
port: 443
targetPort: 443
appProtocol: k8s.hostman.com/proto-httpsAplique:
kubectl apply -f loadbalancer.yamlConfigure o IP do load balancer como registro A do seu domínio:
- Se estiver usando os servidores NS da Hostman, basta selecionar o load balancer criado.
- Caso contrário, obtenha o IP manualmente:
kubectl get svc --all-namespaces --field-selector spec.type=LoadBalancerO IP estará na coluna EXTERNAL-IP.
Acesse o domínio configurado — aparecerá um prompt de autenticação básica.
- Usuário:
admin - Para obter a senha:
kubectl -n openfaas-fn get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decodeApós o login, o dashboard será exibido.

OpenFaaS Dashboard
Trabalhar com funções Copiar link
Vamos usar funções da store integrada do OpenFaaS.
Faça login usando o CLI para executar comandos relacionados à gestão de funções:
faas-cli login \
--gateway http://<domain> \
--username admin \
--password <password>domain— endereço especificado durante a instalação do OpenFaaSadmin— usuário padrãopassword— recuperável com:
kubectl -n openfaas-fn get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decodeInstalar a função figlet. Essa função converte texto em arte ASCII:
faas-cli store deploy figlet \
--gateway http://<domain>Verifique se a função foi instalada:
faas-cli list \
--gateway http://<domain>O status deverá aparecer como Ready.
Para invocar a função, passe uma string como entrada:
echo "Hostman" | faas-cli invoke figlet \
--gateway http://<domain>Você receberá a arte ASCII com o texto fornecido.
Agora, vamos ver como implantar uma função customizada. Escolha um template:
faas-cli template store listCrie uma nova função baseada no template desejado, por exemplo python3-http:
faas-cli new hello-k8s --lang python3-httpSerá criado:
hello-k8s/handler.py— código da funçãostack.yaml— manifesto da função
Antes de construir, edite o stack.yaml e especifique o caminho da imagem Docker Hub. Por exemplo:
functions:
hello-k8s:
lang: python3-http
handler: ./hello-k8s
image: dockerhubuser/hello-k8s:latestNo campo image, informe seu usuário Docker Hub e o nome da imagem. A edição OpenFaaS Community Edition suporta apenas imagens públicas.
Construir a imagem:
faas-cli build -f stack.yamlDepois, envie para o Docker Hub:
faas-cli push -f stack.yamlFinalmente, implante a função no cluster:
faas-cli deploy -f stack.yaml \
--gateway http://<domain>Após executar o comando, você receberá um link para acessar a função.

Abra o link e verá a mensagem: Hello from OpenFaaS!