El día de hoy te compartimos los mejores consejos y trucos de Kubernetes:
Esta es probablemente la más simple de hacer, pero también una de las cosas más útiles cuando se usa Kubernetes. Para autocompletar (si usas bash) ejecuta el siguiente comando:
echo "source <(kubectl completion bash)" >> ~/.bashrc
Esto agregará el autocompletado a su .bashrc para que cada vez que abra un shell lo habilite.
Si alguien escribe una aplicación que abre una conexión a una base de datos cada segundo pero nunca la cierra, ahora tenemos una pérdida de memoria en una de nuestras aplicaciones en el clúster. Y si se implementaron en el clúster sin establecer un límite, puede bloquear un nodo.
Para evitar esto, Kubernetes permite que se establezcan límites predeterminados por espacio de nombres. Para hacer esto, es tan simple como crear un yaml para el rango límite y aplicarlo al espacio de nombres. Aquí un ejemplo:
apiVersion: v1 kind: LimitRange metadata: name: mem-limit-range spec: limits: - default: memory: 512Mi defaultRequest: memory: 256Mi type: Container
¿Cómo alguien garantiza que no haya tiempo de inactividad para una aplicación con un clúster de Kubernetes?
La respuesta es: Pod Disruption Budgets
Los clústeres se actualizarán. Los nodos se drenarán y las cosas se moverán. Los PDB (PodDisruptionBudget) deben colocarse en cada implementación que tenga más de 1 instancia. Se puede crear un PDB usando un yaml simple aplicado al clúster y usa selectores de etiquetas para determinar qué cubre un PDB específico.
Ejemplo:
apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: app-a-pdb spec: minAvailable: 2 selector: matchLabels: app: app-a
Kubernetes es un sistema muy poderoso, pero como cualquier sistema, eventualmente puede atascarse. Tiene que hacer todas las comprobaciones que le indiques y hacer sus propias comprobaciones al mismo tiempo.
Por supuesto, tener un servicio que no se conecta a nada no atascará el sistema y, por supuesto, Kubernetes está diseñado para escalar. PERO amplía ese servicio a millones y, de repente, el kubelet comenzará a atascarse. Si estas eliminando una implementación (o cualquier cosa) por cualquier motivo, asegurate de limpiar todo lo demás con eso, simple y llanamente.
Las etiquetas son una de las bases principales de Kubernetes. Permite que los objetos se ajusten libremente a otros objetos y también le permite consultar en función de las etiquetas.
Puede hacer casi cualquier cosa con el uso de una etiqueta, pero un buen ejemplo sería varios entornos dentro del mismo clúster.
Supongamos que usas el mismo clúster para desarrollo y control de calidad. Esto significa que tendrías una aplicación potencialmente ejecutándose en control de calidad y desarrollo al mismo tiempo.
Para lograr esto de la manera más fácil, dar servicio a los objetos, una selección de etiquetas en la aplicación: aplicación-a y entorno: dev y otro objeto de servicio que selecciona la aplicación: aplicación-a pero cambia el dev con qa.
Lo que esto te brinda son dos de la misma aplicación con un punto final diferente para cada aplicación, lo que permite que las pruebas se realicen al mismo tiempo.
¿Qué te parecieron estos trucos y consejos? Esperamos que estos trucos te funcionen y logres ponerlos en practica.😉