OpenKruise有sdk或者修改配置文件的方式吗?

OpenKruise有sdk或者修改配置文件的方式吗?
文档中的 rollout.status.canaryStatus.currentStepState=StepReady 我尝试了好一阵 ,咋始终改不过来? 我的版本是0.4.0
我的操作记录在这里: https://github.com/openkruise/rollouts/issues/37

展开
收起
嘟嘟嘟嘟嘟嘟 2024-01-04 07:57:58 88 分享 版权
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    OpenKruise的Advanced DaemonSet确实支持通过SDK或修改配置文件的方式来控制分批分阶段创建Pod。

    对于SDK,你可以使用OpenKruise提供的Go SDK来操作Advanced DaemonSet。以下是一个示例:

    import (
        "context"
        "fmt"
        "github.com/openkruise/kruise/apis/apps/v1alpha1"
        "k8s.io/client-go/kubernetes"
    )
    
    func main() {
        // 创建Kubernetes客户端
        clientset, err := kubernetes.NewForConfig(config)
        if err != nil {
            panic(err)
        }
    
        // 获取Advanced DaemonSet对象
        daemonSet, err := clientset.AppsV1alpha1().DaemonSets("default").Get(context.TODO(), "my-daemonset", v1.GetOptions{})
        if err != nil {
            panic(err)
        }
    
        // 更新Advanced DaemonSet的UpdateStrategy字段
        daemonSet.Spec.UpdateStrategy = v1alpha1.RollingUpdateDaemonSet{
            RollingUpdate: &v1alpha1.RollingUpdateDaemonSetRollingUpdate{},
            MaxUnavailable: int32Ptr(1),
            MaxSurge:       int32Ptr(1),
        }
    
        // 应用更新到集群
        result, err := clientset.AppsV1alpha1().DaemonSets("default").Update(context.TODO(), daemonSet, v1.UpdateOptions{})
        if err != nil {
            panic(err)
        }
    
        fmt.Printf("Updated DaemonSet %q: %#v
    ", result.Name, result)
    }
    

    在这个示例中,我们首先创建了一个Kubernetes客户端,然后获取了Advanced DaemonSet对象。接着,我们更新了spec.updateStrategy字段,设置了maxUnavailablemaxSurge的值。最后,我们将更新应用到集群中。

    对于修改配置文件的方式,你可以直接编辑Advanced DaemonSet的YAML文件,然后使用kubectl apply -f <filename>命令应用更新到集群中。确保在编辑YAML文件时,按照上述示例中的格式设置spec.updateStrategy字段。

    2024-01-05 17:11:58
    赞同 展开评论
  • 看下你更改rollout status的姿势, k8s里资源的status 更新需要向rollout的status子资源更新,不能直接操作rollout资源,还有,文档里面没有直接说你使用 kubectl 昂,kubectl 也可以修改 status ,但是 edit 不行,你可以网上搜搜,kubectl 如何 edit status。此回答整理自钉群“OpenKruise 社区交流群”

    2024-01-04 18:05:07
    赞同 展开评论
  • OpenKruise目前没有提供官方的SDK,但是你可以通过修改配置文件的方式来实现一些功能。关于你提到的rollout.status.canaryStatus.currentStepState=StepReady,这个配置项是用来表示Canary发布过程中当前步骤的状态。如果你发现无法通过修改配置文件来改变这个值,可能是因为你的操作方式不正确或者有其他因素影响。

    你可以尝试以下方法来修改配置文件:

    1. 确保你的配置文件格式正确,例如使用YAML格式。
    2. 在修改配置文件后,重启相关的服务以使更改生效。
    3. 检查是否有其他进程或组件正在使用旧的配置,如果有,请先停止它们。
    2024-01-04 09:42:28
    赞同 展开评论
问答分类:

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

还有其他疑问?
咨询AI助理