mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 02:41:25 +00:00
Merge pull request #69283 from chrisohaver/trackdns2
Add option to track dns pods
This commit is contained in:
commit
59957af125
@ -251,9 +251,19 @@ func (f *Framework) BeforeEach() {
|
|||||||
|
|
||||||
if TestContext.GatherKubeSystemResourceUsageData != "false" && TestContext.GatherKubeSystemResourceUsageData != "none" {
|
if TestContext.GatherKubeSystemResourceUsageData != "false" && TestContext.GatherKubeSystemResourceUsageData != "none" {
|
||||||
var err error
|
var err error
|
||||||
|
var nodeMode NodesSet
|
||||||
|
switch TestContext.GatherKubeSystemResourceUsageData {
|
||||||
|
case "master":
|
||||||
|
nodeMode = MasterNodes
|
||||||
|
case "masteranddns":
|
||||||
|
nodeMode = MasterAndDNSNodes
|
||||||
|
default:
|
||||||
|
nodeMode = AllNodes
|
||||||
|
}
|
||||||
|
|
||||||
f.gatherer, err = NewResourceUsageGatherer(f.ClientSet, ResourceGathererOptions{
|
f.gatherer, err = NewResourceUsageGatherer(f.ClientSet, ResourceGathererOptions{
|
||||||
InKubemark: ProviderIs("kubemark"),
|
InKubemark: ProviderIs("kubemark"),
|
||||||
MasterOnly: TestContext.GatherKubeSystemResourceUsageData == "master",
|
Nodes: nodeMode,
|
||||||
ResourceDataGatheringPeriod: 60 * time.Second,
|
ResourceDataGatheringPeriod: 60 * time.Second,
|
||||||
ProbeDuration: 15 * time.Second,
|
ProbeDuration: 15 * time.Second,
|
||||||
PrintVerboseLogs: false,
|
PrintVerboseLogs: false,
|
||||||
|
@ -202,12 +202,20 @@ type ContainerResourceGatherer struct {
|
|||||||
|
|
||||||
type ResourceGathererOptions struct {
|
type ResourceGathererOptions struct {
|
||||||
InKubemark bool
|
InKubemark bool
|
||||||
MasterOnly bool
|
Nodes NodesSet
|
||||||
ResourceDataGatheringPeriod time.Duration
|
ResourceDataGatheringPeriod time.Duration
|
||||||
ProbeDuration time.Duration
|
ProbeDuration time.Duration
|
||||||
PrintVerboseLogs bool
|
PrintVerboseLogs bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NodesSet int
|
||||||
|
|
||||||
|
const (
|
||||||
|
AllNodes NodesSet = 0 // All containers on all nodes
|
||||||
|
MasterNodes NodesSet = 1 // All containers on Master nodes only
|
||||||
|
MasterAndDNSNodes NodesSet = 2 // All containers on Master nodes and DNS containers on other nodes
|
||||||
|
)
|
||||||
|
|
||||||
func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOptions, pods *v1.PodList) (*ContainerResourceGatherer, error) {
|
func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOptions, pods *v1.PodList) (*ContainerResourceGatherer, error) {
|
||||||
g := ContainerResourceGatherer{
|
g := ContainerResourceGatherer{
|
||||||
client: c,
|
client: c,
|
||||||
@ -237,13 +245,23 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
dnsNodes := make(map[string]bool)
|
||||||
for _, pod := range pods.Items {
|
for _, pod := range pods.Items {
|
||||||
|
if (options.Nodes == MasterNodes) && !system.IsMasterNode(pod.Spec.NodeName) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if (options.Nodes == MasterAndDNSNodes) && !system.IsMasterNode(pod.Spec.NodeName) && pod.Labels["k8s-app"] != "kube-dns" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
for _, container := range pod.Status.InitContainerStatuses {
|
for _, container := range pod.Status.InitContainerStatuses {
|
||||||
g.containerIDs = append(g.containerIDs, container.Name)
|
g.containerIDs = append(g.containerIDs, container.Name)
|
||||||
}
|
}
|
||||||
for _, container := range pod.Status.ContainerStatuses {
|
for _, container := range pod.Status.ContainerStatuses {
|
||||||
g.containerIDs = append(g.containerIDs, container.Name)
|
g.containerIDs = append(g.containerIDs, container.Name)
|
||||||
}
|
}
|
||||||
|
if options.Nodes == MasterAndDNSNodes {
|
||||||
|
dnsNodes[pod.Spec.NodeName] = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{})
|
nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -252,7 +270,7 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, node := range nodeList.Items {
|
for _, node := range nodeList.Items {
|
||||||
if !options.MasterOnly || system.IsMasterNode(node.Name) {
|
if options.Nodes == AllNodes || system.IsMasterNode(node.Name) || dnsNodes[node.Name] {
|
||||||
g.workerWg.Add(1)
|
g.workerWg.Add(1)
|
||||||
g.workers = append(g.workers, resourceGatherWorker{
|
g.workers = append(g.workers, resourceGatherWorker{
|
||||||
c: c,
|
c: c,
|
||||||
@ -266,7 +284,7 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt
|
|||||||
probeDuration: options.ProbeDuration,
|
probeDuration: options.ProbeDuration,
|
||||||
printVerboseLogs: options.PrintVerboseLogs,
|
printVerboseLogs: options.PrintVerboseLogs,
|
||||||
})
|
})
|
||||||
if options.MasterOnly {
|
if options.Nodes == MasterNodes {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,7 +137,7 @@ func SetupNVIDIAGPUNode(f *framework.Framework, setupResourceGatherer bool) *fra
|
|||||||
var rsgather *framework.ContainerResourceGatherer
|
var rsgather *framework.ContainerResourceGatherer
|
||||||
if setupResourceGatherer {
|
if setupResourceGatherer {
|
||||||
framework.Logf("Starting ResourceUsageGather for the created DaemonSet pods.")
|
framework.Logf("Starting ResourceUsageGather for the created DaemonSet pods.")
|
||||||
rsgather, err = framework.NewResourceUsageGatherer(f.ClientSet, framework.ResourceGathererOptions{InKubemark: false, MasterOnly: false, ResourceDataGatheringPeriod: 2 * time.Second, ProbeDuration: 2 * time.Second, PrintVerboseLogs: true}, pods)
|
rsgather, err = framework.NewResourceUsageGatherer(f.ClientSet, framework.ResourceGathererOptions{InKubemark: false, Nodes: framework.AllNodes, ResourceDataGatheringPeriod: 2 * time.Second, ProbeDuration: 2 * time.Second, PrintVerboseLogs: true}, pods)
|
||||||
framework.ExpectNoError(err, "creating ResourceUsageGather for the daemonset pods")
|
framework.ExpectNoError(err, "creating ResourceUsageGather for the daemonset pods")
|
||||||
go rsgather.StartGatheringData()
|
go rsgather.StartGatheringData()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user