Как обеспечить ограничение ресурсов в kubernetes go спецификации клиента?
Spec: v1.PodSpec{
Containers: []v1.Container{
v1.Container{
Name: podName,
Image: deploymentName,
ImagePullPolicy: "IfNotPresent",
Ports: []v1.ContainerPort{},
Env: []v1.EnvVar{
v1.EnvVar{
Name: "RASA_NLU_CONFIG",
Value: os.Getenv("RASA_NLU_CONFIG"),
},
v1.EnvVar{
Name: "RASA_NLU_DATA",
Value: os.Getenv("RASA_NLU_DATA"),
},
},
Resources: v1.ResourceRequirements{},
},
},
RestartPolicy: v1.RestartPolicyOnFailure,
},
Я хочу предоставить ограничения ресурсов как соответствующие, как:
resources: limits: cpu: "1" requests: cpu: "0.5" args: - -cpus - "2"
Как мне продолжать это делать. Я попытался добавить Limits и его пару значений ключа карты, но это, похоже, довольно вложенная структура. Кажется, что нет никакого примера относительно того, как предоставить ресурсы в клиенте Kube Go.
2 ответа
Я боролся с тем же, когда создавал набор состояний. Может быть, мой codenipped поможет вам:
Resources: apiv1.ResourceRequirements{
Limits: apiv1.ResourceList{
"cpu": resource.MustParse(cpuLimit),
"memory": resource.MustParse(memLimit),
},
Requests: apiv1.ResourceList{
"cpu": resource.MustParse(cpuReq),
"memory": resource.MustParse(memReq),
},
},
переменные cpuReq, memReq, cpuLimit и memLimit должны быть строками
Здесь вы можете найти определение v1.ResourceRequirements{}
:
// ResourceRequirements describes the compute resource requirements.
type ResourceRequirements struct {
// Limits describes the maximum amount of compute resources allowed.
// More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
// +optional
Limits ResourceList `json:"limits,omitempty" protobuf:"bytes,1,rep,name=limits,casttype=ResourceList,castkey=ResourceName"`
// Requests describes the minimum amount of compute resources required.
// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
// otherwise to an implementation-defined value.
// More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
// +optional
Requests ResourceList `json:"requests,omitempty" protobuf:"bytes,2,rep,name=requests,casttype=ResourceList,castkey=ResourceName"`
}
// ResourceList is a set of (resource name, quantity) pairs.
type ResourceList map[ResourceName]resource.Quantity
Здесь вы можете найти тестовый файл с примером использования.
Плагин Sourcegraph для Crome или Firefox может быть очень полезен для работы с исходным кодом на GitHub.