Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/darkmtrance/kubernetes-java-comunidad
conociendo el orquestador de contenedores Kubernetes
https://github.com/darkmtrance/kubernetes-java-comunidad
codespaces docker java kubernetes spring-boot
Last synced: 11 days ago
JSON representation
conociendo el orquestador de contenedores Kubernetes
- Host: GitHub
- URL: https://github.com/darkmtrance/kubernetes-java-comunidad
- Owner: darkmtrance
- Created: 2024-07-28T03:12:30.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-09-03T23:36:30.000Z (5 months ago)
- Last Synced: 2024-11-17T01:10:11.961Z (2 months ago)
- Topics: codespaces, docker, java, kubernetes, spring-boot
- Language: Java
- Homepage:
- Size: 53.7 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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:
```sh
git clone
```
2. Navega al directorio del proyecto:
```sh
cd
```
3. Construye el proyecto usando Maven:
```sh
mvn clean install
```## Uso
1. Construye la imagen Docker:
```sh
docker build -t nombre-imagen .
```
## Ejecutar Kubernetes localmente
Instalar el binario de [kind](https://kind.sigs.k8s.io/)1. Crear un cluster:
```sh
kind create cluster --image kindest/node:v1.23.5
```2. Ver los servicios del master:
```sh
kubectl get po -A
kubectl cluster-info
```3. Obtener el contexto
```sh
kubectl config get-contexts
```4. Setear el contexto donde se va a trabajar
```sh
kubectl config set-context
```5. Ver los comandos
```sh
kubectl -h
```## Namespace
1. Crear namespace [documentación](https://kubernetes.io/docs/tasks/administer-cluster/namespaces-walkthrough/)
```sh
kubectl create namespace indra
```## Secrets
1. Crear secrets [documentación](https://kubernetes.io/docs/concepts/configuration/secret/)
```sh
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=rootkubectl -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](https://kubernetes.io/docs/concepts/configuration/configmap/)
```sh
kubectl -n indra apply -f mysql-init-configmap.yaml
kubectl get cm -n indra
```
## Statefulset1. Crear statefulset [documentación](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)
```sh
kubectl -n indra apply -f statefulset.yaml
kubectl get pod -n indra
```
## Deployments1. Crear deployment [documentación](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
```sh
kubectl -n indra apply -f deployment.yaml
kubectl get pods -n indra
```
## Services1. Crear services [documentación](https://kubernetes.io/docs/concepts/services-networking/service/)
```sh
kubectl -n indra apply -f service-mysql.yaml
kubectl -n indra apply -f service.yaml
kubectl get services -n indra
```
## Port Forwarding1. Podemos acceder a los endpoints de servicios privados o pods usando `port-forward`
```sh
kubectl -n indra port-forward 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.
```sh
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.3/deploy/static/provider/cloud/deploy.yamlkubectl -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](https://kubernetes.io/docs/concepts/services-networking/ingress/)
```sh
kubectl apply -f ingress.yaml
```