Cuestionario de introducción a Kubernetes
Este cuestionario evalúa tu comprensión de los conceptos básicos, la arquitectura y las características de Kubernetes.
Preguntas de opción múltiple
- ¿Qué significa el nombre Kubernetes en griego?
- A) Capitán
- B) Timonel o Piloto
- C) Contenedor
- D) Administrador
Mostrar respuesta
Respuesta: B) Timonel o Piloto
Explicación: Kubernetes significa 'timonel' o 'piloto' en griego, lo que simboliza su función de guiar aplicaciones en contenedores.
- ¿Cuál de los siguientes NO es un componente del control plane de Kubernetes?
- A) kube-apiserver
- B) etcd
- C) kubelet
- D) kube-scheduler
Mostrar respuesta
Respuesta: C) kubelet
Explicación: kubelet es un agente que se ejecuta en cada node y no es un componente del control plane.
- ¿Cuál es la unidad desplegable más pequeña en Kubernetes?
- A) Container
- B) Pod
- C) Deployment
- D) Service
Mostrar respuesta
Respuesta: B) Pod
Explicación: Un Pod es la unidad desplegable más pequeña en Kubernetes.
- ¿Cuál de los siguientes NO es un tipo de Service de Kubernetes?
- A) ClusterIP
- B) NodePort
- C) LoadBalancer
- D) ExternalProxy
Mostrar respuesta
Respuesta: D) ExternalProxy
Explicación: Los tipos de Service incluyen ClusterIP, NodePort, LoadBalancer y ExternalName.
- ¿Qué recurso administra el número de réplicas de Pod?
- A) Service
- B) ConfigMap
- C) ReplicaSet
- D) Namespace
Mostrar respuesta
Respuesta: C) ReplicaSet
Explicación: ReplicaSet garantiza que siempre se ejecute un número especificado de réplicas de Pod.
- ¿Qué recurso de workload está diseñado para aplicaciones con estado?
- A) Deployment
- B) StatefulSet
- C) DaemonSet
- D) Job
Mostrar respuesta
Respuesta: B) StatefulSet
Explicación: StatefulSet proporciona identificadores únicos y almacenamiento persistente para aplicaciones con estado.
- ¿Qué recurso garantiza que un Pod se ejecute en todos los nodes?
- A) Deployment
- B) StatefulSet
- C) DaemonSet
- D) CronJob
Mostrar respuesta
Respuesta: C) DaemonSet
Explicación: DaemonSet garantiza que una copia de un Pod se ejecute en todos los nodes (o en nodes específicos).
- ¿Qué recurso ejecuta tareas periódicamente según una programación?
- A) Job
- B) CronJob
- C) Deployment
- D) ReplicaSet
Mostrar respuesta
Respuesta: B) CronJob
Explicación: CronJob ejecuta Jobs periódicamente según una programación especificada.
- ¿Qué proporciona aislamiento de recursos dentro de un cluster?
- A) Label
- B) Annotation
- C) Namespace
- D) ConfigMap
Mostrar respuesta
Respuesta: C) Namespace
Explicación: Namespace proporciona una forma de aislar grupos de recursos dentro de un único cluster.
- ¿Cuál NO es una diferencia clave entre EKS y Kubernetes autogestionado?
- A) Gestión del control plane
- B) API principal de Kubernetes
- C) Configuración de alta disponibilidad
- D) Aplicación de parches de seguridad
Mostrar respuesta
Respuesta: B) API principal de Kubernetes
Explicación: Ambos usan la misma API estándar de Kubernetes.
Preguntas de respuesta corta
- ¿Qué almacén clave-valor guarda todos los datos del cluster?
Mostrar respuesta
Respuesta: etcd
- ¿Qué componente selecciona un node para los Pods recién creados?
Mostrar respuesta
Respuesta: kube-scheduler
- ¿Qué tipo de volumen temporal se elimina cuando se elimina el Pod?
Mostrar respuesta
Respuesta: emptyDir
- ¿Qué objeto almacena datos de configuración en formato clave-valor?
Mostrar respuesta
Respuesta: ConfigMap
- ¿Qué objeto almacena información sensible como contraseñas?
Mostrar respuesta
Respuesta: Secret
Preguntas prácticas
- Escribe un YAML de Deployment para nginx con 3 réplicas.
Mostrar respuesta
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80- Escribe un YAML de Service LoadBalancer.
Mostrar respuesta
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
app: nginx- Escribe un YAML de ConfigMap con DATABASE_URL y LOG_LEVEL.
Mostrar respuesta
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
DATABASE_URL: "mysql://localhost:3306/db"
LOG_LEVEL: "INFO"Preguntas avanzadas
- Escribe un Role/RoleBinding de RBAC para conceder acceso de lectura a pods.
Mostrar respuesta
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: development
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: development
subjects:
- kind: User
name: jane
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io- Escribe una NetworkPolicy que permita solo tráfico de backend a database en el puerto 3306.
Mostrar respuesta
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-network-policy
spec:
podSelector:
matchLabels:
role: database
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: backend
ports:
- protocol: TCP
port: 3306Volver a los materiales de estudio | Siguiente cuestionario: arquitectura de cluster