NOTA: Adicional
Comando para otorgar permisos para acceder a volumenes o puertos
ola, algunas imágenes que usaremos durante el curso requiere privilegios de acceso como ROOT o bien necesitan ciertos permisos para acceder a volúmenes o puertos.
Por ejemplo postgres, redis, Apache, etc.
Aunque este curso no es de Administración, necesitamos dar ciertos permisos al usuario para que pueda trabajar.
Es necesario ejecutar el siguiente comando en cada uno de los proyectos que creemos durante el curso
oc adm policy add-scc-to-user anyuid -z default
NOTA: ¿Y QUE HAGO SI ESTOY USANDO DEVELOPER SANDBOX O MI PROPIO CLUSTER?
En el caso de que no puedas usar CRC y por tanto no puedas cambiar los permisos (por ejemplo si estás en Developer Sandbox), tenemos dos posibles opciones:
1- Podemos usar algunos repositorios distintos a Docker donde hay imágenes ya preparadas para Openshift.
Los principales repositorios donde podemos encontrar imagenes openshift son:
- registry.redhat.io
- quay.io
Puedes buscar en esos repositorios para encontrar la que necesitas.
Por ejemplo, si queremos la de Apache (httpd en docker hub) podemos usar las siguientes imágenes:
- quay.io/fedora/httpd-24
- registry.access.redhat.com/rhscl/httpd-24-rhel7:2.4-220
2- Podemos usar imagenes existentes dentro del propio Openshift
En el proyecto «openshift» podemos encontrar varias imágenes internas que podemos usar. Por ejemplo hay una de apache (httpd).
Ingresamos al provisioner
ssh cgi@10.0.2.244
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_openshift
export KUBECONFIG=/home/cgi/okd-install/auth/kubeconfig
Para ver estas imágenes podemos usar el comando:
oc get is -n openshift

PODS
- Esa la unidad mínima mas pequeña que se puede crear en un cluster de kubernetes

Creación de PODS
1. Con comando OC
- Primero para poder crear un pod debemos estar dentro de una projecto
# Consultamos projectos
oc get projects
# Ingresamos a uno
oc project desa1
- Ahora para crear un pod ejecutamos
oc run nombre_pods --image=nombre_imagen_base
#Ejemplo
oc run nginx1 --image=nginx
- Si al ejecuta se nos brinda el siguiente error
Error from server (Forbidden): pods «nginx1» is forbidden: violates PodSecurity «restricted:latest»: allowPrivilegeEscalation != false (container «nginx1» must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container «nginx1» must set securityContext.capabilities.drop=[«ALL»]), runAsNonRoot != true (pod or container «nginx1» must set securityContext.runAsNonRoot=true), seccompProfile (pod or container «nginx1» must set securityContext.seccompProfile.type to «RuntimeDefault» or «Localhost»)

- Es por la nota al inicio de esta guia, por tanto ejecutamos dentro del proyecto
oc adm policy add-scc-to-user anyuid -z default

- Y volvemos a ejecutar y vemos como si se creo
oc run nginx1 --image=nginx

- Y los podemos obtener
oc get pods

- Describir
oc describe pod nginx1
- Este pod lo podemos encontrar en la web en
- Cargas de Trabajo -> Pods -> Proyecto -> desa1

3. Creación Pod desde la web
- Ingresamos a Cargas de trabajo -> Pods -> Proyecto -> Crear pod

- No abre un yaml con configuración basica
- Lo borramos y pegamos el ejemplo
apiVersion: v1
kind: Pod
metadata:
name: nginx2
labels:
app: nginx-app
namespace: desa1
spec:
containers:
- name: nginx-app
image: nginx
ports:
- containerPort: 80
- Y le damos crear

- Si se crea bien dira running

3. Con archivo yaml
- Dentro del provisioner
- Creamos el archivo
nano /home/cgi/okd-install/yamlPruebas/nginx.yaml
- Le agregamos
apiVersion: v1
kind: Pod
metadata:
name: nginx-openshift
labels:
zona: prod
version: v1
annotations:
descripcion: Curso de Openshift
spec:
containers:
- name: nginx
image: nginx
- Aplicamos
oc apply -f /home/cgi/okd-install/yamlPruebas/nginx.yaml

- Y lo tenemos

Consulta Pods
1. Comando: OC Describe
- Podemos obtener la información de un pod con
oc describe pod nombre_pods
- Aquí podemos ver información importante como:
- Namespace: utilizado
- Node: nodo donde esta corriendo el pod
- ip

- Podemos observa que utiliza cri-o
- y de donde obtuvo la imagen

2. Comando: Logs de Pods
- los pods son los únicos objetos que pueden tener logs
- Por tanto el comando para verlos es
oc logs nombre_pod

3: Web
- Para consultar desde la web

- Detalles
- Cuando ingresamos vemos
- IP del host (servidor)
- IP del pod

- Métricas: vemos el consumo del pod

- El YAML

- Variables de entorno

- El log

- Eventos

- Y una terminal

Administración del pod
- Si deseamos ingresar al pod para hacer un trabajo podemos hacerlo por
1. web
- Ingresamos a cargas de trabajo -> pod -> proyecto -> pod

- Una vez dentro buscamos el tab de «terminal»

2. Comando: rsh
- Ejecutamos
oc rsh nginx1

3. Comando: exec
- Ejecutamos
oc exec -it nginx1 -- bash

POD: Creación de etiquetas
1.Web
- Ingresamos a cargas de trabajo -> pod -> proyecto -> pod -> Acciones -> Editar Etiquetas

- Y las modificamos
