Serverless平台knative第二章基础原理
  EeGZtZT5Jsfk 2023年11月02日 39 0

Serving专用CRD

  Serving.knative.dev群组

    - Service

    - Configuation

    - Revision

    - Route

    - DomainMapping

autoscaling.internal.knative.dev群组

  - Metric

  - PodAutoscaler

networking.internal.knative.dev群组

    - ServerlessService

    - ClusterDoaminClaim

    - Certificate


Knative Serving工作模式

Serverless平台knative第二章基础原理_knative

Serverless平台knative第二章基础原理_serverless_02

主要包含四个CRD

- Service

对自动编排Serverless类型应用的功能的抽像,负责自动管理工作负载的整个生命周期

- Configuation

反映了Service当前期望状态(Spen)的配置,Service对像的更新,也将导致Configuation的更新

- Revision

Service的每次代码或配置变理都会生成一个Revision

- Route

将请求流量路由到目标Revion

支持将流量按比例切分并路由到多个Revision

访问模式:

首先从ingress gateway转发代理流量至k8s service接着转发至Activator,Activator会先进行缓存并告知KPA通知Deployment进行扩容>=1个。具体扩容数量需要根据请求量来决定。等待扩容完成之后,再次请求会直接请求从K8s service转发pod,而不再经过Activator


Queue Proxy

Knative Serving会为每个Pod注入一个称为Queue Proxy的容器

 - 为业务代码提供代理功能

    ingress gw热收到请求后,将期发往目标Pod实例上由Queue Proxy监听的8012端口,而后,Queue Proxy再将请求转发给业务代码容器监听的端口

 -  报告实例上的多个有关客户端请求的关键指标给KPA

 - Pod健康状态检测

  - 为超出实例最大并发量的请求提供缓冲队列

  Queue Proxy预留端口

    - 8012:HTTP协义的代理端口

    - 8013: HTTP/2端口,用于代理gRPC

     - 8022: 管理端口,如检健检测等 

     - 9090: 暴露给Autoscaler进行指标采集的端口

     - 9091:暴露给Prometheus进行监控指标采集的端口

 

运行Knative应用

在Serving上,可通过创建Knative serice对像来运行用,该service资源会自动创建。

一个Configuration对像,它会创建一个Revision,并由该Revision自动创建如下两个对像

   Configuration --> Revision  ( 如下由Revision创建)

       Deployment  

       PodAutoScaler(KPA)

   一个Route  对像他它创建

      - 1个Kubernetes Service 对像

      - 1组VirtualService资源对象(istio network layer)

           {serivce-name}-ingress: 访问该Knative Service的来自于集群外部流量  

           {service-name}-mesh: 访问该Knative Service的来自于集群内部流量

               启用了网格功能时:VirtualService

               未启用网格功能时:流量转给istio-system/knative-local-service  

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  ZLGFQDxSRQTs   2023年11月05日   42   0   0 APIPod
  ozzp9aSSE46S   2023年11月30日   26   0   0 DNSIPPod
  YKMEHzdP8aoh   2023年12月11日   57   0   0 DNSidePod
  zNxK8cIqmu7p   2023年11月19日   31   0   0 ServerAPIPod
  ZLGFQDxSRQTs   2023年11月14日   30   0   0 Docker私有仓库Pod