From bea9f787512d90fe7d0332197b25fd51534430d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Miguel=20Parrella?= Date: Sat, 22 Jun 2019 10:42:12 -0700 Subject: [PATCH] Add content/es/docs/concepts/overview/what-is-kubernetes.md (#14585) Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Javi Sabalete Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Alexander Brand Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Alexander Brand Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Alexander Brand Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Alexander Brand Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Alexander Brand Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update content/es/docs/concepts/overview/what-is-kubernetes.md Co-Authored-By: Rael Garcia Update what-is-kubernetes.md Update what-is-kubernetes.md Update what-is-kubernetes.md --- .../concepts/overview/what-is-kubernetes.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 content/es/docs/concepts/overview/what-is-kubernetes.md diff --git a/content/es/docs/concepts/overview/what-is-kubernetes.md b/content/es/docs/concepts/overview/what-is-kubernetes.md new file mode 100644 index 0000000000..39af5e5db9 --- /dev/null +++ b/content/es/docs/concepts/overview/what-is-kubernetes.md @@ -0,0 +1,164 @@ +--- +reviewers: +- raelga +title: ¿Qué es Kubernetes? +content_template: templates/concept +weight: 10 +card: + name: concepts + weight: 10 +--- + +{{% capture overview %}} +Esta página ofrece una visión general sobre Kubernetes. +{{% /capture %}} + +{{% capture body %}} +Kubernetes es una plataforma portable y extensible de código abierto para +administrar cargas de trabajo y servicios. Kubernetes facilita la automatización +y la configuración declarativa. Tiene un ecosistema grande y en rápido crecimiento. +El soporte, las herramientas y los servicios para Kubernetes están ampliamente disponibles. + +Google liberó el proyecto Kubernetes en el año 2014. Kubernetes se basa en [la experiencia de +Google corriendo aplicaciones en producción a gran escala por década y media](https://research.google.com/pubs/pub43438.html), junto a las mejores ideas y prácticas de la comunidad. + +## ¿Por qué necesito Kubernetes y qué puede hacer por mi? + +Kubernetes tiene varias características. Puedes pensar en Kubernetes como: + +- una plataforma de contenedores +- una plataforma de microservicios +- una plataforma portable de nube + +y mucho más. + +Kubernetes ofrece un entorno de administración **centrado en contenedores**. Kubernetes +orquesta la infraestructura de cómputo, redes y almacenamiento para que las cargas de +trabajo de los usuarios no tengan que hacerlo. Esto ofrece la simplicidad de las Plataformas +como Servicio (PaaS) con la flexibilidad de la Infraestructura como Servicio (IaaS) y permite +la portabilidad entre proveedores de infraestructura. + +## ¿Qué hace de Kubernetes una plataforma? + +A pesar de que Kubernetes ya ofrece muchas funcionalidades, siempre hay nuevos +escenarios que se benefician de nuevas características. Los flujos de trabajo +de las aplicaciones pueden optimizarse para acelerar el tiempo de desarrollo. +Una solución de orquestación propia puede ser suficiente al principio, pero suele requerir +una automatización robusta cuando necesita escalar. Es por ello que Kubernetes fue diseñada como +una plataforma: para poder construir un ecosistema de componentes y herramientas que hacen +más fácil el desplegar, escalar y administrar aplicaciones. + +Las etiquetas, o [Labels](/es/docs/concepts/overview/working-with-objects/labels/), le +permiten a los usuarios organizar sus recursos como deseen. Las anotaciones , o [Annotations](/es/docs/concepts/overview/working-with-objects/annotations/), les permiten asignar información arbitraria a un recurso para +facilitar sus flujos de trabajo y hacer más fácil a las herramientas administrativas inspeccionar el estado. + +Además, el [Plano de Control](/docs/concepts/overview/components/) de Kubernetes usa las mismas +[APIs](/docs/reference/using-api/api-overview/) que usan los desarrolladores y usuarios finales. +Los usuarios pueden escribir sus propios controladores, como por ejemplo un planificador o [scheduler](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/devel/scheduler.md), +usando [sus propias +APIs](/docs/concepts/api-extension/custom-resources/) +desde una [herramienta de línea de comandos](/docs/user-guide/kubectl-overview/). + +Este +[diseño](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) +ha permitido que otros sistemas sean construidos sobre Kubernetes. + +## Lo que Kubernetes no es + +Kubernetes no es una Plataforma como Servicio (PaaS) convencional. Ya que +Kubernetes opera a nivel del contenedor y no a nivel del hardware, ofrece +algunas características que las PaaS también ofrecen, como deployments, +escalado, balanceo de carga, registros y monitoreo. Dicho esto, Kubernetes +no es monolítico y las soluciones que se ofrecen de forma predeterminada +son opcionales e intercambiables. + +Kubernetes ofrece los elementos esenciales para construir una plataforma +para desarrolladores, preservando la elección del usuario y la flexibilidad +en las partes más importantes. + +Entonces, podemos decir que Kubernetes: + +* No limita el tipo de aplicaciones que soporta. Kubernetes busca dar soporte a un número diverso de cargas de trabajo, que incluyen aplicaciones con y sin estado así como aplicaciones que procesan datos. Si la aplicación puede correr en un contenedor, debería correr bien en Kubernetes. +* No hace deployment de código fuente ni compila tu aplicación. Los flujos de integración, entrega y deployment continuo (CI/CD) vienen determinados por la cultura y preferencia organizacional y sus requerimientos técnicos. +* No provee servicios en capa de aplicación como middleware (por ejemplo, buses de mensaje), frameworks de procesamiento de datos (como Spark), bases de datos (como MySQL), caches o sistemas de almacenamiento (como Ceph). Es posible correr estas aplicaciones en Kubernetes, o acceder a ellos desde una aplicación usando un mecanismo portable como el Open Service Broker. +* No dictamina las soluciones de registros, monitoreo o alerta que se deben usar. Hay algunas integraciones que se ofrecen como prueba de concepto, y existen mecanismos para recolectar y exportar métricas. +* No provee ni obliga a usar un sistema o lenguaje de configuración (como [jsonnet](https://github.com/google/jsonnet)) sino que ofrece una API declarativa que puede ser usada con cualquier forma de especificación declarativa +* No provee ni adopta un sistema exhaustivo de mantenimiento, administración o corrección automática de errores + +Además, Kubernetes no es un mero *sistema de orquestación*. De hecho, Kubernetes elimina la necesidad de orquestar. *Orquestación* se define como la ejecución de un flujo de trabajo definido: haz A, luego B y entonces C. Kubernetes está compuesto de un conjunto de procesos de control independientes y combinables entre si que llevan el estado actual hacia el estado deseado. No debería importar demasiado como llegar de A a C. No se requiere control centralizado y, como resultado, el sistema es más fácil de usar, más poderoso, robusto, resiliente y extensible. + +## ¿Por qué usar contenedores? + +¿Te preguntas las razones para usar contenedores? + +![Why Containers?](/images/docs/why_containers.svg) + +La *Manera Antigua* de desplegar aplicaciones era instalarlas en un +servidor usando el administrador de paquetes del sistema operativo. +La desventaja era que los ejecutables, la configuración, las librerías +y el ciclo de vida de todos estos componentes se entretejían unos a +otros. Podíamos construir imágenes de máquina virtual inmutables para +tener rollouts y rollbacks predecibles, pero las máquinas virtuales +son pesadas y poco portables. + +La *Manera Nueva* es desplegar contenedores basados en virtualización +a nivel del sistema operativo, en vez del hardware. Estos contenedores +están aislados entre ellos y con el servidor anfitrión: tienen sus propios +sistemas de archivos, no ven los procesos de los demás y el uso de recursos +puede ser limitado. Son más fáciles de construir que una máquina virtual, y +porque no están acoplados a la infraestructura y sistema de archivos del +anfitrión, pueden llevarse entre nubes y distribuciones de sistema operativo. + +Ya que los contenedores son pequeños y rápidos, una aplicación puede ser +empaquetada en una imagen de contenedor. Esta relación uno a uno entre +aplicación e imagen nos abre un abanico de beneficios para usar contenedores. +Con contenedores, podemos crear imágenes inmutables al momento de la compilación +en vez del despliegue ya que las aplicaciones no necesitan componerse junto al +resto del _stack_ ni atarse al entorno de infraestructura de producción. Generar +una imagen de contenedor al momento de la compilación permite tener un entorno +consistente que va desde desarrollo hasta producción. De igual forma, los contenedores +son más transparentes que las máquinas virtuales y eso hace que el monitoreo y la +administración sean más fáciles. Esto se aprecia más cuando los ciclos de vida de +los contenedores son administrados por la infraestructura en vez de un proceso supervisor +escondido en el contenedor. Por último, ya que solo hay una aplicación por contenedor, +administrar el despliegue de la aplicación se reduce a administrar el contenedor. + +En resumen, los beneficios de usar contenedores incluyen: + +* **Ágil creación y despliegue de aplicaciones**: + Mayor facilidad y eficiencia al crear imágenes de contenedor en vez de máquinas virtuales +* **Desarrollo, integración y despliegue continuos**: + Permite que la imagen de contenedor se construya y despliegue de forma frecuente y confiable, + facilitando los rollbacks pues la imagen es inmutable +* **Separación de tareas entre Dev y Ops**: + Puedes crear imágenes de contenedor al momento de compilar y no al desplegar, desacoplando la + aplicación de la infraestructura +* **Observabilidad** + No solamente se presenta la información y métricas del sistema operativo, sino la salud de la + aplicación y otras señales +* **Consistencia entre los entornos de desarrollo, pruebas y producción**: + La aplicación funciona igual en un laptop y en la nube +* **Portabilidad entre nubes y distribuciones**: + Funciona en Ubuntu, RHEL, CoreOS, tu datacenter físico, Google Kubernetes Engine y todo lo demás +* **Administración centrada en la aplicación**: + Eleva el nivel de abstracción del sistema operativo y el hardware virtualizado a la aplicación que funciona en un sistema con recursos lógicos +* **[Microservicios](https://martinfowler.com/articles/microservices.html)** distribuidos, elásticos, liberados y débilmente acoplados: + Las aplicaciones se separan en piezas pequeñas e independientes que pueden ser desplegadas y administradas de forma dinámica, y no como una aplicación monolítica que opera en una sola máquina de gran capacidad +* **Aislamiento de recursos**: + Hace el rendimiento de la aplicación más predecible +* **Utilización de recursos**: + Permite mayor eficiencia y densidad + +## ¿Qué significa Kubernetes? ¿Qué significa K8S? + +El nombre **Kubernetes** proviene del griego y significa *timonel* o *piloto*. Es la raíz de *gobernador* y de [cibernética](http://www.etymonline.com/index.php?term=cybernetics). *K8s* +es una abrevación que se obtiene al reemplazar las ocho letras "ubernete" con el número 8. + +{{% /capture %}} + +{{% capture whatsnext %}} +* ¿Estás listo para [empezar](/docs/setup/)? +* Para saber más, visita el resto de la [documentación de Kubernetes](/docs/home/). +{{% /capture %}} + +