在kubernetes statefulset中设置Pod的自定义序号不是默认值0

时间:2019-07-26 06:11:23

标签: kubernetes kubernetes-statefulset

在Kubernetes statefulset中,序号以0-> N开头。是否可以将起始序号设置为自定义号码。

redis-cluster-10   1/1     Running   0          12h
redis-cluster-11   1/1     Running   2          17h
redis-cluster-12   1/1     Running   0          17h
redis-cluster-13   1/1     Running   0          17h
redis-cluster-14   1/1     Running   2          17h
redis-cluster-15   1/1     Running   0          17h

2 个答案:

答案 0 :(得分:0)

不。不支持立即使用它。您可能必须自定义statefulset控制器。

答案 1 :(得分:0)

我认为这是您可能感兴趣的部分:

https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/statefulset/stateful_set_utils.go

// getParentNameAndOrdinal gets the name of pod's parent StatefulSet and pod's ordinal as extracted from its Name. If
// the Pod was not created by a StatefulSet, its parent is considered to be empty string, and its ordinal is considered
// to be -1.
func getParentNameAndOrdinal(pod *v1.Pod) (string, int) {
    parent := ""
    ordinal := -1
    subMatches := statefulPodRegex.FindStringSubmatch(pod.Name)
    if len(subMatches) < 3 {
        return parent, ordinal
    }
    parent = subMatches[1]
    if i, err := strconv.ParseInt(subMatches[2], 10, 32); err == nil {
        ordinal = int(i)
    }
    return parent, ordinal
}