implementation of proxy port allocation

This commit is contained in:
James DeFelice
2015-05-18 17:11:25 +00:00
parent 497f99ff85
commit 4abcf7449c
6 changed files with 307 additions and 22 deletions

View File

@@ -48,6 +48,7 @@ type ProxyServer struct {
ResourceContainer string
Master string
Kubeconfig string
PortRange util.PortRange
}
// NewProxyServer creates a new ProxyServer object with default parameters
@@ -70,6 +71,7 @@ func (s *ProxyServer) AddFlags(fs *pflag.FlagSet) {
fs.IntVar(&s.OOMScoreAdj, "oom-score-adj", s.OOMScoreAdj, "The oom_score_adj value for kube-proxy process. Values must be within the range [-1000, 1000]")
fs.StringVar(&s.ResourceContainer, "resource-container", s.ResourceContainer, "Absolute name of the resource-only container to create and run the Kube-proxy in (Default: /kube-proxy).")
fs.StringVar(&s.Kubeconfig, "kubeconfig", s.Kubeconfig, "Path to kubeconfig file with authorization information (the master location is set by the master flag).")
fs.Var(&s.PortRange, "proxy-port-range", "Range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen.")
}
// Run runs the specified ProxyServer. This should never exit.
@@ -94,7 +96,7 @@ func (s *ProxyServer) Run(_ []string) error {
protocol = iptables.ProtocolIpv6
}
loadBalancer := proxy.NewLoadBalancerRR()
proxier, err := proxy.NewProxier(loadBalancer, net.IP(s.BindAddress), iptables.New(exec.New(), protocol))
proxier, err := proxy.NewProxier(loadBalancer, net.IP(s.BindAddress), iptables.New(exec.New(), protocol), s.PortRange)
if err != nil {
glog.Fatalf("Unable to create proxer: %v", err)
}