开发者社区 > 云原生 > 容器服务 > 正文

请教一个关于OpenKruise的问题。

b91239d3694eb53c2959bb919df9a69a.png,请教一个OpenKruise的问题,图片上的这种问题怎么解决呢?

展开
收起
林间雨 2023-11-14 18:23:09 58 0
2 条回答
写回答
取消 提交回答
  • 从您提供的错误信息来看,这个问题可能是由于您在定义TrafficRoutings时使用了不正确的API版本或者对象类型导致的。在这个例子中,您正在尝试使用Apache APISIX的路由对象(ApisixRoute)来定义TrafficRoutings,但是这个对象类型并不被OpenKruise所支持。

    在OpenKruise中,您应该使用ServicePortTrafficRouter来定义TrafficRoutings。这是一个ServicePort级别的路由器,可以用来为特定的ServicePort定义路由规则。

    以下是修改后的示例:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: report-api
      labels:
        app: report-api
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: report-api
      template:
        metadata:
          labels:
            app: report-api
        spec:
          containers:
          - name: report-api
            image: your-image
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 80
    ---
    apiVersion: kruise.io/v1alpha1
    kind: Rollout
    metadata:
      name: report-api
    spec:
      strategy:
        canary:
          trafficRouters:
            - servicePortTrafficRouter:
                service: report-api
                targetServicePort: 80
    

    在这个示例中,我们首先创建了一个Deployment和一个Rollout。然后,在Rollout的定义中,我们为Canary策略定义了一个ServicePortTrafficRouter,它将请求路由到Deployment中的80端口。

    2023-11-30 12:00:58
    赞同 展开评论 打赏
  • apiVersion: rollouts.kruise.io/v1alpha1
    kind: Rollout
    metadata:
    annotations:
    rollouts.kruise.io/hash: wx9vd42474b4cc548dz825b59ffzvd44c95x9dcd48v4w5678878vvz8b9wbbvcc
    rollouts.kruise.io/rolling-style: partition
    creationTimestamp: "2023-11-02T08:17:11Z"
    deletionGracePeriodSeconds: 0
    deletionTimestamp: "2023-11-09T03:35:49Z"
    finalizers:

    - rollouts.kruise.io/rollout
    

    generation: 2
    labels:
    app: report-api
    name: report-api
    namespace: default
    resourceVersion: "377449399"
    uid: f57b0007-cd27-4b25-889f-417781430129
    spec:
    objectRef:
    workloadRef:
    apiVersion: apps/v1
    kind: Deployment
    name: report-api
    strategy:
    canary:
    steps:

      - pause: {}
        replicas: 1
        weight: 1
      - pause: {}
        replicas: 2
        weight: 100
      trafficRoutings:
        - service: report-api
          customNetworkRefs:
            - apiVersion: ~[apisix.apache.org/v2](http://apisix.apache.org/v2)~
              kind: ApisixRoute
              name: report-api
    


    此回答整理自钉群“OpenKruise 社区交流群”

    2023-11-14 19:57:36
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载