mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 03:33:56 +00:00
Merge pull request #123446 from linxiulei/hit_cache
Hit APIServer cache when testing healthiness
This commit is contained in:
commit
d34fbeb0a3
@ -41,6 +41,7 @@ import (
|
|||||||
storagelisters "k8s.io/client-go/listers/storage/v1"
|
storagelisters "k8s.io/client-go/listers/storage/v1"
|
||||||
csitranslationplugins "k8s.io/csi-translation-lib/plugins"
|
csitranslationplugins "k8s.io/csi-translation-lib/plugins"
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
|
"k8s.io/kubernetes/pkg/kubelet/util"
|
||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
"k8s.io/kubernetes/pkg/volume/csi/nodeinfomanager"
|
"k8s.io/kubernetes/pkg/volume/csi/nodeinfomanager"
|
||||||
volumetypes "k8s.io/kubernetes/pkg/volume/util/types"
|
volumetypes "k8s.io/kubernetes/pkg/volume/util/types"
|
||||||
@ -867,12 +868,16 @@ func unregisterDriver(driverName string) error {
|
|||||||
// for a healthy APIServer
|
// for a healthy APIServer
|
||||||
func waitForAPIServerForever(client clientset.Interface, nodeName types.NodeName) error {
|
func waitForAPIServerForever(client clientset.Interface, nodeName types.NodeName) error {
|
||||||
var lastErr error
|
var lastErr error
|
||||||
|
// Served object is discarded so no risk to have stale object with benefit to
|
||||||
|
// reduce the load on APIServer and etcd.
|
||||||
|
opts := meta.GetOptions{}
|
||||||
|
util.FromApiserverCache(&opts)
|
||||||
err := wait.PollImmediateInfinite(time.Second, func() (bool, error) {
|
err := wait.PollImmediateInfinite(time.Second, func() (bool, error) {
|
||||||
// Get a CSINode from API server to make sure 1) kubelet can reach API server
|
// Get a CSINode from API server to make sure 1) kubelet can reach API server
|
||||||
// and 2) it has enough permissions. Kubelet may have restricted permissions
|
// and 2) it has enough permissions. Kubelet may have restricted permissions
|
||||||
// when it's bootstrapping TLS.
|
// when it's bootstrapping TLS.
|
||||||
// https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/
|
// https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/
|
||||||
_, lastErr = client.StorageV1().CSINodes().Get(context.TODO(), string(nodeName), meta.GetOptions{})
|
_, lastErr = client.StorageV1().CSINodes().Get(context.TODO(), string(nodeName), opts)
|
||||||
if lastErr == nil || apierrors.IsNotFound(lastErr) {
|
if lastErr == nil || apierrors.IsNotFound(lastErr) {
|
||||||
// API server contacted
|
// API server contacted
|
||||||
return true, nil
|
return true, nil
|
||||||
|
Loading…
Reference in New Issue
Block a user