Solucionado (ver solução)
Solucionado
(ver solução)
13
respostas

Duvida sobre o services

Olá tudo bem?

Estou com uma dúvida, quando eu rodo meu um serviço da aplicação, eu preciso ter feito pelo menos um deploy da minha aplicação no servidor?

Pergunto por que subi o app no minikube e o meu service está a mais de 15 minutos processando e não termina.

13 respostas

Olá Jonatas,

Exato, antes, você precisar colocar o seu objeto Deployment ou StatefulSet para depois colocar o serviço

entendi, no meu caso o serviço não sobe. Tem alguma log que eu consiga ver?

@edit

Aparentemente meu service está no ar, mas não tinha me atentado a um detalhe. Estou fazendo um teste com uma aplicação que roda na porta 8069, porém quando crio o service ele roda em uma outra porta que o minikube me disponibiliza. Eu consigo fazer um direcionamento que a porta que o kubernetes me fornece seja direcionado para a porta 8069?

Olá Jonatas,

Conseguiria enviar o arquivo service para eu verificar?

Deployment https://github.com/jonatasoli/odoo-community/blob/master/kube/test/app/odoo-deployment.yaml

Service https://github.com/jonatasoli/odoo-community/blob/master/kube/test/app/service-odoo.yaml

Acredito que vale reforçar que estou rodando varios namespaces no cluster do minikube

Olá Jonatas,

Acredito que o problema seja que o odoo procura um banco postgress, temos que configurar esse banco postgress. Fiz um teste por aqui e consegui ver a página do Odoo. Segue guist:

https://gist.github.com/RafaelNercessian/26191dab072489da068ec9f0b46321d1

Olá Rafael,

Então eu havia criado o banco no postgres no mesmo namespace. Porém eu vi que o seu deployments era difernte do meu eu subi os arquivos direto no google cloud e consegui.

Porém no google cloud levei um erro no serviço do banco de dados, no status está como CrashLoopBackOff.

Uma ultima pergunta, como eu alterno o comando kubectl entre o google cloud e o minikube?

Olá Jonatas,

Para alterar entre o minikube e o Google Cloud poderá utilizar o seguinte comando para alterar o contexto:

kubectl config use-context [nome do contexto]

Então fiz o teste direto no google plataform nesse momento e não expos o ip do serviço.

Olá Jonatas,

Uma sugestão, tente verificar o que acontece com o Pod do banco com o comando kubectl logs [nome do pod], se ele estiver com CrashLoopBackOff ele não foi implementado corretamente no cluster e a aplicação não vai funcionar. Do minikube para o Google Cloud podem ter diferenças de versões compatíveis, por exemplo, no caso do MySQL, para funcionar no Google Cloud tivemos que usar a versão 5.5, pode ser um dos motivos que o Pod não está sendo criado

Log do postgres

```LOG: received fast shutdown request LOG: aborting any active transactions LOG: autovacuum launcher shutting down LOG: shutting down waiting for server to shut down....LOG: database system is shut down done server stopped

PostgreSQL init process complete; ready for start up.

LOG: database system was shut down at 2017-10-11 17:39:47 UTC LOG: MultiXact member wraparound protections are now enabled LOG: database system is ready to accept connections LOG: autovacuum launcher started```

Log do odoo

2017-10-11 17:20:17,665 1 INFO ? odoo: Odoo version 10.0-20170815 2017-10-11 17:20:17,666 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf 2017-10-11 17:20:17,666 1 INFO ? odoo: addons paths: ['/var/lib/odoo/addons/10.0', u'/mnt/extra-addons', u'/usr/lib/python2.7/dist-packages/odoo/addons'] 2017-10-11 17:20:17,666 1 INFO ? odoo: database: odoo@db:5432 2017-10-11 17:20:17,684 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069

Aparentemente os containers estão ok, porém quando dou um kubectl get services o ip externo está como "none" acredito que é por isso que não consegui ver o ip externo. No caso do erro eu recriei todos os containers no google e aparentemente resolveu.

solução!

Olá Jônatas,

Estava revendo o código, acho que o problema é o tipo de Service, no serviço que acessa o odoo tente mudar para LoadBalancer, com isso iremos expor o LoadBalancer do Google Cloud e teremos o endereço IP externo.

Depois com esse endereço IP externo você coloca na URL e especifica a porta 8069, por exemplo:

35.123.22.5:8069

Fiz um teste por aqui no cluster do GCE e consegui ver a aplicação.

Abs

Blz vou testar, vou esperar a minha conta voltar ( o google pediu pra mim provar que sou eu mesmo) ai testo.

Obrigado.

Fiz o teste e deu certo obrigado :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software