terça-feira, 17 de outubro de 2017

debugging cluster kubernetes

In one more work even... trying to check if my app is running in my cluster... kubectl response no pod running.. all nodes gone :(

so here start my debug journey


accessing one node:


checking if kube process are running

ps -ef | grep kube


core@k8s-node-2017:~$ ps -ef | grep kube
root       1739      1  0 15:16 ?        00:00:03 /hyperkube proxy --cluster-cidr=10.100.0.0/16 --master=http://10.120.6.4:8080
core      24484  23080  0 15:42 pts/0    00:00:00 grep --color=auto kube


running OK


check kubelets logs

journalctl -u kubelet -f --no-pager


Oct 17 15:44:56 k8s-node-2017 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE
Oct 17 15:44:56 k8s-node-2017 systemd[1]: kubelet.service: Unit entered failed state.
Oct 17 15:44:56 k8s-node-2017 systemd[1]: kubelet.service: Failed with result 'exit-code'.


kubectl are logging error

checking all services:

Oct 17 15:21:42 k8s-node-2017 systemd[1]: docker-dnsmasq.service: Unit entered failed state.
Oct 17 15:21:42 k8s-node-2017 systemd[1]: docker-dnsmasq.service: Failed with result 'exit-code'.
Oct 17 15:21:43 k8s-node-2017 systemd[1]: kube-docker.service: Service hold-off time over, scheduling restart.
Oct 17 15:21:43 k8s-node-2017 systemd[1]: Stopped kube docker - docker for our k8s cluster.
Oct 17 15:21:43 k8s-node-2017 systemd[1]: Starting kube docker - docker for our k8s cluster...
Oct 17 15:21:43 k8s-node-2017 kube-docker.sh[7240]: Device "flannel.1" does not exist.
Oct 17 15:21:43 k8s-node-2017 kube-docker.sh[7240]: flannel ip address:
Oct 17 15:21:43 k8s-node-2017 kube-docker.sh[7240]: DNS ip address: ...1
Oct 17 15:21:43 k8s-node-2017 kube-docker.sh[7240]: starting docker daemon with flannel CIDR:...1/24
Oct 17 15:21:43 k8s-node-2017 kube-docker.sh[7240]: invalid value "...1" for flag --dns: ...1 is not an ip address
Oct 17 15:21:43 k8s-node-2017 kube-docker.sh[7240]: See 'dockerd --help'.


here we see one problem with flannel service.

checking kube-flannel:

journalctl -u kube-flannel -f

config: 100: Key not found (/coreos.com) [6578]
Oct 17 15:53:41 k8s-node-2017 kube-flannel.sh[1759]: timed out
Oct 17 15:53:41 k8s-node-2017 kube-flannel.sh[1759]: E1017 17:53:41.837899    1759 main.go:344] Couldn't fetch network config: 100: Key not found (/coreos.com) [6578]


seems that etcd lost cluster entries..

debugging master:

debung master etcd:

core@k8s-master-2017:~$ etcdctl ls /registry
/registry/serviceaccounts
/registry/ranges
/registry/services
/registry/events
/registry/namespaces
/registry/apiregistration.k8s.io


master lost flannel config.. because master reboot.. how here we used etcd like master  + proxies.. not like cluster.. we need persist etcd config on disk not ephemeral..

quarta-feira, 11 de março de 2015

Rodando Scrapy com Docker

Olá, Hoje irei falar sobre um Dockerfile criado para rodar um Docker do spider/Scrapy criado nesse post (link)

A ideia do post não é explicar como funciona ou o que é o Docker, pois há inumeros tutorias e conteúdos na internet explicando muito bem o que é o Docker. Sendo assim, para rodar o Dockerfile apresentado abaixo em sua máquina, será preciso ter o Docker instalado previamente em seu ambiente.

Dockerfile

sexta-feira, 27 de fevereiro de 2015

Tutorial Scrapy

Fala pessoal, nesse post vou tentar repassar um pouco do que aprendi estudando Scrapy (Python) nos últimos dias.

O post vai descrever um spider básico que lista em um JSON todos os tópicos criados nas duas primeiras páginas do site guj.com.br.

Ambiente:

- Ubuntu 14.04
- Sublime text

Ferramentas utilizadas:
- Scrapy
- Python
- virtualenv


# Instalando e criando ambiente virutalenv

Para quem não conhece, virtualenv é uma ferramenta que isola seu ambiente. Muito útil para quem trabalha com mais de um projeto na mesma máquina ou para resolver problemas de permissões.

* Instalando virtualenv
$sudo pip install virtualenv

* Criando um novo ambiente
$virtualenv NomeDoAmbiente

* Ativando ambiente
$source ./NomeDoAmbiente/bin/activate


quinta-feira, 29 de janeiro de 2015

Acesso SSH com Keys

Acesso SSH com Keys

Abaixo será descrito como acessar um servidor remoto com par de chaves privada/publica. Além de não precisar inserir a senha a cada acesso, acessar um servidor através de chaves torna o acesso mais seguro.

1 - Criando RSA Key Pair

ssh-keygen -t rsa


Você pode optar por deixar o passphrase vazio.

2 - para copiar chave pública para o servidor remoto vamos utilizar o ssh-copy-id;

ssh-copy-id -i ~/.ssh/id_rsa.pub "user@192.168.0.2"



segunda-feira, 22 de dezembro de 2014

Web Crawler MEAN (MongoDB, Express, Angular e NodeJS) Part º2

Hello,

This post is the second part of tutorials about MEAN. Today we will see about crawler logic with cheerio (node lib).

In app.js declare crawler class:

var crawler = require('./routes/crawler.js');


After we set one timer for get source:

setInterval(function(){

    console.log('trying crawler in:' + new Date());

    download(options, function downloadResult(data) {

      if (data) {

          findKeywordsAndusers(data, parseHtml);

      }

      else console.log("error");  

    });

},  1 * 60 * 1000);


The code above will call function download and in call back return will call function findKeywordsAndusers with function callback parseHtml in parameter.

The main logic in function parseHtml:

#load html download from function download

var $ = cheerio.load(data);



#iterate through each element 'li' and get element in tag 'h3' with link

$("li").each(function(i, e) {

    var title = $(e).find("h3>a").text();



}



After get the element what we need, the rest of logic is about retrieve keywords for match with title and send e-mail for alert.

sexta-feira, 28 de novembro de 2014

Web Crawler MEAN (MongoDB, Express, Angular e NodeJS)

Hello,

This post i will try explain about one web cralwer made for me in NodeJS + Mongo + AngularJS. The post focus doesn't be one tutorial, the focus is share my little knowledge about MEAN (MongoDB, Express, Angular e NodeJS).

The posts will separete in tree steps:


1 - Initial Config
2 - Web crawler logic
3 - Keywords AngularJS CRUD

1- Initial Config


#Requeriments:

 

NodeJS
Node Express
MongoDB
Bower

quinta-feira, 1 de agosto de 2013

SCJP mock exam FREE!!

Olá,

Estou estutando para SCJP e procurando na net por simulados. Encontrei um site com simulados WEB e FREE. Você consegue selecionar o assunto dos testes, tempo de duração e mais algumas configurações.. e melhor ainda.. você consegue pausar e continuar a prova depois!


http://scjptest.com