Merge pull request #118146 from aroradaman/fix/proxy-healthzserver
proxy healthz server for dualstack clusters
This commit is contained in:
@@ -578,7 +578,7 @@ type ProxyServer struct {
|
||||
Broadcaster events.EventBroadcaster
|
||||
Recorder events.EventRecorder
|
||||
NodeRef *v1.ObjectReference
|
||||
HealthzServer healthcheck.ProxierHealthUpdater
|
||||
HealthzServer *healthcheck.ProxierHealthServer
|
||||
Hostname string
|
||||
PrimaryIPFamily v1.IPFamily
|
||||
NodeIPs map[v1.IPFamily]net.IP
|
||||
@@ -626,7 +626,7 @@ func newProxyServer(config *kubeproxyconfig.KubeProxyConfiguration, master strin
|
||||
}
|
||||
|
||||
if len(config.HealthzBindAddress) > 0 {
|
||||
s.HealthzServer = healthcheck.NewProxierHealthServer(config.HealthzBindAddress, 2*config.IPTables.SyncPeriod.Duration, s.Recorder, s.NodeRef)
|
||||
s.HealthzServer = healthcheck.NewProxierHealthServer(config.HealthzBindAddress, 2*config.IPTables.SyncPeriod.Duration)
|
||||
}
|
||||
|
||||
err = s.platformSetup()
|
||||
@@ -787,7 +787,7 @@ func createClient(config componentbaseconfig.ClientConnectionConfiguration, mast
|
||||
return client, nil
|
||||
}
|
||||
|
||||
func serveHealthz(hz healthcheck.ProxierHealthUpdater, errCh chan error) {
|
||||
func serveHealthz(hz *healthcheck.ProxierHealthServer, errCh chan error) {
|
||||
if hz == nil {
|
||||
return
|
||||
}
|
||||
@@ -873,16 +873,17 @@ func (s *ProxyServer) Run() error {
|
||||
|
||||
// TODO(thockin): make it possible for healthz and metrics to be on the same port.
|
||||
|
||||
var errCh chan error
|
||||
var healthzErrCh, metricsErrCh chan error
|
||||
if s.Config.BindAddressHardFail {
|
||||
errCh = make(chan error)
|
||||
healthzErrCh = make(chan error)
|
||||
metricsErrCh = make(chan error)
|
||||
}
|
||||
|
||||
// Start up a healthz server if requested
|
||||
serveHealthz(s.HealthzServer, errCh)
|
||||
serveHealthz(s.HealthzServer, healthzErrCh)
|
||||
|
||||
// Start up a metrics server if requested
|
||||
serveMetrics(s.Config.MetricsBindAddress, s.Config.Mode, s.Config.EnableProfiling, errCh)
|
||||
serveMetrics(s.Config.MetricsBindAddress, s.Config.Mode, s.Config.EnableProfiling, metricsErrCh)
|
||||
|
||||
noProxyName, err := labels.NewRequirement(apis.LabelServiceProxyName, selection.DoesNotExist, nil)
|
||||
if err != nil {
|
||||
@@ -947,7 +948,13 @@ func (s *ProxyServer) Run() error {
|
||||
|
||||
go s.Proxier.SyncLoop()
|
||||
|
||||
return <-errCh
|
||||
select {
|
||||
case err = <-healthzErrCh:
|
||||
s.Recorder.Eventf(s.NodeRef, nil, api.EventTypeWarning, "FailedToStartProxierHealthcheck", "StartKubeProxy", err.Error())
|
||||
case err = <-metricsErrCh:
|
||||
s.Recorder.Eventf(s.NodeRef, nil, api.EventTypeWarning, "FailedToStartMetricServer", "StartKubeProxy", err.Error())
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *ProxyServer) birthCry() {
|
||||
|
||||
@@ -103,6 +103,7 @@ func (s *ProxyServer) createProxier(config *proxyconfigapi.KubeProxyConfiguratio
|
||||
)
|
||||
} else {
|
||||
proxier, err = winkernel.NewProxier(
|
||||
s.PrimaryIPFamily,
|
||||
config.IPTables.SyncPeriod.Duration,
|
||||
config.IPTables.MinSyncPeriod.Duration,
|
||||
config.ClusterCIDR,
|
||||
|
||||
Reference in New Issue
Block a user