- Login no OpenShift
- Criação de um Novo Projeto
- Configuração do Persistent Volume (PV)
- Configuração do Persistent Volume Claim (PVC)
- Login no Registro Interno do OpenShift
- Construção e Publicação da Imagem Docker
- Criação do Deployment
- Criação do Serviço
- Criação da Rota
- Configuração do Horizontal Pod Autoscaler (HPA)
- Verificação do Status dos Recursos
- Acesso à Aplicação
- Teardown do Ambiente
- Anexos
- Referencias
Execute o comando abaixo para fazer login no OpenShift:
oc login -u kubeadmin -p Y9hGk-K7fvJ-p359Z-ACeL3 --server=https://api.crc.testing:6443
Login successful.
Crie um novo projeto chamado fiap-app
:
oc new-project fiap-app
Now using project "fiap-app" on server "https://api.crc.testing:6443".
Crie um arquivo chamado pv.yaml
com o seguinte conteúdo:
apiVersion: v1
kind: PersistentVolume
metadata:
name: fiap-app-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
hostPath:
path: /app/data
Aplique o PV:
oc apply -f pv.yaml
persistentvolume/fiap-app-pv created
Crie um arquivo chamado pvc.yaml
com o seguinte conteúdo:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: fiap-app-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Aplique o PVC:
oc apply -f pvc.yaml
persistentvolumeclaim/fiap-app-pvc created
Execute os comandos abaixo para fazer login no registro interno do OpenShift e autenticar o Docker:
docker login -u kubeadmin -p $(oc whoami -t) default-route-openshift-image-registry.apps-crc.testing
Login Succeeded
Construa a imagem Docker localmente:
docker build -t fiap-app:latest .
Successfully built <image_id>
Successfully tagged fiap-app:latest
Marque a imagem para o registro interno do OpenShift:
docker tag fiap-app:latest default-route-openshift-image-registry.apps-crc.testing/fiap-app/fiap-app:latest
Empurre a imagem para o registro interno:
docker push default-route-openshift-image-registry.apps-crc.testing/fiap-app/fiap-app:latest
The push refers to repository [default-route-openshift-image-registry.apps-crc.testing/fiap-app/fiap-app]
latest: digest: sha256:a65b6c711c7dba258519990c962101b80d20bd4763f13af4c693aa4d41889a04 size: 2202
Crie um arquivo chamado deployment.yaml
com o seguinte conteúdo:
apiVersion: apps/v1
kind: Deployment
metadata:
name: fiap-app
spec:
replicas: 1
selector:
matchLabels:
app: fiap-app
template:
metadata:
labels:
app: fiap-app
spec:
containers:
- name: fiap-app
image: default-route-openshift-image-registry.apps-crc.testing/fiap-app/fiap-app:latest
ports:
- containerPort: 5000
volumeMounts:
- mountPath: /app/data
name: fiap-data
volumes:
- name: fiap-data
persistentVolumeClaim:
claimName: fiap-app-pvc
Aplique o Deployment:
oc apply -f deployment.yaml
deployment.apps/fiap-app created
Crie um arquivo chamado service.yaml
com o seguinte conteúdo:
apiVersion: v1
kind: Service
metadata:
name: fiap-app
spec:
selector:
app: fiap-app
ports:
- protocol: TCP
port: 80
targetPort: 5000
Aplique o Serviço:
oc apply -f service.yaml
service/fiap-app created
Crie um arquivo chamado route.yaml
com o seguinte conteúdo:
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: fiap-app
spec:
to:
kind: Service
name: fiap-app
port:
targetPort: 5000
Aplique a Rota:
oc apply -f route.yaml
route.route.openshift.io/fiap-app created
Crie um arquivo chamado hpa.yaml
com o seguinte conteúdo:
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: fiap-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: fiap-app
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80
Aplique o HPA:
oc apply -f hpa.yaml
horizontalpodautoscaler.autoscaling/fiap-app-hpa created
Verifique o status dos pods:
oc get pods -n fiap-app
NAME READY STATUS RESTARTS AGE
fiap-app-5797d5777-khmrf 1/1 Running 0 5m
Verifique o status do serviço e da rota:
oc get svc -n fiap-app
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
fiap-app ClusterIP 172.30.227.186 <none> 80/TCP 5m
oc get routes -n fiap-app
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
fiap-app fiap-app-fiap-app.apps-crc.testing fiap-app 5000 None
Acesse a aplicação via navegador utilizando a URL fornecida pela rota. No caso do exemplo acima, a URL seria:
http://fiap-app-fiap-app.apps-crc.testing
Para destruir o ambiente criado, execute os seguintes comandos:
oc delete project fiap-app
oc delete pv fiap-app-pv
project "fiap-app" deleted
persistentvolume "fiap-app-pv" deleted
-
Comando
oc login
: -
Comando
oc new-project
: -
Comando
oc apply -f pv.yaml
: -
Comando
oc apply -f pvc.yaml
: -
Comando
docker build
: -
Comando
docker push
: -
Comando
oc apply -f deployment.yaml
: -
Comando
oc apply -f service.yaml
: -
Comando
oc apply -f route.yaml
: -
Comando
oc apply -f hpa.yaml
: -
Comando
oc get pods
: -
Acesso à aplicação: