mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 10:43:56 +00:00
Explicitly restart kubelet to stabilize serial-containerd job
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This commit is contained in:
parent
5be21c50c2
commit
dab19517e5
@ -339,12 +339,17 @@ var _ = SIGDescribe("Memory Manager [Serial] [Feature:MemoryManager]", func() {
|
|||||||
}, 30*time.Second, framework.Poll).Should(gomega.BeNil())
|
}, 30*time.Second, framework.Poll).Should(gomega.BeNil())
|
||||||
|
|
||||||
ginkgo.By("restarting kubelet to pick up pre-allocated hugepages")
|
ginkgo.By("restarting kubelet to pick up pre-allocated hugepages")
|
||||||
|
|
||||||
// stop the kubelet and wait until the server will restart it automatically
|
// stop the kubelet and wait until the server will restart it automatically
|
||||||
stopKubelet()
|
stopKubelet()
|
||||||
|
|
||||||
// wait until the kubelet health check will fail
|
// wait until the kubelet health check will fail
|
||||||
gomega.Eventually(func() bool {
|
gomega.Eventually(func() bool {
|
||||||
return kubeletHealthCheck(kubeletHealthCheckURL)
|
return kubeletHealthCheck(kubeletHealthCheckURL)
|
||||||
}, time.Minute, time.Second).Should(gomega.BeFalse())
|
}, time.Minute, time.Second).Should(gomega.BeFalse())
|
||||||
|
|
||||||
|
restartKubelet()
|
||||||
|
|
||||||
// wait until the kubelet health check will pass
|
// wait until the kubelet health check will pass
|
||||||
gomega.Eventually(func() bool {
|
gomega.Eventually(func() bool {
|
||||||
return kubeletHealthCheck(kubeletHealthCheckURL)
|
return kubeletHealthCheck(kubeletHealthCheckURL)
|
||||||
|
@ -397,8 +397,14 @@ func getCRIClient() (internalapi.RuntimeService, internalapi.ImageManagerService
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Find a uniform way to deal with systemctl/initctl/service operations. #34494
|
// TODO: Find a uniform way to deal with systemctl/initctl/service operations. #34494
|
||||||
func findRunningKubletServiceName() string {
|
func findKubletServiceName(running bool) string {
|
||||||
stdout, err := exec.Command("sudo", "systemctl", "list-units", "*kubelet*", "--state=running").CombinedOutput()
|
cmdLine := []string{
|
||||||
|
"systemctl", "list-units", "*kubelet*",
|
||||||
|
}
|
||||||
|
if running {
|
||||||
|
cmdLine = append(cmdLine, "--state=running")
|
||||||
|
}
|
||||||
|
stdout, err := exec.Command("sudo", cmdLine...).CombinedOutput()
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
regex := regexp.MustCompile("(kubelet-\\w+)")
|
regex := regexp.MustCompile("(kubelet-\\w+)")
|
||||||
matches := regex.FindStringSubmatch(string(stdout))
|
matches := regex.FindStringSubmatch(string(stdout))
|
||||||
@ -409,7 +415,7 @@ func findRunningKubletServiceName() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func restartKubelet() {
|
func restartKubelet() {
|
||||||
kubeletServiceName := findRunningKubletServiceName()
|
kubeletServiceName := findKubletServiceName(false)
|
||||||
// reset the kubelet service start-limit-hit
|
// reset the kubelet service start-limit-hit
|
||||||
stdout, err := exec.Command("sudo", "systemctl", "reset-failed", kubeletServiceName).CombinedOutput()
|
stdout, err := exec.Command("sudo", "systemctl", "reset-failed", kubeletServiceName).CombinedOutput()
|
||||||
framework.ExpectNoError(err, "Failed to reset kubelet start-limit-hit with systemctl: %v, %v", err, stdout)
|
framework.ExpectNoError(err, "Failed to reset kubelet start-limit-hit with systemctl: %v, %v", err, stdout)
|
||||||
@ -420,7 +426,7 @@ func restartKubelet() {
|
|||||||
|
|
||||||
// stopKubelet will kill the running kubelet, and returns a func that will restart the process again
|
// stopKubelet will kill the running kubelet, and returns a func that will restart the process again
|
||||||
func stopKubelet() func() {
|
func stopKubelet() func() {
|
||||||
kubeletServiceName := findRunningKubletServiceName()
|
kubeletServiceName := findKubletServiceName(true)
|
||||||
|
|
||||||
// reset the kubelet service start-limit-hit
|
// reset the kubelet service start-limit-hit
|
||||||
stdout, err := exec.Command("sudo", "systemctl", "reset-failed", kubeletServiceName).CombinedOutput()
|
stdout, err := exec.Command("sudo", "systemctl", "reset-failed", kubeletServiceName).CombinedOutput()
|
||||||
|
Loading…
Reference in New Issue
Block a user