赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. ACK Serverless集群
  4. 操作指南
  5. Knative
  6. Knative服务管理
  7. 使用Kourier网关

使用Kourier网关

  • Knative服务管理
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

Kourier是一个基于Envoy架构实现的轻量级网关,是Knative社区提供的开源网关实现,提供Knative Revisions流量分发,支持gRPC服务、超时和重试、TLS证书和外部认证授权等功能。

前提条件

  • 已为ACK Serverless集群开启服务发现DNS,请参见服务发现DNS。

  • 已在集群中部署Knative,请参见部署Knative。

步骤一:部署Kourier网关

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Knative。

  3. 在组件管理页签的add-on组件区域,单击Kourier右侧操作列下的部署,然后在弹出框单击确定。

    若Kourier的状态显示为已部署,表示部署成功。

步骤二:通过Kouier网关访问服务

本小节将创建一个helloworld-go服务,展示如何通过Kouier网关访问HTTP或HTTPS服务。

访问HTTP服务

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Knative。

  3. 在Knative页面的服务管理页签下,选择命名空间为default,然后单击使用模板创建,将以下YAML示例粘贴至模板,最后单击创建。

    创建一个名为helloworld-go的服务。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
            env:
            - name: TARGET
              value: "Knative"

    若目标服务的状态列显示成功,表明服务已部署成功。

  4. 在服务管理页面的默认域名和访问网关列,分别获取helloworld-go服务的域名和网关地址。

  5. 执行以下命令,访问helloworld-go服务。

    curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX # 网关IP和域名请以您的实际数据为准。

    预期输出:

    Hello Knative!

    预期输表明,访问HTTP服务成功。

访问HTTPS服务

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Knative。

  3. 在Knative页面的服务管理页签下,选择命名空间为default,然后单击使用模板创建,将以下YAML示例粘贴至模板,最后单击创建。

    创建一个名为helloworld-go的服务。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
            env:
            - name: TARGET
              value: "Knative"

    若目标服务的状态列显示成功,表明服务已部署成功。

  4. 创建证书。

    1. 执行以下命令,生成TLS证书。

      openssl genrsa -out tls.key 4096
      openssl req -subj "/CN=*.example.com/L=*.example.com" -sha256  -new -key tls.key -out tls.csr
      echo subjectAltName = DNS:helloworld-go.default.example.com,DNS:helloworld-go.default.example.cn > extfile.cnf
      openssl x509 -req -days 3650 -sha256 -in tls.csr -signkey tls.key -out tls.crt -extfile extfile.cnf
    2. 执行以下命令,根据生成的TLS证书文件创建集群的Secret。

      kubectl -n knative-serving create secret tls kourier-cert --key tls.key --cert tls.crt
  5. 执行以下命令,查看knative-serving命名空间下是否存在名为net-kourier-controller的Deployment。

    kubectl get deployments -n knative-serving
  6. 执行以下命令,配置证书信息。

    kubectl -n knative-serving edit deployment net-kourier-controller

    在net-kourier-controller配置信息页面,为如下参数添加Value值。

    • CERTS_SECRET_NAMESPACE:添加证书Secret所在的命名空间。

    • CERTS_SECRET_NAME:添加证书Secret名称。

    ...
       spec:
          containers:
          - env:
            - name: CERTS_SECRET_NAMESPACE
              value: knative-serving 
            - name: CERTS_SECRET_NAME
              value: kourier-cert
    ...

    配置完成后,您可以执行以下命令,查看net-kourier-controller的状态。

    kubectl -n knative-serving get po

    预期输出:

    NAME                               READY   STATUS    RESTARTS   AGE
    net-kourier-controller-******   1/1     Running   0          10s
  7. 执行以下命令,通过证书访问HTTPS服务。

    curl -H "Host: helloworld-go.default.example.com" -k --cert tls.crt --key tls.key //8.141.XX.XX # 网关IP和域名请以您的实际数据为准。

    预期输出:

    Hello Knative!

    预期输出表明,访问HTTPS服务成功。

(可选)步骤三:查看服务监控数据

Knative提供开箱即用的可观测能力,在Knative页面,单击监控大盘页签,即可查看目标Knative服务的监控数据情况。如何开启Knative监控大盘,请参见查看Knative服务监控大盘。

相关文档

  • 您可以为Knative服务启用自定义域名,请参见使用自定义域名。

  • 您可以为Knative服务配置HTTPS证书访问,请参见配置HTTPS证书访问。

  • 您可以在Knative中部署gRPC服务,提升网络效率,请参见在Knative中部署gRPC服务。

  • 您可以配置探针(Probe),监测Knative服务的健康状态和可用性,请参见在Knative中配置端口探测。

  • 如果您的ECI实例有连接公网的需求,您需要绑定EIP,请参见为ECI绑定EIP实现公网访问。

相关文章

为ECI绑定EIP实现公网访问 2025-04-18 14:49

默认情况下,系统只为ECI实例分配一个私网IP。如果您的Knative服务有连接公网的需求,例如拉取公网镜像等,您可以通过添加Annotation为其使用的ECI实例绑定已有的EIP或创建一个新EIP。自动创建EIP时,您还可以同步设置EIP带宽、绑定共享带宽包等。 前提条件

为Knative选择网关 2025-04-18 14:49

Knative网关提供了一种灵活的方式来接入外部流量,并将这些流量路由到不同的Knative服务上。ACK Knative支持ALB、MSE、ASM、Kourier四种网关,每种网关都有其特定的优势和适用场景。本文从产品定位、产品架构、基础路由、运维能力、性能特点、支持的主流协议和可观测能力进行对比

使用ALB网关 2025-04-18 14:49

在大规模Web应用、需要精细化流量分发、需要自动弹性伸缩等对HTTP/HTTPS请求有复杂路由需求的应用中,推荐您基于ALB网关实现Knative服务的流量分发和路由。ALB是专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模七层流量处理能力。ALB网关是一款

使用ASM网关 2025-04-18 14:49

在大规模分布式系统、微服务应用流量管理等场景下,特别是已采用或计划采用Istio作为服务网格框架的业务场景中,推荐您使用ASM网关实现Knative服务的流量分发和路由。ASM网关兼容社区Istio规范,控制面组件由ACK托管,简化了服务治理,包括服务调用之间的流量路由与拆分管理、服务间通信的认证安

使用GPU资源 2025-04-18 14:49

如需在Knative中部署需要GPU资源的任务(如AI或高性能计算),您可以在Knative Service中指定GPU规格并创建GPU实例。您还可以开启共享GPU调度能力,允许多个Pod共享GPU,提升使用率。 前提条件 已在集群中部署Knative,请参见

使用Kourier网关 2025-04-18 14:49

Kourier是一个基于Envoy架构实现的轻量级网关,是Knative社区提供的开源网关实现,提供Knative Revisions流量分发,支持gRPC服务、超时和重试、TLS证书和外部认证授权等功能。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号