Kubernetes parte II

posted in: Tutoriais | 7

Olá pessoal,

Hoje vamos continuar a demonstração de como podemos utilizar Kubernetes para nos auxiliar na administração de containers. Para conseguirmos realizar todos os procedimento vamos criar uma estrutura com quatro servidores:

  • Node – Master   (CentOS7)
  • Node – Minion1 (CentOS7)
  • Node – Minion2 (CentOS7)
  • Node – Minion3 (CentOS7)

 

Agora vamos instalar alguns componentes em nosso servidor Master.

//Instalando o Kubernetes e o etcd (Serviço de descoberta)
yum install kubernetes etcd -y

// Vamos editar o conf do etcd para liberarmos as portas de acesso a esse serviço. Você vai ver que o arquivo de // conf possui diversas linhas comentadas, vamos tirar o comentário apenas dessas linhas:
vi /etc/etcd/etcd.conf
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"

//Agora vamos fazer a configuração da API do Kubernetes
vi /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet_port=10250"
KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

//Depois de mexer nos conf da API do Kubernetes e do etcd, vamos dar um start neles agora

 systemctl restart etcd
 systemctl restart kube-apiserver
 systemctl restart kube-controller-manager
 systemctl kube-scheduler

etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'






Agora nos servidores Minions vamos executar os seguintes comandos:

yum -y install flannel kubernetes

//Vamos editar o conf do flannel agora em /etc/sysconfig/flanneld
FLANNEL_ETCD="http://IPMASTER:2379"

//Editando o conf do Kubernetes para conectar na API do master. /etc/kubernetes/config
KUBE_MASTER="--master=http://IPMASTER:8080"

//Agora vamos editar o conf do serviço de cada minion, então em cada servidor você vai colocar o seu respectivo IP. /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=IPMINION"
KUBELET_API_SERVER="--api_servers=http://IPMASTER:8080"
KUBELET_ARGS=""


systemctl restart kube-proxy 
systemctl restart kubelet
systemctl restart docker 
systemctl restart flanneld



Agora no server Master é só executar:

//Você receberá o status de nossos nó
kubectl get nodes

Por hoje era isso pessoal, em nosso próximo post vamos demonstrar como podemos criar aplicações altamente disponíveis dentro do nosso Kubernetes.

Espero ter ajudado, e já sabe, tendo dúvida entre em contato conosco ou deixe sua dúvida no fórum que o pessoal pode te ajudar :), quer nos ajudar? Divulgue o mundodocker.com.br e vamos conversando.

Abraço!

Referência: http://severalnines.com/blog/installing-kubernetes-cluster-minions-centos7-manage-pods-services
  • Pingback: Kubernetes - Instalação - Linux AjudaLinux Ajuda()

  • Rafael Navas Bielawski

    quando sai a 2ª parte?

  • Rafael Navas Bielawski

    seguindo o post não fica disponível o opção /ui para a interface web do kubernetes…

  • Olá Rafael,

    Não adicionamos a opção da interface web nesse nosso post. Mas seria uma boa adicionarmos no post da Parte III.

    Na próxima semana estaremos colocando no ar o ultimo post dessa série.

    Obrigado.

  • Olá Rafael,

    Não adicionamos a opção da interface web nesse nosso post. Mas seria uma boa adicionarmos no post da Parte III.

    Na próxima semana estaremos colocando no ar o ultimo post dessa série.

    Obrigado.

  • André Müzel Brisolla

    Cristhian, tudo bem? Me desculpe, telvez seja simples, mas eu não consigo executar o comando systemctl dentro de qualquer container. Recebo a seguinte msg:

    [email protected]:/tmp# docker run -ti centos /bin/bash
    [[email protected] /]# systemctl
    Failed to get D-Bus connection: Operation not permitted

    Procurei no google, mas sem sucesso. Já viu algo assim?

    Muito obrigado!

  • Olá André,

    Você não vê muito isso no google, pois não é uma boa pratica utilizar o systemd dentro dos containers , existem alguns softwares que fazem esse papel do systemd que é o “Supervisord” porêm o ideal seria você utilizar um container para cada serviço.

    http://www.mundodocker.com.br/supervisord-gerenciando-servicos/

    Para rodar um container com o systemctl você terá que rodar ele em modo privilegiado, e dai sim instalar o systemd dentro do container.

    docker run -it –privileged centos /bin/bash

    Espero ter ajudado, qualquer dúvida é só responder ai.