Introduction: Instalando E Configurando Um Cluster Kubernetes Com a DragonBoard 410c
A Dragonboard 410c é uma placa muito versátil. Ela possui um processador de 1.2Ghz de quatro núcleos (32 e 64 bocados) e possui Bluetooth, Wifi e GPS um bordo, além de duas portas USB para uma saída e uma saída HDMI.
Como coleções mais integradas podem ser encontradas no site da Qualcomm (em inglês). This instructables mostra como instalar microsserviços, nesse tutorial vamos instalar um cluster de kubernetes na Dragonboard.
Kubernetes é uma plataforma de código aberto e portátil para a gestão de tarefas e serviços em contêineres (orquestração de contêineres) que facilitam a configuração declarativa e automação.
• Nó: um nó é uma máquina de trabalho não Kubernetes.Um pode ser uma máquina virtual ou física, dependendo do cluster. O primeiro contém os serviços necessários para a execução de pesquisas e é feito pelos principais componentes.
• Pod: esta é uma unidade básica no Kubernetes. Ele pode consistir em um ou mais contêineres com uma garantia de suporte na máquina hospedeira e compartilhar os recursos. Todos os contêineres implantados dentro do pod podem ver outros contêineres via host local. Cada pod existe um endereço IP exclusivo no cluster.
Supplies
Detalhes
Step 1: Instalando O Docker
Vamos realizar uma instalação do Docker
# curl -fsSL https://get.docker.com | bater
Desse modo a última versão do docker será publicado em todos os nós
Step 2: Instalando O Kubernetes
Depois do Docker já instalado, vamos adicionar a repo do Kubernete em nossos nodes:
Debian e Semelhantes:
# apt-get update e& apt-get install -y apt-transport-https
# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
# echo "deb http://apt.kubernetes.io/ kubernetes-xenial main"> /etc/apt/sources.list.d/kubernetes.list
# apt-get update
# apt-get install -y kubelet kubeadm kubectl
********************************************************************************************************************
Red Hat e Semelhantes:
# vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
[kubernetes] nome = Kubernetes
baseurl = https: //pacotes.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled = 1
gpgcheck = 1
repo_gpgcheck = 1
gpgkey = https: //packages.cloud.google. com / yum / doc / yum-key.gpghttps: //pacotes.cloud.google.com/yum/doc/rpm-pac ....gpg
# setenforce 0
# systemctl stop firewalld
# systemctl desativar o firewalld
# yum install -y kubelet kubeadm kubectl
# systemctl enable kubelet && systemctl start kubelet
Ainda na família do Red Hat, é importante configurar alguns parâmetros do kernel no sysctl:
# vim /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1
# sysctl --system
Agora, em ambas as distribuições, é muito importante também o driver é usado pelo usuário para fazer o mesmo para o docker, para verificar isso, execute o seguinte comando:
# docker info | grep -i cgroup Cgroup Driver: cgroupfs
# sed -i "s / cgroup-driver = systemd / cgroup-driver = cgroupfs / g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# systemctl daemon-reload
# systemctl restart kubelet
docs: https://kubernetes.io/docs/setup/independent/inst...
****************************************************************************************************************************
Para iniciar o nosso cluster devemos desabilitar nossa swap:
# swapoff -a
E comente a entrada referente a swap em seu arquivo fstab:
# vim /etc/fstab
Step 3: Iniciando O Cluster
# kubeadm init --apiserver-advertise-address $(hostname -i)
O comando acima irá iniciar o cluster e em seguida exibirá a linha que de comando que preciso executar em meus outros nodes.
[WARNING SystemVerification]: docker version is greater than the most recently validated version. Docker version: 18.05.0-ce. Max validated version: 17.03 ...
To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ...
kubeadm join --token 39c341.a3bc3c4dd49758d5 IP_DO_MASTER:6443 --discovery-token-ca-cert-hash sha256:37092 ...
# mkdir -p $HOME/.kube
# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# sudo chown $(id -u):$(id -g) $HOME/.kube/config
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" serviceaccount/weave-net created
clusterrole.rbac.authorization.k8s.io/weave-net created
clusterrolebinding.rbac.authorization.k8s.io/weave-net created
role.rbac.authorization.k8s.io/weave-net created
rolebinding.rbac.authorization.k8s.io/weave-net created
daemonset.extensions/weave-net created
Vamos listar esses podnetwork:
# kubectl get pods -n kube-system
# kubeadm join --token 39c341.a3bc3c4dd49758d5 IP_DO_MASTER:6443 --discovery-token-ca-cert-hash sha256:37092
# kubectl get nodes
Step 4: Executando O Cluster
Vamos verificar se todos os nós do nosso cluster estão ok:
# kubectl obter nós
elliot-01 Ready 14s v1.11.1
elliot-02 Ready master 14m v1.11.1
elliot-03 Mestre pronto 13m v1.11.1
Vamos verificar os detalhes do nó elliot-01
# kubectl descrever nó elliot-01
Está ruim de ficar digitando? use o preenchimento automático: # source <(conclusão do kubectl bash)
Verificando os pods:
# kubectl obter pods
Verificando os pods do namespace do kubernetes, o kube-system:
# kubectl obtenha pods -n kube-system
Usando o detalhe para ver detalhes de algum pod:
# kubectl descreve pod kube-apiserver-elliot-01 -n sistema kube
Verificando os pods do namespace do kubernetes, do sistema de kube e utilizando a opção -o wide:
# kubectl obtenha pods -n kube-system -o wide
Criando o nosso primeiro deployment:
# kubectl run meu-nginx --image nginx deployment.apps / nginx criado
Verificando o deployment criado:
# kubectl obter implementações
Verificando o pod do do deployment:
# kubectl obter pods
Usando o get pod e obter implantação juntos:
# kubectl obter pod, implantações
Verificando os detalhes da nossa implantação:
# kubectl descreve a implementação do meu-nginx
Aumentando a quantidade de réplicas de nosso desenvolvimento:
# kubectl scale deployment meu-nginx --replicas = 10
Verificando os pods de todos os namespaces:
# kubectl obter pods --all-namespaces
Removendo nosso deployment:
# kubectl delete deployment meu-nginx