UDEMY – OKD 02: PODS

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

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
  • 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