Skip to content

Commit c98ad0b

Browse files
committed
Gateway API 0.8.0... en español.
Signed-off-by: Flynn <[email protected]>
1 parent 0f778d3 commit c98ad0b

File tree

1 file changed

+209
-0
lines changed

1 file changed

+209
-0
lines changed
Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
---
2+
layout: blog
3+
title: "Gateway API v0.8.0: Introducing Service Mesh Support"
4+
date: 2023-08-29T10:00:00-08:00
5+
slug: gateway-api-v0-8
6+
---
7+
8+
***Autores:*** Flynn (Buoyant), John Howard (Google), Keith Mattix
9+
(Microsoft), Michael Beaumont (Kong), Mike Morris (independent), Rob Scott
10+
(Google). Traducción desde [el inglés][english] (y errores relacionados) por
11+
Flynn.
12+
13+
_¡Mil gracias a María Teresa Rojas y Dani Baeyens por su inestimable ayuda revisando este post!_
14+
15+
Es un gran placer anunciar la versión v0.8.0 de Gateway API. Con esta versión,
16+
el soporte para service mesh en Gateway API ha alcanzado el [estado
17+
Experimental][status]. ¡Esperamos tus comentarios en la nueva versión!
18+
19+
Además, nos alegra anunciar que Kuma 2.3+, Linkerd 2.14+, e Istio 1.16+
20+
cumplen completamente con el soporte de service mesh de Gateway API.
21+
22+
## Soporte para service mesh en Gateway API
23+
24+
Aunque el foco inicial de Gateway API siempre fue el tráfico de entrada al
25+
cluster (north-south), estaba claro casi desde el principio que los mismos
26+
conceptos básicos de enrutamiento también deberían aplicarse al tráfico de
27+
service mesh (east-west). En 2022, el subproyecto Gateway API lanzó [la
28+
iniciativa GAMMA][gamma], un flujo de trabajo independiente de proveedores,
29+
para examinar la manera mejor de adaptar el soporte de service mesh al marco
30+
de los recursos de Gateway API, sin necesitar que que los usuarios de Gateway
31+
API tuvieran que aprender de nuevo todo lo que sepan sobre la API.
32+
33+
Durante el último año, GAMMA ha investigado con cuidado los desafíos y
34+
posibles soluciones para usar la Gateway API para service mesh. El resultado
35+
final es unos pocos de [propuestas de mejora][geps] que reflejan muchas horas
36+
de reflexión y debate, y proporcionan un camino viable, con cambios mínimos,
37+
para permitir que Gateway API soporte la service mesh.
38+
39+
### ¿Cómo funcionará el enrutamiento de mesh con la Gateway API?
40+
41+
Todos los detalles se puede encontrar en [la documentación de la mesh de
42+
Gateway API][mesh-routing] y [GEP-1426], pero en resumen: en Gateway API
43+
v0.8.0, un HTTPRoute puede tener un `parentRef` que es un Service, no solo un
44+
Gateway. Anticipamos GEPs futuros en este área a medida que adquirimos más
45+
experiencia con los casos de uso de service mesh: la capacidad de asociar un
46+
HTTPRoute con un Service permite usar Gateway API para una service mesh, pero
47+
hay múltiples casos de uso interesantes que permanecen difíciles de manejar.
48+
49+
Un ejemplo: podrías usar un HTTPRoute para hacer una prueba A-B con la service mesh así:
50+
51+
```yaml
52+
apiVersion: gateway.networking.k8s.io/v1beta1
53+
kind: HTTPRoute
54+
metadata:
55+
name: bar-route
56+
spec:
57+
parentRefs:
58+
- group: ""
59+
kind: Service
60+
name: demo-app
61+
port: 5000
62+
rules:
63+
- matches:
64+
- headers:
65+
- type: Exact
66+
name: env
67+
value: v1
68+
backendRefs:
69+
- name: demo-app-v1
70+
port: 5000
71+
- backendRefs:
72+
- name: demo-app-v2
73+
port: 5000
74+
```
75+
76+
Cualquier solicitud al puerto 5000 del Service `demo-app` que tenga la
77+
cabecera `env: v1` se dirigirá a `demo-app-v1`, y los que no la tengan se
78+
dirigirá a `demo-app-v2`. Dado que esta decisión está tomando por la service
79+
mesh en vez del controlador de ingress, la prueba A-B se puede realizar en
80+
cualquier nivel del gráfico de llamadas de la aplicación.
81+
82+
## ¿Cómo se puede confiar que este soporte será verdaderamente portátil?
83+
84+
Gateway API ha invertido mucho esfuerzo en pruebas de conformidad en todas las
85+
funciones que soporta, y las de la service mesh no son excepciones. Uno de los
86+
desafíos que enfrentó la iniciativa GAMMA fue que muchas de estas pruebas
87+
siempre han requerido que la implementación proporcionara un controlador de
88+
ingress. Muchas service meshes no hacen así, y requerir que una mesh
89+
implemente un controlador de ingress para cumplir con GAMMA no parece
90+
práctico, cuando menos. Por lo tanto, hemos reiniciado el trabajo en _perfiles
91+
de conformidad_ de Gateway API, como se describe en [GEP-1709].
92+
93+
Con perfiles de conformidad, podemos definir subconjuntos de la funcionalidad
94+
de Gateway API, y permitir que las implementaciones elijan (y documenten) a
95+
qué subconjuntos se ajustan. GAMMA agrega un nuevo perfil `Mesh`, descrito en
96+
[GEP-1686], que sólo verifica la funcionalidad de service mesh definida por
97+
GAMMA. Ahora mismo, Kuma 2.3+, Linkerd 2.14+ e Istio 1.16+ están completamente
98+
conformes con el perfil `Mesh`.
99+
100+
## ¿Qué más hay en Gateway API v0.8.0?
101+
102+
Versión v0.8.0 se trata principalmente de preparar Gateway API para versión
103+
v.1.0, en la que planeamos que HTTPRoute, Gateway, y GatewayClass se graduarán
104+
a GA. Hay dos cambios principales relacionados con esta preparación:
105+
validación CEL y cambios en la versión de la API.
106+
107+
### Validación CEL
108+
109+
Gateway API v0.8.0 comienza la transición desde validación de webhook a
110+
[validación CEL][cel], usando información incluida en los CRDs. Esta
111+
transición significa diferentes cosas dependiendo de la versión de Kubernetes
112+
que se use:
113+
114+
#### Kubernetes 1.25+
115+
116+
La validación CEL está completamente soportada, y casi toda la validación de
117+
Gateway API está implementada en CEL. (La única excepción es que, en los
118+
filtros de modificación de cabeceras, CEL solo puede validar los nombres de
119+
las cabeceras sin distinguir entre mayúsculas y minúsculas. Hay más
120+
información en [#2277][issue 2277].)
121+
122+
Recomendamos que _no_ uses el webhook de validación en estas versiones de
123+
Kubernetes.
124+
125+
#### Kubernetes 1.23 y 1.24
126+
127+
La validación CEL no está soportada, pero aún se puede instalar los CRDs de
128+
Gateway API v0.8.0. Cuando actualices a Kubernetes 1.25+, la validación CEL
129+
incluida en los CRDs se activará automáticamente.
130+
131+
Recomendamos que sigas usando el webhook de validación en estas versiones de
132+
Kubernetes.
133+
134+
#### Kubernetes 1.22 y versiones anteriores
135+
136+
Gateway API solo se compromete a admitir las [cinco versiones más recientes de
137+
Kubernetes][supported-versions]. Por lo tanto, estas versiones ya no están
138+
soportados por Gateway API, y la versión v0.8.0 no se puede instalar en ellas
139+
(porque los CRDs que contengan validación CEL serán rechazados).
140+
141+
### Cambios en la versión de la API
142+
143+
En la versión de Gateway API v1.0, se graduarán los recursos Gateway,
144+
GatewayClass, y HTTPRoute a la versión de API v1 desde v1beta1. Como
145+
preparación, seguimos actualizando las versiones de los recursos que han
146+
graduado desde la versión v1alpha1 a v1beta1. Para más información, consulta a
147+
[las notas de lanzamiento a la versión v0.8.0][v0.8.0 release notes].
148+
149+
## Cómo empezar con la Gateway API
150+
151+
Gateway API representa el futuro de las APIs de load balancing, enrutamiento,
152+
y service mesh en Kubernetes. Ya hay mas que 20 [implementaciones][impl]
153+
disponibles (incluidos controlodoras de ingress y service meshes) y este
154+
número siempre está creciendo.
155+
156+
Si tienes interés en Gateway API, te recomendamos empezar con [la
157+
documentación oficial sobre conceptos de la API][concepts]. Además, las
158+
[Guides][guides] cubren la instalación y configuración de Gateway API, y
159+
demuestran cómo usar Gateway API para lograr varios casos de uso comunes. Dado
160+
que esta API se basa en CRDs, puedes instalar la última versión en cualquier
161+
cluster de Kubernetes 1.23+.
162+
163+
Si tienes ganas de contribuir a Gateway API, ¡nos alegra saberlo! Por favor no
164+
tengas dudas en crear una nueva issue en nuestro repositorio de GitHub, o
165+
unirte en las discusiones. Además puedes consultar la página de la comunidad,
166+
que tiene enlaces a Slack e información sobre nuestros reuniones comunitarias
167+
cada dos semanas.
168+
169+
Gracias por tu continuo apoyo y comentarios sobre Gateway API. Estamos
170+
emocionados de ver cómo usas esta API en producción, y esperamos escuchar
171+
sobre tus experiencias.
172+
173+
## Leer más
174+
175+
- [GEP-1324] proporciona una descripción general de los objetivos de GAMMA y
176+
algunas definiciones importantes. Leer este GEP vale la pena por su
177+
tratamiento del espacio del problema.
178+
- [GEP-1426] define cómo usar Gateway API recursos de enrutamiento (p.e.
179+
HTTPRoute) para manejar tráfico en una service mesh.
180+
- [GEP-1686] se basa en el trabajo del [GEP-1709] y define un perfil de
181+
conformidad para que una service mesh se declare conforme con Gateway API.
182+
183+
Aunque estes patrones están [Experimental][status], están disponibles en el
184+
[canal `standard`][ch], porque la iniciativa GAMMA no ha necesito agregar
185+
neuvos recursos o campos hasta ahora.
186+
187+
[gamma]:https://gateway-api.sigs.k8s.io/concepts/gamma/
188+
[status]:https://gateway-api.sigs.k8s.io/geps/overview/#status
189+
[ch]:https://gateway-api.sigs.k8s.io/concepts/versioning/#release-channels-eg-experimental-standard
190+
[cel]:/docs/reference/using-api/cel/
191+
[crd]:/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/
192+
[concepts]:https://gateway-api.sigs.k8s.io/concepts/api-overview/
193+
[geps]:https://gateway-api.sigs.k8s.io/contributing/enhancement-requests/
194+
[guides]:https://gateway-api.sigs.k8s.io/guides/getting-started/
195+
[impl]:https://gateway-api.sigs.k8s.io/implementations/
196+
[install-crds]:https://gateway-api.sigs.k8s.io/guides/getting-started/#install-the-crds
197+
[issue]:https://github.com/kubernetes-sigs/gateway-api/issues/new/choose
198+
[disc]:https://github.com/kubernetes-sigs/gateway-api/discussions
199+
[community]:https://gateway-api.sigs.k8s.io/contributing/community/
200+
[mesh-routing]:https://gateway-api.sigs.k8s.io/concepts/gamma/#how-the-gateway-api-works-for-service-mesh
201+
[GEP-1426]:https://gateway-api.sigs.k8s.io/geps/gep-1426/
202+
[GEP-1324]:https://gateway-api.sigs.k8s.io/geps/gep-1324/
203+
[GEP-1686]:https://gateway-api.sigs.k8s.io/geps/gep-1686/
204+
[GEP-1709]:https://gateway-api.sigs.k8s.io/geps/gep-1709/
205+
[issue 2277]:https://github.com/kubernetes-sigs/gateway-api/issues/2277
206+
[supported-versions]:https://gateway-api.sigs.k8s.io/concepts/versioning/#supported-versions
207+
[v0.8.0 release notes]:https://github.com/kubernetes-sigs/gateway-api/releases/tag/v0.8.0
208+
[versioning docs]:https://gateway-api.sigs.k8s.io/concepts/versioning/
209+
[english]:/blog/2023/08/29/gateway-api-v0-8/

0 commit comments

Comments
 (0)