Conteúdos

Hello Minikube para ppc64le

Este tutorial mostra como criar um cluster para processadores da arquitetura Power (ppc64/ppc64le) utilizando o Minikube.

/hello-minikube/hello_minikube.png

O tutorial foi realizado no Ubuntu Server 20.04 LTS (ppc64le), o pacote utilizado foi baixado utilizando o repositório de arquivos do OpenPower Lab @ Unicamp.

Dependências

Para seguir com este tutorial, os sequintes pacotes são requeridos:

  • Minikube
  • Kubectl
  • Docker-ce
  • Conntrack

Os pacotes podem ser instalados através dos comandos a baixo:

1
2
apt-get update
apt-get install docker-ce conntrack minikube kubectl

Pode ser que seja necessário adicionar o repositório do OpenPower Lab @ Unicamp no seu sistema.

Opcionalmente, Kubeadm e Kubelet podem ser instalados.

Criando um cluster com Minikube

  1. Inicie o Minikube
1
sudo minikube start --driver=none

O driver padrão é o Docker, entretanto o Minikube não reconhece que o Docker está disponível para a arquitetura ppc64le e apresenta uma mensagem de erro.

Para fazer ’none’ o driver padrão utilize:

1
sudo minikube config set driver none

Talvez seja necessário rodar o comando: sudo sysctl fs.protected_regular=0

  1. Verifique o status
1
sudo minikube status

Saída esperada:

1
2
3
4
5
6
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
  1. Abra o dashboard do Kubernetes no seu navegador
1
sudo minikube dashboard

Criando um Deployment

Existem duas estruturas em kubernetes: Pod e Deployment. Um Pod é um grupo de um ou mais containers, enquanto que um Deployment verifica, gerencia e reinicia os Pods. Dessa forma, o uso do Deployment é recomendado quando será utilizado um grupo de Pods.

  1. Criando um Deployment
1
sudo kubectl create deployment hello-node --image=minicloud/node-server

minicloud/node-server: é uma imagem pública de um container Docker criada para a arquitetura ppc64le. Os arquivos utilizados para construir a imagem podem ser acessados pelo GitHub.

  1. Visualizando o Deployment:
1
sudo kubectl get deployments

Saída esperada:

1
2
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
hello-node   1/1     1            1           6m28s
  1. Visualizando o Pod:
1
sudo kubectl get pods

Saída esperada:

1
2
NAME                          READY   STATUS    RESTARTS   AGE
hello-node-5dd47b76c8-l5vs2   1/1     Running   0          6m51s

Criando um serviço

Para que sejá possível acessar o Pod, é necessário criar um serviço.

  1. Criando um serviço
1
sudo kubectl expose deployment hello-node --type=NodePort --port=8080
  1. Visualizando o serviço
1
sudo kubectl get services

Saída esperada:

1
2
3
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
hello-node   NodePort    10.102.223.224   <none>        8080:31253/TCP   8s
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP          14m

Para abrir o serviço no seu navegador acesse: http://localhost:8080/.

/hello-minikube/screenshot.png

Se não for possível acessar, mude o 8080, para os 5 digitos apresentados após o 8080:*****. Na execução do exemplo a porta criado foi a 31253.

Limpeza de execução

Os recursos instanciados podem ser removidos executando:

1
2
kubectl delete service hello-node
kubectl delete deployment hello-node

Opcional: Parar o Minikube

1
minikube stop

Opcional: Deletar o Minikube

1
minikube delete

Tutorial para outras arquiteturas

Hello Minikube