mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Merge pull request #40980 from k82cn/fix_39136
Automatic merge from submit-queue (batch tested with PRs 40980, 40985) Updated NodeRef to clientv1.ObjectReference. fixes #40979
This commit is contained in:
commit
63ae15e012
@ -18,7 +18,6 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//cmd/kube-proxy/app/options:go_default_library",
|
"//cmd/kube-proxy/app/options:go_default_library",
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/v1:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||||
"//pkg/proxy:go_default_library",
|
"//pkg/proxy:go_default_library",
|
||||||
"//pkg/proxy/config:go_default_library",
|
"//pkg/proxy/config:go_default_library",
|
||||||
@ -42,6 +41,7 @@ go_library(
|
|||||||
"//vendor:k8s.io/apimachinery/pkg/types",
|
"//vendor:k8s.io/apimachinery/pkg/types",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/util/net",
|
"//vendor:k8s.io/apimachinery/pkg/util/net",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/util/wait",
|
"//vendor:k8s.io/apimachinery/pkg/util/wait",
|
||||||
|
"//vendor:k8s.io/client-go/kubernetes",
|
||||||
"//vendor:k8s.io/client-go/kubernetes/typed/core/v1",
|
"//vendor:k8s.io/client-go/kubernetes/typed/core/v1",
|
||||||
"//vendor:k8s.io/client-go/pkg/api/v1",
|
"//vendor:k8s.io/client-go/pkg/api/v1",
|
||||||
"//vendor:k8s.io/client-go/tools/clientcmd",
|
"//vendor:k8s.io/client-go/tools/clientcmd",
|
||||||
|
@ -13,7 +13,6 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/v1:go_default_library",
|
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/apis/componentconfig:go_default_library",
|
||||||
"//pkg/apis/componentconfig/v1alpha1:go_default_library",
|
"//pkg/apis/componentconfig/v1alpha1:go_default_library",
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
@ -21,6 +20,7 @@ go_library(
|
|||||||
"//pkg/util:go_default_library",
|
"//pkg/util:go_default_library",
|
||||||
"//vendor:github.com/spf13/pflag",
|
"//vendor:github.com/spf13/pflag",
|
||||||
"//vendor:k8s.io/apiserver/pkg/util/feature",
|
"//vendor:k8s.io/apiserver/pkg/util/feature",
|
||||||
|
"//vendor:k8s.io/client-go/pkg/api/v1",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
clientv1 "k8s.io/client-go/pkg/api/v1"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
|
"k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
|
||||||
_ "k8s.io/kubernetes/pkg/features"
|
_ "k8s.io/kubernetes/pkg/features"
|
||||||
@ -45,7 +45,7 @@ type ProxyServerConfig struct {
|
|||||||
KubeAPIBurst int32
|
KubeAPIBurst int32
|
||||||
ConfigSyncPeriod time.Duration
|
ConfigSyncPeriod time.Duration
|
||||||
CleanupAndExit bool
|
CleanupAndExit bool
|
||||||
NodeRef *v1.ObjectReference
|
NodeRef *clientv1.ObjectReference
|
||||||
Master string
|
Master string
|
||||||
Kubeconfig string
|
Kubeconfig string
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
utilnet "k8s.io/apimachinery/pkg/util/net"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
|
clientgoclientset "k8s.io/client-go/kubernetes"
|
||||||
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
|
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||||
clientv1 "k8s.io/client-go/pkg/api/v1"
|
clientv1 "k8s.io/client-go/pkg/api/v1"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
@ -39,7 +40,6 @@ import (
|
|||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/kubernetes/cmd/kube-proxy/app/options"
|
"k8s.io/kubernetes/cmd/kube-proxy/app/options"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||||
"k8s.io/kubernetes/pkg/proxy"
|
"k8s.io/kubernetes/pkg/proxy"
|
||||||
proxyconfig "k8s.io/kubernetes/pkg/proxy/config"
|
proxyconfig "k8s.io/kubernetes/pkg/proxy/config"
|
||||||
@ -63,6 +63,7 @@ import (
|
|||||||
|
|
||||||
type ProxyServer struct {
|
type ProxyServer struct {
|
||||||
Client clientset.Interface
|
Client clientset.Interface
|
||||||
|
EventClient v1core.EventsGetter
|
||||||
Config *options.ProxyServerConfig
|
Config *options.ProxyServerConfig
|
||||||
IptInterface utiliptables.Interface
|
IptInterface utiliptables.Interface
|
||||||
Proxier proxy.ProxyProvider
|
Proxier proxy.ProxyProvider
|
||||||
@ -87,6 +88,7 @@ func checkKnownProxyMode(proxyMode string) bool {
|
|||||||
|
|
||||||
func NewProxyServer(
|
func NewProxyServer(
|
||||||
client clientset.Interface,
|
client clientset.Interface,
|
||||||
|
eventClient v1core.EventsGetter,
|
||||||
config *options.ProxyServerConfig,
|
config *options.ProxyServerConfig,
|
||||||
iptInterface utiliptables.Interface,
|
iptInterface utiliptables.Interface,
|
||||||
proxier proxy.ProxyProvider,
|
proxier proxy.ProxyProvider,
|
||||||
@ -97,6 +99,7 @@ func NewProxyServer(
|
|||||||
) (*ProxyServer, error) {
|
) (*ProxyServer, error) {
|
||||||
return &ProxyServer{
|
return &ProxyServer{
|
||||||
Client: client,
|
Client: client,
|
||||||
|
EventClient: eventClient,
|
||||||
Config: config,
|
Config: config,
|
||||||
IptInterface: iptInterface,
|
IptInterface: iptInterface,
|
||||||
Proxier: proxier,
|
Proxier: proxier,
|
||||||
@ -203,6 +206,11 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err
|
|||||||
glog.Fatalf("Invalid API configuration: %v", err)
|
glog.Fatalf("Invalid API configuration: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eventClient, err := clientgoclientset.NewForConfig(kubeconfig)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
// Create event recorder
|
// Create event recorder
|
||||||
hostname := nodeutil.GetHostname(config.HostnameOverride)
|
hostname := nodeutil.GetHostname(config.HostnameOverride)
|
||||||
eventBroadcaster := record.NewBroadcaster()
|
eventBroadcaster := record.NewBroadcaster()
|
||||||
@ -303,7 +311,7 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err
|
|||||||
endpointsConfig.Channel("api"),
|
endpointsConfig.Channel("api"),
|
||||||
)
|
)
|
||||||
|
|
||||||
config.NodeRef = &v1.ObjectReference{
|
config.NodeRef = &clientv1.ObjectReference{
|
||||||
Kind: "Node",
|
Kind: "Node",
|
||||||
Name: hostname,
|
Name: hostname,
|
||||||
UID: types.UID(hostname),
|
UID: types.UID(hostname),
|
||||||
@ -312,7 +320,7 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err
|
|||||||
|
|
||||||
conntracker := realConntracker{}
|
conntracker := realConntracker{}
|
||||||
|
|
||||||
return NewProxyServer(client, config, iptInterface, proxier, eventBroadcaster, recorder, conntracker, proxyMode)
|
return NewProxyServer(client, eventClient, config, iptInterface, proxier, eventBroadcaster, recorder, conntracker, proxyMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run runs the specified ProxyServer. This should never exit (unless CleanupAndExit is set).
|
// Run runs the specified ProxyServer. This should never exit (unless CleanupAndExit is set).
|
||||||
@ -327,7 +335,7 @@ func (s *ProxyServer) Run() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(s.Client.Core().RESTClient()).Events("")})
|
s.Broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: s.EventClient.Events("")})
|
||||||
|
|
||||||
// Start up a webserver if requested
|
// Start up a webserver if requested
|
||||||
if s.Config.HealthzPort > 0 {
|
if s.Config.HealthzPort > 0 {
|
||||||
|
@ -34,6 +34,7 @@ go_library(
|
|||||||
"//vendor:github.com/spf13/pflag",
|
"//vendor:github.com/spf13/pflag",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
||||||
"//vendor:k8s.io/apiserver/pkg/util/flag",
|
"//vendor:k8s.io/apiserver/pkg/util/flag",
|
||||||
|
"//vendor:k8s.io/client-go/kubernetes",
|
||||||
"//vendor:k8s.io/client-go/pkg/api/v1",
|
"//vendor:k8s.io/client-go/pkg/api/v1",
|
||||||
"//vendor:k8s.io/client-go/rest",
|
"//vendor:k8s.io/client-go/rest",
|
||||||
"//vendor:k8s.io/client-go/tools/clientcmd",
|
"//vendor:k8s.io/client-go/tools/clientcmd",
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apiserver/pkg/util/flag"
|
"k8s.io/apiserver/pkg/util/flag"
|
||||||
|
clientgoclientset "k8s.io/client-go/kubernetes"
|
||||||
clientv1 "k8s.io/client-go/pkg/api/v1"
|
clientv1 "k8s.io/client-go/pkg/api/v1"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
@ -140,7 +141,21 @@ func main() {
|
|||||||
endpointsConfig := proxyconfig.NewEndpointsConfig()
|
endpointsConfig := proxyconfig.NewEndpointsConfig()
|
||||||
endpointsConfig.RegisterHandler(&kubemark.FakeProxyHandler{})
|
endpointsConfig.RegisterHandler(&kubemark.FakeProxyHandler{})
|
||||||
|
|
||||||
hollowProxy := kubemark.NewHollowProxyOrDie(config.NodeName, internalClientset, endpointsConfig, serviceConfig, iptInterface, eventBroadcaster, recorder)
|
eventClient, err := clientgoclientset.NewForConfig(clientConfig)
|
||||||
|
if err != nil {
|
||||||
|
glog.Fatalf("Failed to create API Server client: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
hollowProxy := kubemark.NewHollowProxyOrDie(
|
||||||
|
config.NodeName,
|
||||||
|
internalClientset,
|
||||||
|
eventClient,
|
||||||
|
endpointsConfig,
|
||||||
|
serviceConfig,
|
||||||
|
iptInterface,
|
||||||
|
eventBroadcaster,
|
||||||
|
recorder,
|
||||||
|
)
|
||||||
hollowProxy.Run()
|
hollowProxy.Run()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,6 @@ go_library(
|
|||||||
"//cmd/kube-proxy/app/options:go_default_library",
|
"//cmd/kube-proxy/app/options:go_default_library",
|
||||||
"//cmd/kubelet/app:go_default_library",
|
"//cmd/kubelet/app:go_default_library",
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/v1:go_default_library",
|
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/apis/componentconfig:go_default_library",
|
||||||
"//pkg/apis/componentconfig/v1alpha1:go_default_library",
|
"//pkg/apis/componentconfig/v1alpha1:go_default_library",
|
||||||
"//pkg/client/clientset_generated/clientset:go_default_library",
|
"//pkg/client/clientset_generated/clientset:go_default_library",
|
||||||
@ -42,6 +41,8 @@ go_library(
|
|||||||
"//vendor:github.com/golang/glog",
|
"//vendor:github.com/golang/glog",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
|
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/types",
|
"//vendor:k8s.io/apimachinery/pkg/types",
|
||||||
|
"//vendor:k8s.io/client-go/kubernetes/typed/core/v1",
|
||||||
|
"//vendor:k8s.io/client-go/pkg/api/v1",
|
||||||
"//vendor:k8s.io/client-go/tools/record",
|
"//vendor:k8s.io/client-go/tools/record",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -20,11 +20,12 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||||
|
clientv1 "k8s.io/client-go/pkg/api/v1"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
proxyapp "k8s.io/kubernetes/cmd/kube-proxy/app"
|
proxyapp "k8s.io/kubernetes/cmd/kube-proxy/app"
|
||||||
"k8s.io/kubernetes/cmd/kube-proxy/app/options"
|
"k8s.io/kubernetes/cmd/kube-proxy/app/options"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||||
proxyconfig "k8s.io/kubernetes/pkg/proxy/config"
|
proxyconfig "k8s.io/kubernetes/pkg/proxy/config"
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
@ -53,6 +54,7 @@ func (*FakeProxier) SyncLoop() {
|
|||||||
func NewHollowProxyOrDie(
|
func NewHollowProxyOrDie(
|
||||||
nodeName string,
|
nodeName string,
|
||||||
client clientset.Interface,
|
client clientset.Interface,
|
||||||
|
eventClient v1core.EventsGetter,
|
||||||
endpointsConfig *proxyconfig.EndpointsConfig,
|
endpointsConfig *proxyconfig.EndpointsConfig,
|
||||||
serviceConfig *proxyconfig.ServiceConfig,
|
serviceConfig *proxyconfig.ServiceConfig,
|
||||||
iptInterface utiliptables.Interface,
|
iptInterface utiliptables.Interface,
|
||||||
@ -63,7 +65,7 @@ func NewHollowProxyOrDie(
|
|||||||
config := options.NewProxyConfig()
|
config := options.NewProxyConfig()
|
||||||
config.OOMScoreAdj = util.Int32Ptr(0)
|
config.OOMScoreAdj = util.Int32Ptr(0)
|
||||||
config.ResourceContainer = ""
|
config.ResourceContainer = ""
|
||||||
config.NodeRef = &v1.ObjectReference{
|
config.NodeRef = &clientv1.ObjectReference{
|
||||||
Kind: "Node",
|
Kind: "Node",
|
||||||
Name: nodeName,
|
Name: nodeName,
|
||||||
UID: types.UID(nodeName),
|
UID: types.UID(nodeName),
|
||||||
@ -76,7 +78,7 @@ func NewHollowProxyOrDie(
|
|||||||
endpointsConfig.Channel("api"),
|
endpointsConfig.Channel("api"),
|
||||||
)
|
)
|
||||||
|
|
||||||
hollowProxy, err := proxyapp.NewProxyServer(client, config, iptInterface, &FakeProxier{}, broadcaster, recorder, nil, "fake")
|
hollowProxy, err := proxyapp.NewProxyServer(client, eventClient, config, iptInterface, &FakeProxier{}, broadcaster, recorder, nil, "fake")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatalf("Error while creating ProxyServer: %v\n", err)
|
glog.Fatalf("Error while creating ProxyServer: %v\n", err)
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,6 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//pkg/api:go_default_library",
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/service:go_default_library",
|
"//pkg/api/service:go_default_library",
|
||||||
"//pkg/api/v1:go_default_library",
|
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/proxy:go_default_library",
|
"//pkg/proxy:go_default_library",
|
||||||
"//pkg/proxy/healthcheck:go_default_library",
|
"//pkg/proxy/healthcheck:go_default_library",
|
||||||
@ -29,6 +28,7 @@ go_library(
|
|||||||
"//vendor:k8s.io/apimachinery/pkg/types",
|
"//vendor:k8s.io/apimachinery/pkg/types",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
||||||
"//vendor:k8s.io/apiserver/pkg/util/feature",
|
"//vendor:k8s.io/apiserver/pkg/util/feature",
|
||||||
|
"//vendor:k8s.io/client-go/pkg/api/v1",
|
||||||
"//vendor:k8s.io/client-go/tools/record",
|
"//vendor:k8s.io/client-go/tools/record",
|
||||||
"//vendor:k8s.io/client-go/util/flowcontrol",
|
"//vendor:k8s.io/client-go/util/flowcontrol",
|
||||||
],
|
],
|
||||||
|
@ -38,11 +38,11 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
clientv1 "k8s.io/client-go/pkg/api/v1"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/client-go/util/flowcontrol"
|
"k8s.io/client-go/util/flowcontrol"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
apiservice "k8s.io/kubernetes/pkg/api/service"
|
apiservice "k8s.io/kubernetes/pkg/api/service"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
"k8s.io/kubernetes/pkg/proxy"
|
"k8s.io/kubernetes/pkg/proxy"
|
||||||
"k8s.io/kubernetes/pkg/proxy/healthcheck"
|
"k8s.io/kubernetes/pkg/proxy/healthcheck"
|
||||||
@ -1010,7 +1010,7 @@ func (proxier *Proxier) syncProxyRules() {
|
|||||||
msg := fmt.Sprintf("can't open %s, skipping this externalIP: %v", lp.String(), err)
|
msg := fmt.Sprintf("can't open %s, skipping this externalIP: %v", lp.String(), err)
|
||||||
|
|
||||||
proxier.recorder.Eventf(
|
proxier.recorder.Eventf(
|
||||||
&v1.ObjectReference{
|
&clientv1.ObjectReference{
|
||||||
Kind: "Node",
|
Kind: "Node",
|
||||||
Name: proxier.hostname,
|
Name: proxier.hostname,
|
||||||
UID: types.UID(proxier.hostname),
|
UID: types.UID(proxier.hostname),
|
||||||
|
Loading…
Reference in New Issue
Block a user