Bootstrap

Kubernetes Gateway API-5-后端协议和网关基础设置标签

1 后端协议

自 v1.2.0 开始支持

并非所有网关API实现都支持自动协议选择。在某些情况下,协议在没有明确选择加入的情况下被禁用。

当 Route 的后端引用Kubernetes Service 时,应用程序开发人员可以使用 ServicePort appProtocol 字段指定协议。

例如,以下 Kubernetes Service store 表示端口 8080 支持 HTTP/2。

apiVersion: v1
kind: Service
metadata:
  name: store
spec:
  selector:
    app: store
  ports:
  - protocol: TCP
    appProtocol: kubernetes.io/h2c
    port: 8080
    targetPort: 8080

目前,Gateway API对以下方面进行了一致性测试:

  • kubernetes.io/h2c HTTP/2
  • kubernetes.io/ws 基于HTTP的WebSocket

2 网关基础设置标签

Gateway API 实现负责创建使每个 Gateway 工作所需的后端基础设施。例如,在 Kubernetes 集群中运行的实现通常会创建 Services 和 Deployments,而基于云的实现可能会创建云负载均衡器资源。在许多情况下,能够将标签或注释传播到这些生成的资源是非常有帮助的。

Gateway 上的基础设施字段允许您为由 Gateway API 控制器创建的基础设施指定标签和注释。例如,如果您的 Gateway 基础设施在集群内运行,您可以使用以下 Gateway 配置同时指定 Linkerd 和 Istio 的注入,从而使基础设施更容易集成到您安装的任何服务网格中。

以下是一个示例配置:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: meshed-gateway
  namespace: incoming
spec:
  gatewayClassName: meshed-gateway-class
  listeners:
  - name: http-listener
    protocol: HTTP
    port: 80
  infrastructure:
    labels:
      istio-injection: enabled
    annotations:
      linkerd.io/inject: enabled

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;