Skip to content

darkmtrance/kubernetes-java-comunidad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kubernetes-java-comunidad

Descripción

Este proyecto tiene como objetivo conocer el orquestador de contenedores Kubernetes mediante una aplicación Java.

Prerrequisitos

  • Java 17 o superior
  • Maven 3.6.0 o superior
  • Docker
  • Kubernetes (Minikube, kind o cualquier otra distribución)

Instalación

  1. Clona el repositorio:
    git clone <url-del-repositorio>
  2. Navega al directorio del proyecto:
    cd <directorio-del-proyecto>
  3. Construye el proyecto usando Maven:
    mvn clean install

Uso

  1. Construye la imagen Docker:
    docker build -t nombre-imagen .

Ejecutar Kubernetes localmente

Instalar el binario de kind

  1. Crear un cluster:

    kind create cluster --image kindest/node:v1.23.5
  2. Ver los servicios del master:

    kubectl get po -A
    kubectl cluster-info
  3. Obtener el contexto

    kubectl config get-contexts
  4. Setear el contexto donde se va a trabajar

    kubectl config set-context <nombre del contexto>
  5. Ver los comandos

    kubectl -h

Namespace

  1. Crear namespace documentación
    kubectl create namespace indra

Secrets

  1. Crear secrets documentación
    kubectl -n indra create secret generic app-secret --from-literal=SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/mydb --from-literal=SPRING_DATASOURCE_USERNAME=root
    --from-literal=SPRING_DATASOURCE_PASSWORD=root
    
    kubectl -n indra create secret generic mysql-root-pass --from-literal=MYSQL_ROOT_PASSWORD=root
    
    kubectl get secrets -n indra

NOTA: los archivos yaml se encuentra en demoPod/deployment

Configmap

  1. Crear configmap documentación
     kubectl -n indra apply -f mysql-init-configmap.yaml
     kubectl get cm -n indra

Statefulset

  1. Crear statefulset documentación
     kubectl -n indra apply -f statefulset.yaml
     kubectl get pod -n indra

Deployments

  1. Crear deployment documentación
    kubectl -n indra apply -f deployment.yaml
    kubectl get pods -n indra

Services

  1. Crear services documentación
    kubectl -n indra apply -f service-mysql.yaml
    kubectl -n indra apply -f service.yaml
    kubectl get services -n indra

Port Forwarding

  1. Podemos acceder a los endpoints de servicios privados o pods usando port-forward
    kubectl -n indra port-forward <pod-name> 8080

Public Traffic

Para hacer que nuestro sitio sea público, es común exponer los servidores web a través de un proxy o un API gateway. En Kubernetes, se utiliza un Ingress.

Ingress

  1. Para usar un Ingress, necesitamos un controlador de Ingress.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.3/deploy/static/provider/cloud/deploy.yaml
    
    kubectl -n ingress-nginx get pods
    
    kubectl -n ingress-nginx --address 0.0.0.0 port-forward svc/ingress-nginx-controller 80
  2. Crear un Ingress documentación

    kubectl apply -f ingress.yaml

About

conociendo el orquestador de contenedores Kubernetes

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •