4 herramientas para ayudarle a conducir Kubernetes

| |

COMPARTE EL ARTÍCULO!!!

En el tercer artículo de esta serie, Aspectos básicos de Kubernetes: Aprende a conducir primero ,Enfaticé que deberías aprender a conducir a Kubernetes, no a construirlo. También expliqué que hay un conjunto mínimo de primitivas que hay que aprender a modelar una aplicación en Kubernetes. Quiero enfatizar este punto: el conjunto de primitivas que usted necesita para aprender es el conjunto de primitivas más fácil que usted puede aprender para lograr despliegues de aplicaciones con calidad de producción (es decir, alta disponibilidad[HA], múltiples contenedores, múltiples aplicaciones). Dicho de otra manera, aprender el conjunto de primitivas integradas en Kubernetes es más fácil que aprender software de agrupación en clúster, sistemas de ficheros en clúster, equilibradores de carga, locas configuraciones de Apache, locas configuraciones de Nginx, enrutadores, conmutadores, cortafuegos y backends de almacenamiento, todo lo que necesitaría para modelar una simple aplicación HA en un entorno de TI tradicional (para máquinas virtuales o de metal).

En este cuarto artículo, compartiré algunas herramientas que te ayudarán a aprender a manejar a Kubernetes rápidamente.

1. Katacoda

Katacoda es la forma más fácil de probar un grupo de Kubernetes, sin duda alguna. Con un solo clic y cinco segundos de tiempo, usted tiene una terminal basada en la web conectada directamente a un clúster de Kubernetes en funcionamiento. Es magnífico para jugar y aprender. Incluso lo uso para demostraciones y para probar nuevas ideas. Katacoda proporciona un ambiente completamente efímero que se recicla cuando usted termina de usarlo.

openshift-patio de juegos.png

OpenShift Playground

Parque infantil OpenShift

kubernetes-playground.png

Kubernetes Playground

Parque infantil Kubernetes

Katacoda ofrece parques infantiles efímeros y entornos de laboratorio más profundos. Por ejemplo, el Linux Container Internals Lab, que he dirigido durante los últimos tres o cuatro años, está construido en Katacoda.

Katacoda mantiene un grupo de Kubernetes y tutoriales de nube en su sitio principal y colabora con Red Hat para apoyar un portal de aprendizaje dedicado a OpenShift. Explórelos a ambos, son excelentes recursos de aprendizaje.

Cuando usted aprende a manejar un camión de volteo, siempre es mejor observar cómo otras personas conducen primero.

2. Podman generar kube

El comando podman generate kube es un pequeño subcomando brillante que ayuda a los usuarios a realizar una transición natural de un simple motor de contenedor que ejecuta contenedores simples a un caso de uso en clúster que ejecuta muchos contenedores (como describí en el artículo anterior). Podman hace esto dejándote iniciar unos cuantos contenedores, luego exportando el Kube YAML en funcionamiento y encendiéndolos en Kubernetes. Mira esto (pssst, puedes ejecutarlo en este laboratorio de Katacoda, que ya tiene Podman y OpenShift).

Primero, note que la sintaxis para ejecutar un contenedor es sorprendentemente similar a la de Docker:

podman run -dtn two-pizza quay.io/fatherlinux/two-pizza

Pero esto es algo que otros motores de contenedor no hacen:

podman generar kube two-pizza

La salida:

# Guardar la salida de este archivo y usar kubectl create -f para importar
# en Kubernetes.
#
# Creado con podman-1.3.1
apiVersión: v1
amable: Pod
metadatos:
creationTimestamp: «2019-06-07T08:08:12Z»
etiquetas:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> app: dos pizzas
nombre: dos-pizzas
especificación:
envases:
>> de – comando:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>»»»»»»»>i»). – /bin/sh
-c
> – bash -c $0027while true; do /usr/bin/nc -l -p 3306 < /srv/hello.txt; done$0027
Env:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>»»»»»»»»>>>i». – nombre: PATH
valor: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
– nombre: TERM
valor: xterm
– nombre: HOSTNAME
– nombre: container
valor: oci
imagen: quay.io/fatherlinux/two-pizza:latest
nombre: dos-pizzas
recursos: {}
securityContexto:
allowPrivilegeEscalation: true
>>PermitirEscalaciónPrivilegeEscalación: true
>PermiteEscalaciónPrivilegeEscalación: true
Perfecta capacidades: {}
privilegiado: false
readOnlyRootFilesystem: false
tty: true
directorio de trabajo: /
estado: {}
— tipo: Servicio
metadatos:
creationTimestamp: «2019-06-07T08:08:12Z»
etiquetas:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> app: dos pizzas
nombre: dos-pizzas
especificación:
selector:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>) app: dos pizzas
tipo NodePort
> NodePort Estado:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. loadBalancer: {}

Ahora tienes algunos Kubernetes YAML en funcionamiento, que puedes usar como punto de partida para jugar y aprender, retocar, etc. La bandera -s creó un servicio para usted. Brent Baude incluso está trabajando en nuevas características como la adición de Volumes/Persistent Volume Claims. Para una inmersión más profunda, echa un vistazo al increíble trabajo de Brent en su blog «Podman ahora puede facilitar la transición a Kubernetes y CRI-O.»

3. oc new-app

El comando oc new-app es extremadamente potente. Es específico de OpenShift, por lo que no está disponible en Kubernetes por defecto, pero es realmente útil cuando estás empezando a aprender Kubernetes. Comencemos con un comando rápido para crear una aplicación bastante sofisticada:

oc new-project -n ejemplo
oc new-app -f https://raw.githubusercontent.com/openshift/origin/master/examples/quickstarts/cakephp-mysql.json

Con oc new-app , puede literalmente robar plantillas de los desarrolladores de OpenShift y tener un buen punto de partida conocido al desarrollar primitivas para describir sus propias aplicaciones. Después de ejecutar el comando anterior, el espacio de nombres de Kubernetes (en OpenShift) se llenará con un montón de recursos nuevos y definidos.

oc get all

La salida:

>NAME READY STATUS RESTARTS AGE pod/cakephp-mysql-example-1-build 0/1 Completed 0 4m
pod/cakephp-mysql-example-1-gz65l 1/1 Correr 0 1m
pod/mysql-1-nkhqn 1/1 Correr 0 4m

NAME DESIRED CURRENT READY AGE
replicationcontroller/cakephp-mysql-example-1 1 1 1 1 1m
replicationcontroller/mysql-1 1 1 1 1 4m

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) service/cakephp-mysql-example ClusterIP 172.30.234.135 <none> 8080/TCP 4m
service/mysql ClusterIP 172.30.13.195 <none> 3306/TCP 4m

NAME REVISION DESIRED CURRENT TRIGGERED BY
NAME REVISION DESIRED CURRENT TRIGGERED BY deploymentconfig.apps.openshift.io/cakephp-mysql-example 1 1 1 config,image(cakephp-mysql-example:latest)
deploymentconfig.apps.openshift.io/mysql 1 1 1 config,image(mysql:5.7)

TIPO DE NOMBRE DESDE LO ÚLTIMO
>NOMBRE buildconfig.build.openshift.io/cakephp-mysql-ejemplo Source Git 1

NOMBRE TIPO DE ESTADO DURACIÓN COMENZADA
br build.build.build.openshift.io/cakephp-mysql-example-1 Source Git@47a951e Completo hace 4 minutos 2m27s

NAME DOCKER REPO TAGS UPDATED
>NAME DOCKER REPO TAGS imagestream.image.openshift.io/cakephp-mysql-example docker-registry.default.svc:5000/example/cakephp-mysql-example latest Acerca de aminute ago
br
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
route.route.route.openshift.io/cakephp-mysql-example cakephp-mysql-example-example.2886795271-80-rhsummit1.environments.katacoda.com cakephp-mysql-example <all> None>>.

La belleza de esto es que usted puede borrar los Pods, ver los controladores de replicación recrearlos, escalar los Pods hacia arriba, y escalarlos hacia abajo. Puedes jugar con la plantilla y cambiarla para otras aplicaciones (que es lo que hice cuando empecé).

4. Código de Visual Studio

Guardé uno de mis favoritos para el final. Utilizo vi para la mayor parte de mi trabajo, pero nunca he encontrado un buen resaltador de sintaxis y plugin de terminación de código para Kubernetes (si tienes uno, házmelo saber). En cambio, he descubierto que el código VS de Microsoft tiene un conjunto de plugins que completan la creación de los recursos de Kubernetes y proporcionan una base de datos.

vscode_-_kubernetes_red_hat_-_plugins.png

VS Code plugins UI

Primero, instale los pluginsKubernetes yYAML que se muestran en la imagen de arriba.

vscode_-_kubernetes_service_-_autocomplete.png

Autocomplete in VS Code

A continuación, puede crear un nuevo archivo YAML desde cero y obtener la autocompletación de los recursos de Kubernetes. El ejemplo anterior muestra un Servicio.

vscode_-_kubernetes_service_-_boiler_plate.png

VS Code autocomplete filling in boilerplate for an object

Cuando se utiliza la función de autocompletar y se selecciona el recurso de servicio, se rellena una plancha de calderas para el objeto. Esto es magnífico cuando estás aprendiendo a manejar a los Kubernetes. Usted puede construir Pods, Servicios, Controladores de Replicación, Despliegues, etc. Esta es una característica muy buena cuando estás construyendo estos archivos desde cero o incluso modificando los archivos que creas con Podman genera kube .

Conclusión

Estas cuatro herramientas (seis si cuentas los dos plugins) te ayudarán a aprender a manejar Kubernetes, en lugar de construirlo o equiparlo. En mi último artículo de la serie, hablaré de por qué Kubernetes es tan excitante por tener tantas cargas de trabajo diferentes.

COMPARTE EL ARTÍCULO!!!

Previous

Cómo le di la bienvenida a una familia inmigrante con una computadora portátil Linux

Contenido digital rentable: Todo se trata del valor

Next

Deja un comentario

shares