openshift_ex280_v4_10_20240629210102 Flashcards

1
Q

Cómo se limitan los recursos del deployment hello-world-nginx:v1.0 –image quay.io/redhattraining/hello-world-nginx:v1.0

minimo de recursos:
20 Mi
10m cpu

Maximo de recursos:
cpu: “80m”
memory: 100Mi

En yaml desde el atributo spec:

A

…output omitted…
spec:
containers:
- image: quay.io/redhattraining/hello-world-nginx:v1.0
name: hello-world-nginx
resources:
requests:
cpu: “10m”
memory: 20Mi
limits:
cpu: “80m”
memory: 100Mi
status: {}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cómo se observan los límites de requests y limits de los nodos

A

oc describe node NAME

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cómo se muestra el uso real de todos los pods?

A

oc adm top pods

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cómo se muestra el uso de los nodos con role worker

A

oc adm top nodes -l node-role.kubernetes.io/worker

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Recursos sobre los que una quota puede limitar en su conteo

A
Pods
Replicationcontrollers 
services
secrets 
persistentvolumeclaims
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Recursos de cómputo que una quota puede restringir por recurso

A

requests. Cpu
requests. Memory
requests. Storage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Describe la sintaxis de cuota en yaml
nombre dev-quota
servicios a 10
cpu a 1300
memoria 1.5Gi

A
apiVersion: v1
kind: ResourceQuota
metadata:
  name: dev-quota
spec:
  hard:
    services: "10"
    cpu: "1300m"
    memory: "1.5Gi"
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cómo se crea un recurso desde un archivo FILE.yaml

A

oc create –save-config -f FILE.yaml

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Cómo se crea una cuota dev-quota en cmd oc
servicios 10
cpu 1300m
memory 1.5Gi

A

oc create quota dev-quota –hard services=10,cpu=1300m,memory=1.5Gi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Cómo se obtienen las cuotas

A

oc get resourcequota

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué comando se usa en OpenShift para describir los detalles de una cuota específica llamada NAME?

A

oc describe quota NAME

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Cómo se elimina una cuota

A

oc delete resourcequota QUOTA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Como se coloca el label de un nodo ejemplo master01 etiqueta env a dev

A

oc label node master01 env=dev

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Como se sobreescribe la etiqueta env a prod del nodo master01

A

oc label node master01 env=prod –overwrite

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Como se quita la etiqueta env del nodo master01

A

oc label node master01 env-

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Como se muestran los labels del nodo master02

A

oc get node master02 –show-labels

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Como se obtienen los nodos que tienen la etiqueta env

A

oc get nodes -L env

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Como puedo obtener la relación entre machine set y nodos

A

oc get machines -n openshift-machine-api -o wide

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Como se puede editar el machineset ocp-qz7hf-worker-us-west-1b

A

oc edit machineset ocp-qz7hf-worker-us-west-1b \
> -n openshift-machine-api

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Como se coloca en el deployment llamado myapp para que este solo se coloque en los nodos con el label env dev desde yaml desde el tag spec:

A

…output omitted…
spec:
…output omitted…
template:
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: null
labels:
deployment: myapp
spec:
nodeSelector:
env: dev
containers:
- image: quay.io/redhattraining/scaling:v1.0
…output omitted…

nodeSelector:
env: dev

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Como puedes colocar el label env dev con el comando oc patch

A

[user@host ~]$ oc patch deployment myapp –patch \
> ‘{“spec”:{“template”:{“spec”:{“nodeSelector”:{“env”:”dev”}}}}}’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Como se configura el node selector para el proyecto new-project llamado demo sobre los labels tier=1 con comandos de proyecto nuevo

A

oc adm new-project demo –node-selector “tier=1”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Como se sobreescribe el selector default del proyecto demo y que utilice “tier=2”

A

oc annotate namespace demo \
> openshift.io/node-selector=”tier=2” –overwrite

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Como se escala el numero de replicas a 3 para el deployment my app

A

[user@host ~]$ oc scale –replicas 3 deployment/myapp

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Como se pueden obtener los eventos de Warning
oc get events --fields-selector type=Warning
26
Como se pueden eliminar todos los recursos de la app hello-limit
oc delete all -l app=hello-limit
27
Cómo se limitan los recursos del deployment hello-world-nginx:v1.0 --image quay.io/redhattraining/hello-world-nginx:v1.0 requests=> 20 Mi 10m cpu limits=> cpu 80m memory 100Mi En linea de comandos
oc set resources deployment hello-world-nginx --requests cpu=10m,memory=20Mi --limits cpu=80m,memory=100Mi
28
Como se crea un deployment salvando el archivo en ~/DO280/labs/schedule-limit/hello-limit.yaml. Nombre hello-limit y usar la imagen quay.io/redhattraining/hello-world-nginx:v1.0.
oc create deployment hello-limit --image quay.io/redhattraining/hello-world-nginx:v1.0 --dry-run=client -o yaml > ~/DO280/labs/schedule-limit/hello-limit.yaml
29
Como se modifica el hello-limit.yaml para agregar 3 cpu 20Mi de memoria spec: containers: - image: quay.io/redhattraining/hello-world-nginx:v1.0 name: hello-world-nginx resources: {}
Se agrega spec: containers: - image: quay.io/redhattraining/hello-world-nginx:v1.0 name: hello-world-nginx resources: requests: cpu: "3" memory: 20Mi
30
¿Qué comando se usa en OpenShift para aplicar la configuración especificada en el archivo hello-limit.yaml?
oc apply -f hello-limit.yaml
31
Como se escala a 4 deplicas el deployment hello-limit
oc scale --replicas 4 deployment/hello-limit
32
Como se especifica el label y las replicas 1 del deployment sscale en los contenedores del deployment
apiVersion: apps/v1 kind: Deployment ...output omitted... spec: replicas: 1 selector: matchLabels: deployment: scale strategy: {} template: metadata: labels: deployment: scale spec: containers: ...output omitted...
33
Como se coloca un autoscale al deployment hello minimo 1 y maximo 10 con el cpu al 80
oc autoscale deployment/hello \ > --min 1 --max 10 --cpu-percent 80
34
Como obtienes los limites y requests y los muestras del pod loadtest-5f9565dbfb-jm9md
oc describe pod/loadtest-5f9565dbfb-jm9md | \ > grep -A2 -E "Limits|Requests" Limits: cpu: 100m memory: 100Mi Requests: cpu: 25m memory: 25Mi
35
Como se obtienen los horizontal pod scalers
oc get hpa/loadtest NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS ... loadtest Deployment/loadtest 0%/50% 2 10 2 ...
36
Que significa hpa
Horizontal Pod Scaler
37
Que significa SDN
Openshift Software-defined networking
38
Cuales son los 5 requerimientos que satisface el SDN
Manejar tráfico de red programática mente Manejar comunicación entre contenedores del mismo proyecto Manejar comunicación entre pods del mismo u otro proyecto Manejar comunicación se un pod a un servicio Manejar comunicación entre una red externa a servicio o de contenedores a redes externas
39
Que es CNI
Container network interface
40
Como se crea un recurso desde un archivo todo.yaml
oc create -f todo.yaml
41
Como se copia un archivo llamado test.txt dentro del pod mypod a la ruta /tmp
oc cp test.txt mypod:/tmp
42
Como nos firmamos por ssh al pod mysql-73 con bash mysql-73-bdhfo1h-hhdj
oc rsh mysql-73-bdhfo1h-hhdj /bin/bash
43
Como se expone el servicio de la app frontend en el hostname todo.apps.ocp4.example.com
oc expose service/frontend --hostname todo.apps.ocp4.example.com
44
Como se validan los servicios expuestos
oc get routes
45
Como se ven los logs del pod frontend para corregir el problema de red
oc logs PODNAME
46
Como obtener ip de cluster del servicio frontend usando jsonpath
oc get service/frontend -o jsonpath=“{.spec.clusterIP}{‘\n’}”
47
Como se hace crea una imagen de debug del deployment MySQL imagen registry.access.redhat.com/ubi8/ubi:8.0
oc debug -t deployment/mysql --image registry.access.redhat.com/ubi8/ubi:8.0
48
Como se hace la validación de aplicación por curl al puerto 8080
curl -m 10 -v http://clusterIP:8080
49
Como nos conectamos a un pod por su ip privada
oc get pods -o wide -l name=frontend debug pod -t deployment/ MySQL --image registry example
50
Como se obtienen los servicios
oc get svc
51
Como podemos ver la información del servicio frontend
oc describe svc/frontend
52
Como se ve la información de Labels y una linea posterior de despliegue
oc describe deployment/frontend | grep Labels -A1
53
Como se edita un servicio
oc edit svc/frontend
54
Como se modifica el selector name de un servicio
oc edit svc/frontend
55
Proceso completo para troubleshooting de red
1. Crear deployments frontend/mysql y servicios 2. Obtener logs de pod de app 3. Obtener ip de mysql, debug a pod frontend, curl a mysql service 4. Obtener ip de frontend, debug a pod mysql, curl a frontend 5. Obtener ip interna de frontend, debug a pod mysql, curl a ipinterna y puerto interno. 6. Describir servicio de frontend para mostrar el selector, endpoints 7. Editar servicio frontend y cambiar selector por el correcto 8. Prueba de url de servicio frontend
56
Estructura de servicio en yaml
kind: service apiVersion: v1 metadata: name: application-frontend labels: app: frontend-svc spec: ports: - name: HTTP protocol: TCP port: 443 targetPort: 8443 selector: app: shopping-cart name: frontend type:ClusterIP
57
Como se muestra el operador de dns
oc describe DNS.operator/default
58
Cuales son los servicios que DNS resuelve
A para servicios SRV port
59
Como obtener el cluster domain e ip
oc describe dns.operator/default Status: Cluster Domain: cluster.local Cluster IP: 172.30.0.10
60
Como te puedes firmar al pod por ssh example-6c4984d949-7m26r
oc rsh example-6c4984d949-7m26r \ > curl hello.test.svc.cluster.local:8080
61
Que estructura de servicio crea CoreDNS por defecto
_port-name._port-protocol.svc-name.namespace.svc.cluster-domain.cluster-domain. Ejemplo _443-tcp._tcp.https.frontend.svc.cluster.local.
62
Que es OVN kubernetes
Open Virtual Network para kubernetes
63
Openshift SDN OVN-kubernetes Kuryr son ejemplos de
default network providers
64
Como se obtiene la configuracion del network cluster en yaml
oc get network/cluster -o yaml apiVersion: config.openshift.io/v1 kind: Network ...output omitted... spec: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 externalIP: policy: {} networkType: OpenshiftSDN serviceNetwork: - 172.30.0.0/16 ...output omitted...
65
Que es CIDR
Classless Inter-Domain Routing
66
Como se diagnostica un error de red en dos pods frontend y mysql
oc expose service frontend --hostname todo.apps.ocp4.example.com oc get routes ------------------------------------------ ver logs oc logs frontend-57b8b445df-f56qh App is ready at : 8080 ------------------------------------------ Obtener IP de mysql oc get service/mysql -o jsonpath="{.spec.clusterIP}{'\n'}" Crear debug pod desde frontend app oc debug -t deployment/frontend Telnet hacia mysql curl -v telnet://172.30.103.29:3306 ------------------------------------------ Obtener ip de frontend service oc get service/frontend -o jsonpath="{.spec.clusterIP}{'\n'}" Crear pod debug de mysql oc debug -t deployment/mysql --image registry.access.redhat.com/ubi8/ubi:8.4 curl hacia aplicacion frontend curl -m 10 -v http://172.30.23.147:8080 * Rebuilt URL to: http://172.30.23.147:8080/ * Trying 172.30.23.147... * TCP_NODELAY set * Connection timed out after 10000 milliseconds * Closing connection 0 curl: (28) Connection timed out after 10000 milliseconds ------------------------------------------ Como obtener la ip privada de la app frontend para comprobar si el servicio esta abajo o es solo la red oc get pods -o wide -l name=frontend NAME READY STATUS RESTARTS AGE IP ... frontend-57b8b445df-f56qh 1/1 Running 0 39m 10.128.2.61 ... oc debug -t deployment/mysql --image registry.access.redhat.com/ubi8/ubi:8.4 curl -v http://10.128.2.61:8080/todo * Trying 10.128.2.61... * TCP_NODELAY set * Connected to 10.128.2.61 (10.128.2.61) port 8080 (#0) > GET /todo/ HTTP/1.1 > Host: 10.128.2.61:8080 > User-Agent: curl/7.61.1 > Accept: / >< HTTP/1.1 200 OK ...output omitted... Comprobar configuracion de frontsend service oc get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend ClusterIP 172.30.23.147 8080/TCP 93m mysql ClusterIP 172.30.103.29 3306/TCP 93m [student@workstation network-sdn]$ oc describe svc/frontend Name: frontend Namespace: network-sdn Labels: app=todonodejs name=frontend Annotations: Selector: name=api Type: ClusterIP IP: 172.30.23.147 Port: 8080/TCP TargetPort: 8080/TCP Endpoints: Session Affinity: None Events: oc describe deployment/frontend | \ > grep -A1 Labels Labels: app=todonodejs name=frontend -- Labels: app=todonodejs name=frontend oc edit svc/frontend [student@workstation network-sdn]$ oc describe svc/frontend Name: frontend Namespace: network-sdn Labels: app=todonodejs name=frontend Annotations: Selector: name=frontend Type: ClusterIP IP: 172.30.169.113 Port: 8080/TCP TargetPort: 8080/TCP Endpoints: 10.128.2.61:8080 Session Affinity: None Events:
67
Como se forma un yaml de una ruta
kind: Route apiVersion: route.openshift.io/v1 metadata: name: a-simple-route 1 labels: 2 app: API name: api-frontend spec: host: api.apps.acme.com 3 to: kind: Service name: api-frontend 4 port: 5 targetPort: 8443
68
Como se genera una ruta del servicio api-frontend con hostname api.apps.acme.com key api.key y cert
oc create route edge \ > --service api-frontend --hostname api.apps.acme.com \ > --key api.key --cert api.crt
69
Como se establece un certificado mountado desde un volumen en modo lectura
volumeMount: - name: tls-certs readOnly: true mountPath: /usr/local/etc/ssl/ssl - volumes: - name: tls_certs - secret: - secretName:
70
Con que role debe de ejecutarse la SSCs
cluster-admin
71
Para que sirve sccs (security context constraints)
Limitar acceso de pods corriendo ``` Pods privilegiados Solicitar capacidades extra de contenedores Usar directorios de host como volúmenes Cambiar selinux de contenedor Cambiar id de usuario ```
72
Cuales son los 8 scc que provee openshift
hostaccess hostmount-anyuid hostnetwork node-exporter anyuid nonroot provileged restricted
73
Como se puede obtener más información de un sccs
oc describe scc anyuid
74
Cómo se puede obtener los scc de un pod
oc describe pod console-5abcd -n project |grep scc openshift.io/scc: restricted
75
oc get pod podname -o yaml | oc adm policy scc-subject-review -f -
Oc get modules
76
Listar los security context constraints que requiere el pod test para funcionar
oc get pod test -o yaml| oc adm policy scc-subject-review -f -
77
Que significa scc
Security context constraints
78
Como se agrega un contexto de seguridad a una cuenta de servicio
oc adm policy add-scc-to-user SCC -z serviceAccount
79
Como se puede corregir el scc del pod test usando el service account sa-test para el deployment test-app
oc get pod/test-app -o yaml| oc adm policy scc-subject-review -f - oc create serviceaccount sa-test oc adm policy add-scc-to-user anyuid -z sa-test oc set serviceaccount deployment/test-app sa-test
80
Como se crea el secreto test desde una literal con la llave key1 y value1
oc create secret generic test --from-literal key1=value1
81
Como se crea la aplicación httpd con variables de ambiente ejemplo base de datos bd=db1 y instance=inst1 con la imagen httpd:2.2
oc new-app --name httpd -e bd=bd1 -e instance=inst1 httpd:2.2
82
Como se crea secreto de llaves de ssh TEST desde los dos archivos /tmp/id_rsa y /tmp/id_rsa.pub de rsa
oc create secret generic TEST --from-file id_rsa=/tmp/id_rsa --from-file id_rsa.pub=/tmp/id_rsa.pub
83
Como se crea un secreto tls TESTTLS desde el cert /tmp/certificate y el key /tmp/key
oc create secret tls TESTTLS --cert /tmp/certificate --key /tmp/key
84
Como se crea un secreto DEMO-SECRET desde literal root_password=zT1KTgk user=demo-user Como se coloca en el deployment config la referencia hacia el
oc create secret generic DEMO-SECRET --from-literal user=demo-user --from-literal root_password=zT1KTgk Se hace referencia al secreto desde el deployment config env: - name: MYROOTPASS valueFrom: secretKeyRef: name: demo-secret key: root_password
85
Como puedes setear variables de ambiente de pod MYSQL usando el secreto demo-secret con key root_password en forma de yaml (edit)
oc edit env: - name: MYSQL valueFrom: secretKeyRef: name: demo-secret key: root_password
86
Como se agregan las variables de ambiente con environment env comando desde un secreto para un despliegue
oc set env deployment/demo --from secret/demo-secret —prefix MYSQL_
87
Como se cargan variables de ambiente desde un deployment config test
oc set env dc/mysql --prefix MYSQL_ --from test
88
Como se puede montar un secreto como un filesystem demo-secret en ruta /app-secrets deployment demo
``` oc set volume deployment/demo —add —type secret —secret-name demo-secret —mount-path /app-secrets ```
89
Como se crea un config map test con llave key1 igual a value1
oc create configmap test —from-literal key1=value1
90
Como se modifica un config map y secreto test
oc extract secret/test -n openshift-config --to /tmp --confirm oc set data secret/test-n openshift-config --from-file htpasswd=/tmp/htpasswd
91
Cual es la diferencia de un config map y un secreto
Secreto se encripta el Config map no
92
Como se actualiza el secret test desde el archivo /tmp/htpasswd
oc set data secret/test -n openshift-config --from-file /tmp/htpasswd
93
Como se crea una ruta y como se consume del aplicativo para ver las variables
oc expose service quotes —hostname quotes.apps.ocp4.example.com oc get routes Curl -v quotes.apps.ocp4.example.com
94
Como se coloca ambiente para un deployment configuration
oc set env dc/MySQL --prefix MYSQL_ --from secret/name
95
Como se crea un config map test desde el archivo /tmp/testconfig
oc create configmap NAME —from-file=/tmp/testconfig
96
Como se obtienen los config maps
oc get configmaps
97
Significado de user, identify, service account, group, role
User es identidad que interactúa con el API de openshift | Identity mantiene el registro de autenticaciones de usuario 1 a 1 connu
98
Como se administran los cluster-roles
oc adm policy add-cluster-role-to-user remove-cluster-role-from-user who can
99
Cuales son los Roles de default
admin basic-user cluster-admin cluster-status edit self-provisioner view
100
Como se crea una alternativa para los roles de default (modo correcto de uso)
Export role | Import role con otro usuario
101
Explica todos los roles
admin puede manejar todos los proyectos y dar acceso basic-user read project cluster-admin súper user access to cluster resources full control to projects cluster-status get cluster status edit manejar aplicaciones pero no manejar recursos self-provisioner crear proyectos - cluster role/not a project role view can view project resources but can’t modify
102
Como se quita un cluster role de un usuario
oc adm policy remove-cluster-role-from-user ROLE USER
103
Como se válida que usuarios tiene permisos de eliminar
oc adm policy who-can delete user
104
Como se que usuarios puede obtener que usuarios pueden obtener pods
oc adm policy whocan get pods
105
Como se agrega el role basic-user al usuario test en el proyecto basic-project
oc policy add-role-to-user basic-user test -n basic-project
106
Como se elimina un role de un usuario
oc policy remove-role-from-user role user
107
Como se obtienen los cluster role bindings
oc get clusterrolebinding -o wide
108
Como se elimina el permiso de crear projects de todos los usuarios quienes no sean cluster administrators
oc describe clusterrolebinding self-provisioners oc adm policy remove-cluster-from-group self-provisioner system:authentication:oauth Ejecutar de nuevo para validar que ya no esté
109
Como se da el role de admin a leader
oc policy add-role-to-user admin leader
110
Como se agrega y crea un grupo
oc adm groups new-group dev-group developer oc adm groups new-group Aquino-group oc get groups
111
Como se asigna la política a grupo
oc policy groups add-role-to-group edit groupNAME
112
Como se obtienen los role bindings
oc get role bindings -o wide
113
Como se hace deploy de app httpd:2.4
oc new-app —name httpd httpd:2.4
114
Como se agrega el | Role Edit al grupo qa-engineer
oc policy add-role-to-group edit qa-engenieer
115
Como se escala un aplicativo
oc scale deployment httpd —replicas=3
116
Agregar system authentication de self-provider
oc adm policy add-cluster-role-to-group self-provider “system:authenticated:oauth”
117
Como se quita del role self-provisioner de todos los usuario autenticados y asignar sólo a grupo managers
oc policy remove-cluster-role-from-group self-provisioner “system:authenticated:oauth” oc policy add-cluster-role-to-group self-provisioner managers
118
Como se agrega un usuario a un grupo
oc adm groups add-users GROUP USER
119
Como agregar role edit a grupo developers
oc policy add-role-to-group edit developers
120
Como se agrega el cluster role al usuario test
oc adm policy add-cluster-role-to-user cluster-role test
121
Como eliminar el cluster role al usuario test
oc adm policy remove-cluster-role-from-user cluster-role test
122
Como se puede obtener que usuarios tienen permiso para eliminar usuario
oc adm policy who-can delete user
123
Como se agrega el cluster role self-provisioner con el nombre role binding self-provisioners al grupo system:authenticated:oauth
oc adm policy add-cluster-role-to-group \ > --rolebinding-name self-provisioners \ > self-provisioner system:authenticated:oauth Warning: Group 'system:authenticated:oauth' not found clusterrole.rbac.authorization.k8s.io/self-provisioner added: "system:authenticated:oauth"
124
Como se obtienen las clases de storage
oc get storageclass
125
Como se crea un volumen persistente en un contenedor
``` oc set volumes deployment/APP —add —name storage-name —type pvc —claim-class nfs-storage —claim-mode rwo —claim-size 10Gi —mount-path /var/log —claim-name storage-name ```
126
Como | Muestras la información de los discos persistentes
pvc NAME status volume capacity access modes storageclass age ``` pv NAME capacity access modes reclaimpolicy status claim storageclass reason age ```
127
Como se elimina todo del aplicativo MYAPP
oc delete all -l app=MYAPP
128
Como se elimina un claim de storage persistente
oc delete pvc NAME
129
Como se obtiene el estado de los | Nodos
oc get nodes
130
Como se obtiene los procesos de los nodos
oc adm top nodes
131
Como se ven los recursos de los nodos
oc adm top nodes NAME CPu CPU% Memory memory%
132
Como se ve la información de un nodo en particular
oc describe node NAME
133
Como se muestra la | Información de la versión de cluster
oc describe clusterversion
134
como se obtiene los operadores de | Cluster
oc get clusteroperators
135
Como se obtiene la versión de un operador de cluster
oc get clusteroperators
136
Como se ven los logs de un nodo particular con un usuario particular
oc adm node-logs -u USER NAME
137
Cual es el usuario del servicio cri-o
crio
138
Cual es el usuario del servicio kubelet
kubelet
139
Como se ven los logs de systemd unit
Se usa el usuario crio oc adm node-logs -u crio NAME
140
Como mostrar completamente el log de journal
oc adm node-logs NAME
141
Como se puede entrar a un nodo
oc debug NODE
142
Como se eleva a root los permisos de un comando en un despliegue myapp
oc debug deployment/myapp —as-root
143
Como se obtiene el log de un pod con traza 10
oc get pod —loglevel 10
144
Como se obtiene el usuario con que se ejecuta el comando
oc whoami
145
Como se obtiene el token con que se ejecuta un comando desde curl
oc whoami -t
146
Como se analiza el pod openshift-image-registry
oc get pod -n openshift-image-registry
147
Como se diagnostica un pod que tiene mal la imagen y se ve el estado de los servicios crio-o y kubelet
oc get events oc get nodes ``` oc debug NODE —as-root chroot /home systemctl status cri-o systemctl status kubelet crictl ps —name openvswitch ``` exit oc project NAME oc get pods oc get events oc debug node/PODNAME oc status oc get deployments skopeo inspect docker://url/tag:999 ``` oc edit deployment/NAME Go to image Corregir nombre y guardar oc get pods oc status ```
148
Características de openshift
``` Red Hat OpenShift Container Platform Red Hat OpenShift Dedicated Red Hat OpenShift Online Red Hat OpenShift Kubernetes Engine Red Hat Code Ready Containers ```
149
Capas de openshift
Container Self Service Service catalog Build automation. Deployment automation Application lifecycle (CI/CD) Container orchestation y cluster management Networking storage registry logs/metrics Security Container runtime and packaging Linux Physical virtual prívate public
150
Como se verifica si hay certificados por aprobar
oc get csr
151
Como verificar si uno de los cluster operators no están disponibles o degradados o progresando configuración o desplegando pods
oc get clusteroperators
152
Cual es el | Sistema operativo de los contenedores en openshift
Redhat enterprise Linux CoreOS
153
Cual es el motor
CRI-O
154
Cual es el orquestador de contenedor de código abierto
kubernetes
155
Componentes de Openshift
CoreOS Motor CRI-O Kubernetes Consola web de autoservicio Una cantidad de servicios de aplicaciones preinstalados Imágenes de contenedores certificadas para tiempos de ejecución, bases de datos y otros paquetes de varios lenguajes
156
Cuales son los nodos de tipo maestro
``` kube-apiserver Kube-controller-manager kube-scheduller etcd kubelet cri-o ```
157
Cuales son los pods regulares
openshift-apiserver Openshift-controller-manager coredns Openshift oauth 0 auth
158
procesos de systemd de openshift
kubelet | cri-o
159
Que servicio administra conjuntos de pod estáticos y ciclo de vida de los pods
kubelet
160
Que componente se encarga de replicar los pods y asegurarse que estén replicados
Replication controller
161
Para que es el control plane
management y control of our cluster
162
Proceso principal de Runtime
cri-o
163
Que es lo que hace el kube-apiserver
Proxy API requests
164
Explica cada característica de openshift
Redhat openshift container platform Enterprise ready kubernetes you decide when it updates Redhat openshift dedicated Cuando openshift está proveído por otro producto Redhat openshift online pequeños proyectos para un onboard Andrés de ir a un cluster en. Clud Redhat openshift kubernetes engine Redhat code ready container Para instalar en laptop limitado
165
Como se llama el servicio de kubernetes en el contenedor
kubelet
166
Que es etcd
Database in a service of a cointainer
167
Proceso de instalación de un cluster de openshift
1. Bootstrap machine boots start the remote resources required for booting the control plane machines 2. The control plane fetch the remote resources from the bootstrap machine and finish booting 3. The control machines form an Etcd cluster 4. The boostrap machine stars a temporary kubernetes control using the newly created etcd cluster 5. The temporary control plane schedules the control plane machines 6. The temporary control plane shutdown yields to the control plane 7. boostrap node injects components specific to openshift into the control plane. 8. -the installation tears down the bootstrap machine
168
Cuales son las customizationes que pueden hacer en openshift
Defining custom storage clases for dynamic storage provisioning Changing the custom resource Adding new operadorators to cluster Defining new machine sets
169
Como obtener el estado de los nodos
oc get nodes
170
Cómo se crea un archivo de password htpasswd en ruta /tmp/htpasswd user redhat y password redhat123 con bcrypt
htpasswd -c -B -b /FILE.txt user pass
171
Cómo se crea un secreto desde un archivo htpasswd
oc create secret generic NAME —from-file htpasswd=/FILE.txt -n NameProject
172
Cómo se asigna un role de cluster a un usuario
oc adm policy add-cluster-role-to-user ROLE USER
173
Cómo se obtiene la configuración de oauth
oc get oauth cluster -o yaml>oauth.yaml
174
Cual es la estructura de un identity provider htpasswd en yaml
apiVersion: config.openshift.io/v1 kind: OAuth metadata: name: cluster spec: identityProviders: - name: my_htpasswd_provider mappingMethod: claim type: HTPasswd htpasswd: fileData: name: htpasswd-secret
175
Cual es el role de administrador de cluster
cluster-admin
176
Como se remplaza la configuración de oauth desde un archivo
oc get oauth cluster -o yaml > oauth.yaml se edita el archivo oc replace -f /PATH/oauth.yaml Se obtienen los pods Se intenta firmar con el nuevo usuario
177
como se obtienen los usuarios del proyecto
oc get users
178
Como se extrae el usuario manager del identity provider localusers ya existente y se cambia el password por uno aleatorio de 15 caracteres
oc extract secret/localusers -n openshift-config --to /tmp/htpasswd --confirm MANAGER_PASSWD=$(openssl rand -hex 15) htpassd -b /tmp/htpasswd manager manager $MANAGER_PASSWD oc set data secret/localusers --from-file htpasswd=/tmp/htpasswd -n openshift-config
179
Como se obtienen los usuarios
oc get users
180
Como se ven las identidades de un usuario
oc get users oc get identity
181
Como se extrae el password del usuario manager colocar password redhat y actualizar obtener pods para ver el estado desde el archivo /tmp/htpasswd
oc extract secret/manager -n openshift-config —to /tmp/htpasswd —confirm htpasswd -b /tmp/htpasswd admin redhat oc set data secret/manager —from-file htpasswd=/tmp/htpasswd oc get pods -n openshift-authentication
182
Como se actualiza el secreto manager desde un archivo htpasswd
oc set data secret/manager --from-file htpasswd=/tmp/htpasswd -n openshift-config
183
Genera un password aleatorio y asígnalo a usuario manager existente
oc extract secret/localusers -n openshift-config --to /tmp/htpasswd --confirm MANAGER_PASSWD=$(openssl rand -hex 15) htpasswd -b /tmp/htpasswd manager ${MANAGER_PASSWD} oc set data secret/localusers —from-file htpasswd=/tmp/htpasswd -n openshift-config
184
Cómo Eliminar usuario manager
eliminar password oc extract secret/localusers --to /tmp/htpasswd --confirm htpasswd -D /tmp/htpasswd manager oc set data secret/localusers --from-file /tmp/htpasswd --confirm -n openshift-config Eliminar identidad oc delete identity my users:manager Eliminar usuario oc delete user manager
185
Como eliminar proyecto test
oc delete project test
186
Como | Se elimina el identity provider
oc edit oauth Eliminar todo de ``` spec: identityProvider: - htpasswd: fileData: name: localusers mappingMethod: claim name: myusers type: HTPasswd ``` Por spec: {}
187
Como se elimina un secreto
oc delete secret NAME -n openshift-config
188
Como se eliminan todos los usuarios
oc delete user --all
189
Como eliminar todos las identidades
oc delete identity --all
190
Cual es la variable que se usa para usar un archivo de configuración para usar comandos administrativos de openshift sin autenticarse
export KUBECONFIG=/home/user/auth/kubeconfig
191
Alternativa para especificar un archivo de configuración de openshift sin usar la variable KUBECONFIG obteniendo los nodos
oc --kubeconfig /home/user/auth/kubeconfig get nodes
192
cual es el virtual user que se crea automaticamente al instalar openshift
kubeadmin
193
Como puedes evitar que el usuario kubeadmin siga funcionando
Eliminando las credenciales del usuario oc delete secret kubeadmin -n kube-system
194
Antes de eliminar las credenciales del usuario kubeadmin que role debe tener un usuario administrativo para poder funcionar como lo haría el kubeadmin
cluster-admin
195
Cual es el virtual user y grupo virtual que se asigna si no te autenticas al interactuar con el autenticación layer de openshift
system:anonymous virtual user and the system:unauthenticated virtual group
196
Como se elimina la credencial del usuario student del archivo /tmp/htpasswd
htpasswd -D /tmp/htpasswd student
197
Como se puede crear el secreto con el archivo /tmp/htpasswd con el nombre htpasswd-secret
oc create secret generic htpasswd-secret \ > --from-file htpasswd=/tmp/htpasswd -n openshift-config
198
Como se extrae el secreto htpasswd-secret a tmp en el archivo /tmp/htpasswd
oc extract secret/htpasswd-secret -n openshift-config \ > --to /tmp/ --confirm /tmp/htpasswd
199
Como se actualiza el archivo htpasswd del secreto htpasswd-secret desde /tmp/htpasswd
oc set data secret/htpasswd-secret \ > --from-file htpasswd=/tmp/htpasswd -n openshift-config
200
Como puedes ver los pods de autenticación
watch oc get pods -n openshift-authentication
201
Como se elimina el usuario manager
oc delete user manager
202
Como se elimina la identidad del usuario manager
oc get identities | grep manager oc delete identity my_htpasswd_provider:manager
203
Como se le pueda dar permisos de administrador de cluster al usuario
oc adm policy add-cluster-role-to-user cluster-admin student
204
Cual es el algoritmo que usa htpasswd por defecto si no se mandan banderas al comando
MD5 hashing algorithm
205
Como se extrae el secreto localusers y se imprime a pantalla
oc extract secret/localusers -n openshift-config --to -
206
Cómo se loggea
oc login -u admin -p pass URL
207
Cómo obtienes la versión del cluster
oc get clusterversion | oc describe clusterversion
208
Cómo obtienes los nodos del cluster
oc get nodes
209
Cómo puedes ver el log de un pod
oc logs POD
210
Cómo puedes acceder a un nodo como root
oc debug -t node —as-root
211
Cómo se llama el servicio que administra los contenedores
Kubelet
212
Cómo se válida el servicio de kubelet de un nodo como root
oc debug -t node --as-root chroot /host systemctl status kubelet
213
Cómo se válida el servicio cri-o de contenedores como root
oc debug -t node--as-root chroot /host systemctl status cri-o crictl ps —name etcd
214
Cómo se edita la configuración de despliegue de la aplicaciones
oc edit deployment/NAME
215
Cómo se obtienen los operadores del cluster
oc get clusteroperators
216
Cómo se ven los logs de los nodos
oc adm node-logs -u kubeadmin NODE
217
Cual es el usuario administrador default del cluster en openshift
kubeadmin
218
Cómo se obtienen los procesos y su uso en tiempo real en los nodos
oc get nodes | oc adm top node -l NAME
219
Cómo se crea un proyecto nuevo
oc create project NAME
220
Cómo se selecciona el proyecto en el cual trabajarás
oc project NAME
221
Cómo se obtienen los Contenedores
oc get pods
222
Cómo se obtienen el estado de los despliegues
oc status
223
Cómo se obtienen los eventos de un pod
oc get events
224
Cómo se obtienen los eventos de un contenedor
oc get events
225
Como puedes ver los logs de un contenedor
oc logs pod -c container
226
Como puedes ver los logs de un pod del contenedor anterior
oc logs pod --previous
227
Como se obtienen los operadores
oc get clusteroperators
228
Como se obtiene información del cluster
oc cluster-info
229
como se obtienen las versiones de las apis soportadas
oc api-versions
230
Como se obtienen las versiones de los recursos api
oc api-resources
231
3 Banderas de api-resources
--namespaced=true --sort-by=name --api-group=apps
232
Como se obtiene la version del cluster
oc get clusterversion
233
Como se obtiene el estado actual de un proyecto
oc status
234
Como se obtiene un recurso
oc get resource NAME
235
Como puedes ver el consumo de los nodos
oc adm top node
236
Como puedes ver las banderas de consumo de un nodo
oc describe node NAME
237
Como se puede diagnosticar un operador
oc projects oc get pods -n project-name oc logs podname -n project-name oc describe pod -n project-name
238
Como se obtienen los storageclass
oc get storageclass
239
Como se establece el volumen dinámicamente al despliegue example-application usando el nombre example-pv-storage con nfs-storage class modo río tamaño 15Gi en la ruta /var/lib/example-app claim name example-pv-claim
oc set volumes deployment/example-application --add --name example-pv-storage --type pvc --claim-class nfs-storage --claim-mode rwo --claim-size 15Gi --mount-path /var/lib/example-app --claim-name example-pv-claim
240
Cuales son los access modes de un persistent volume claim
ReadWriteMany RWX Kubernetes can mount the volume as read-write on many nodes. ReadOnlyMany ROX Kubernetes can mount the volume as read-only on many nodes. ReadWriteOnce RWO Kubernetes can mount the volume as read-write on only a single node
241
Como se elimina un persistent volume claim
oc delete pvc/example-pvc-storage
242
Como se crea la app postgresql-persistent con la imagen registry.redhat.io/rhel8/postgresql-13:1-7 usuario redhat password redhat123 database persistentdb
oc new-app --name postgresql-persistent \ > --image registry.redhat.io/rhel8/postgresql-13:1-7 \ > -e POSTGRESQL_USER=redhat \ > -e POSTGRESQL_PASSWORD=redhat123 \ > -e POSTGRESQL_DATABASE=persistentdb
243
Como se asigna el disco ya existente de postgresql-storage al deployment postgresql-persistent2 con name postgresql-storage
oc set volumes \ deployment/postgresql-persistent2 \ --add --name postgresql-storage --type pvc \ --claim-name postgresql-storage --mount-path /var/lib/pgsql
244
Como se elimina el pvc postgresql-storage
oc delete pvc/postgresql-storage
245
Como se instala el parche por cmd para el canal fast-4.10
oc patch clusterversion version --type="merge" \ > --patch '{"spec":{"channel":"fast-4.10"}}' clusterversion.config.openshift.io/version patched
246
Que significa OTA
Over The Air
247
Cuales son los channels de un update
Candidate Fast Stable EUS
248
Como se obtiene la version del cluster
oc get clusterversion
249
Como se obtiene el canal de update del cluster
oc get clusterversion -o jsonpath='{.items[0].spec.channel}{"\n"}' stable-4.10
250
Como se ven las versiones a las que se puede dar upgrade
oc adm upgrade
251
Como se actualiza a la ultima version disponible para el cluster
oc adm upgrade --to-latest=true
252
Como se actualiza a una version particular del cluster
oc adm upgrade --to=VERSION
253
Como tengo que hacer aknowladge para instalacion del parche ack-4.8-kube-1.22-api-removals-in-4.9
oc patch configmap admin-acks -n openshift-config \ --type=merge \ --patch '{"data":{"ack-4.8-kube-1.22-api-removals-in-4.9":"true"}}'
254
Como puedo ver el estado del upgrade en CVO
[user@host ~]$ oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.10.3 True True 30m Working towards 4.10.4 ... [user@host ~]$ oc get clusteroperators NAME VERSION AVAILABLE PROGRESSING DEGRADED authentication 4.10.3 True False False cloud-credential 4.10.4 False True False openshift-apiserver 4.10.4 True False True ...output omitted...
255
Que es CVO
Cluster Version Operator
256
Como se puede ver la historia de los parches instalados
oc describe clusterversion
257
Como se actualza el cluster desde la consola web
The Administration → Cluster Settings page displays an Update Status of Available updates when a new update is available. From this page, click Update now
258
Como se obtie el link de la consola web desde cmd
oc whoami --show-console https://console-openshift-console.apps.cluster.example.com
259
Como se encuentran los resources
Home → Search resource types and a label selector field
260
Como se obtienen los pods
Home → Search resource types and a label selector field pod
261
Como se crean los usuarios y grupos
User Management → Users web UI, locate the secret in the openshift-config project and then click Actions → Edit Secret. The Edit Key/Value Secret tool handles the base64 encoding for you. Add a line to allow a new user to log in to OpenShift The User Management → Groups page displays existing groups, and provides the ability to create new groups.
262
Como se crea un proyecto
Navigate to the Home → Projects page to display the full list of projects. Then click Create Project and complete the form to create a new project. After you have created your new project, you can navigate to the Role Bindings tab on the project details page. Red Hat recommends that administrators responsible for multitenant clusters configure resource quotas and limit ranges, which enforce total project limits and container limits, respectively. Navigate to either Administration → Resource Quotas or Administration → Limit Ranges to access the appropriate YAML editor, where you can configure these limits.