Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
f427d279
Commit
f427d279
authored
May 08, 2018
by
Pengfei Ni
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Do not check vmSetName when getting node IP
parent
a7433929
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
24 deletions
+28
-24
azure_fakes.go
pkg/cloudprovider/providers/azure/azure_fakes.go
+1
-1
azure_standard.go
pkg/cloudprovider/providers/azure/azure_standard.go
+18
-8
azure_vmsets.go
pkg/cloudprovider/providers/azure/azure_vmsets.go
+3
-3
azure_vmss.go
pkg/cloudprovider/providers/azure/azure_vmss.go
+6
-12
No files found.
pkg/cloudprovider/providers/azure/azure_fakes.go
View file @
f427d279
...
@@ -850,7 +850,7 @@ func (f *fakeVMSet) GetIPByNodeName(name, vmSetName string) (string, string, err
...
@@ -850,7 +850,7 @@ func (f *fakeVMSet) GetIPByNodeName(name, vmSetName string) (string, string, err
return
ip
,
""
,
nil
return
ip
,
""
,
nil
}
}
func
(
f
*
fakeVMSet
)
GetPrimaryInterface
(
nodeName
,
vmSetName
string
)
(
network
.
Interface
,
error
)
{
func
(
f
*
fakeVMSet
)
GetPrimaryInterface
(
nodeName
string
)
(
network
.
Interface
,
error
)
{
return
network
.
Interface
{},
fmt
.
Errorf
(
"unimplemented"
)
return
network
.
Interface
{},
fmt
.
Errorf
(
"unimplemented"
)
}
}
...
...
pkg/cloudprovider/providers/azure/azure_standard.go
View file @
f427d279
...
@@ -289,7 +289,7 @@ outer:
...
@@ -289,7 +289,7 @@ outer:
}
}
func
(
az
*
Cloud
)
getIPForMachine
(
nodeName
types
.
NodeName
)
(
string
,
string
,
error
)
{
func
(
az
*
Cloud
)
getIPForMachine
(
nodeName
types
.
NodeName
)
(
string
,
string
,
error
)
{
return
az
.
vmSet
.
GetIPByNodeName
(
string
(
nodeName
)
,
""
)
return
az
.
vmSet
.
GetIPByNodeName
(
string
(
nodeName
))
}
}
var
polyTable
=
crc32
.
MakeTable
(
crc32
.
Koopman
)
var
polyTable
=
crc32
.
MakeTable
(
crc32
.
Koopman
)
...
@@ -429,8 +429,8 @@ func (as *availabilitySet) GetPrimaryVMSetName() string {
...
@@ -429,8 +429,8 @@ func (as *availabilitySet) GetPrimaryVMSetName() string {
}
}
// GetIPByNodeName gets machine private IP and public IP by node name.
// GetIPByNodeName gets machine private IP and public IP by node name.
func
(
as
*
availabilitySet
)
GetIPByNodeName
(
name
,
vmSetName
string
)
(
string
,
string
,
error
)
{
func
(
as
*
availabilitySet
)
GetIPByNodeName
(
name
string
)
(
string
,
string
,
error
)
{
nic
,
err
:=
as
.
GetPrimaryInterface
(
name
,
vmSetName
)
nic
,
err
:=
as
.
GetPrimaryInterface
(
name
)
if
err
!=
nil
{
if
err
!=
nil
{
return
""
,
""
,
err
return
""
,
""
,
err
}
}
...
@@ -554,8 +554,13 @@ func (as *availabilitySet) GetVMSetNames(service *v1.Service, nodes []*v1.Node)
...
@@ -554,8 +554,13 @@ func (as *availabilitySet) GetVMSetNames(service *v1.Service, nodes []*v1.Node)
return
availabilitySetNames
,
nil
return
availabilitySetNames
,
nil
}
}
// GetPrimaryInterface gets machine primary network interface by node name and vmSet.
// GetPrimaryInterface gets machine primary network interface by node name.
func
(
as
*
availabilitySet
)
GetPrimaryInterface
(
nodeName
,
vmSetName
string
)
(
network
.
Interface
,
error
)
{
func
(
as
*
availabilitySet
)
GetPrimaryInterface
(
nodeName
string
)
(
network
.
Interface
,
error
)
{
return
as
.
getPrimaryInterfaceWithVMSet
(
nodeName
,
""
)
}
// getPrimaryInterfaceWithVMSet gets machine primary network interface by node name and vmSet.
func
(
as
*
availabilitySet
)
getPrimaryInterfaceWithVMSet
(
nodeName
,
vmSetName
string
)
(
network
.
Interface
,
error
)
{
var
machine
compute
.
VirtualMachine
var
machine
compute
.
VirtualMachine
machine
,
err
:=
as
.
GetVirtualMachineWithRetry
(
types
.
NodeName
(
nodeName
))
machine
,
err
:=
as
.
GetVirtualMachineWithRetry
(
types
.
NodeName
(
nodeName
))
...
@@ -573,8 +578,13 @@ func (as *availabilitySet) GetPrimaryInterface(nodeName, vmSetName string) (netw
...
@@ -573,8 +578,13 @@ func (as *availabilitySet) GetPrimaryInterface(nodeName, vmSetName string) (netw
return
network
.
Interface
{},
err
return
network
.
Interface
{},
err
}
}
// Check availability set.
// Check availability set name. Note that vmSetName is empty string when getting
// Backends of Standard load balancer could belong to multiple VMAS, so we don't check vmSet for it.
// the Node's IP address. While vmSetName is not empty, it should be checked with
// Node's real availability set name:
// - For basic SKU load balancer, errNotInVMSet should be returned if the node's
// availability set is mismatched with vmSetName.
// - For standard SKU load balancer, backend could belong to multiple VMAS, so we
// don't check vmSet for it.
if
vmSetName
!=
""
&&
!
as
.
useStandardLoadBalancer
()
{
if
vmSetName
!=
""
&&
!
as
.
useStandardLoadBalancer
()
{
expectedAvailabilitySetName
:=
as
.
getAvailabilitySetID
(
vmSetName
)
expectedAvailabilitySetName
:=
as
.
getAvailabilitySetID
(
vmSetName
)
if
machine
.
AvailabilitySet
==
nil
||
!
strings
.
EqualFold
(
*
machine
.
AvailabilitySet
.
ID
,
expectedAvailabilitySetName
)
{
if
machine
.
AvailabilitySet
==
nil
||
!
strings
.
EqualFold
(
*
machine
.
AvailabilitySet
.
ID
,
expectedAvailabilitySetName
)
{
...
@@ -598,7 +608,7 @@ func (as *availabilitySet) GetPrimaryInterface(nodeName, vmSetName string) (netw
...
@@ -598,7 +608,7 @@ func (as *availabilitySet) GetPrimaryInterface(nodeName, vmSetName string) (netw
// participating in the specified LoadBalancer Backend Pool.
// participating in the specified LoadBalancer Backend Pool.
func
(
as
*
availabilitySet
)
ensureHostInPool
(
serviceName
string
,
nodeName
types
.
NodeName
,
backendPoolID
string
,
vmSetName
string
,
isInternal
bool
)
error
{
func
(
as
*
availabilitySet
)
ensureHostInPool
(
serviceName
string
,
nodeName
types
.
NodeName
,
backendPoolID
string
,
vmSetName
string
,
isInternal
bool
)
error
{
vmName
:=
mapNodeNameToVMName
(
nodeName
)
vmName
:=
mapNodeNameToVMName
(
nodeName
)
nic
,
err
:=
as
.
GetPrimaryInterface
(
vmName
,
vmSetName
)
nic
,
err
:=
as
.
getPrimaryInterfaceWithVMSet
(
vmName
,
vmSetName
)
if
err
!=
nil
{
if
err
!=
nil
{
if
err
==
errNotInVMSet
{
if
err
==
errNotInVMSet
{
glog
.
V
(
3
)
.
Infof
(
"ensureHostInPool skips node %s because it is not in the vmSet %s"
,
nodeName
,
vmSetName
)
glog
.
V
(
3
)
.
Infof
(
"ensureHostInPool skips node %s because it is not in the vmSet %s"
,
nodeName
,
vmSetName
)
...
...
pkg/cloudprovider/providers/azure/azure_vmsets.go
View file @
f427d279
...
@@ -35,9 +35,9 @@ type VMSet interface {
...
@@ -35,9 +35,9 @@ type VMSet interface {
// GetInstanceTypeByNodeName gets the instance type by node name.
// GetInstanceTypeByNodeName gets the instance type by node name.
GetInstanceTypeByNodeName
(
name
string
)
(
string
,
error
)
GetInstanceTypeByNodeName
(
name
string
)
(
string
,
error
)
// GetIPByNodeName gets machine private IP and public IP by node name.
// GetIPByNodeName gets machine private IP and public IP by node name.
GetIPByNodeName
(
name
,
vmSetName
string
)
(
string
,
string
,
error
)
GetIPByNodeName
(
name
string
)
(
string
,
string
,
error
)
// GetPrimaryInterface gets machine primary network interface by node name
and vmSet
.
// GetPrimaryInterface gets machine primary network interface by node name.
GetPrimaryInterface
(
nodeName
,
vmSetName
string
)
(
network
.
Interface
,
error
)
GetPrimaryInterface
(
nodeName
string
)
(
network
.
Interface
,
error
)
// GetNodeNameByProviderID gets the node name by provider ID.
// GetNodeNameByProviderID gets the node name by provider ID.
GetNodeNameByProviderID
(
providerID
string
)
(
types
.
NodeName
,
error
)
GetNodeNameByProviderID
(
providerID
string
)
(
types
.
NodeName
,
error
)
...
...
pkg/cloudprovider/providers/azure/azure_vmss.go
View file @
f427d279
...
@@ -247,10 +247,10 @@ func (ss *scaleSet) GetPrimaryVMSetName() string {
...
@@ -247,10 +247,10 @@ func (ss *scaleSet) GetPrimaryVMSetName() string {
// GetIPByNodeName gets machine private IP and public IP by node name.
// GetIPByNodeName gets machine private IP and public IP by node name.
// TODO(feiskyer): Azure vmss doesn't support associating a public IP to single virtual machine yet,
// TODO(feiskyer): Azure vmss doesn't support associating a public IP to single virtual machine yet,
// fix this after it is supported.
// fix this after it is supported.
func
(
ss
*
scaleSet
)
GetIPByNodeName
(
nodeName
,
vmSetName
string
)
(
string
,
string
,
error
)
{
func
(
ss
*
scaleSet
)
GetIPByNodeName
(
nodeName
string
)
(
string
,
string
,
error
)
{
nic
,
err
:=
ss
.
GetPrimaryInterface
(
nodeName
,
vmSetName
)
nic
,
err
:=
ss
.
GetPrimaryInterface
(
nodeName
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Errorf
(
"error: ss.GetIPByNodeName(%s), GetPrimaryInterface(%q
, %q), err=%v"
,
nodeName
,
nodeName
,
vmSet
Name
,
err
)
glog
.
Errorf
(
"error: ss.GetIPByNodeName(%s), GetPrimaryInterface(%q
), err=%v"
,
nodeName
,
node
Name
,
err
)
return
""
,
""
,
err
return
""
,
""
,
err
}
}
...
@@ -418,7 +418,7 @@ func (ss *scaleSet) GetVMSetNames(service *v1.Service, nodes []*v1.Node) (vmSetN
...
@@ -418,7 +418,7 @@ func (ss *scaleSet) GetVMSetNames(service *v1.Service, nodes []*v1.Node) (vmSetN
}
}
// GetPrimaryInterface gets machine primary network interface by node name and vmSet.
// GetPrimaryInterface gets machine primary network interface by node name and vmSet.
func
(
ss
*
scaleSet
)
GetPrimaryInterface
(
nodeName
,
vmSetName
string
)
(
network
.
Interface
,
error
)
{
func
(
ss
*
scaleSet
)
GetPrimaryInterface
(
nodeName
string
)
(
network
.
Interface
,
error
)
{
managedByAS
,
err
:=
ss
.
isNodeManagedByAvailabilitySet
(
nodeName
)
managedByAS
,
err
:=
ss
.
isNodeManagedByAvailabilitySet
(
nodeName
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Errorf
(
"Failed to check isNodeManagedByAvailabilitySet: %v"
,
err
)
glog
.
Errorf
(
"Failed to check isNodeManagedByAvailabilitySet: %v"
,
err
)
...
@@ -426,7 +426,7 @@ func (ss *scaleSet) GetPrimaryInterface(nodeName, vmSetName string) (network.Int
...
@@ -426,7 +426,7 @@ func (ss *scaleSet) GetPrimaryInterface(nodeName, vmSetName string) (network.Int
}
}
if
managedByAS
{
if
managedByAS
{
// vm is managed by availability set.
// vm is managed by availability set.
return
ss
.
availabilitySet
.
GetPrimaryInterface
(
nodeName
,
""
)
return
ss
.
availabilitySet
.
GetPrimaryInterface
(
nodeName
)
}
}
ssName
,
instanceID
,
vm
,
err
:=
ss
.
getVmssVM
(
nodeName
)
ssName
,
instanceID
,
vm
,
err
:=
ss
.
getVmssVM
(
nodeName
)
...
@@ -435,12 +435,6 @@ func (ss *scaleSet) GetPrimaryInterface(nodeName, vmSetName string) (network.Int
...
@@ -435,12 +435,6 @@ func (ss *scaleSet) GetPrimaryInterface(nodeName, vmSetName string) (network.Int
return
network
.
Interface
{},
err
return
network
.
Interface
{},
err
}
}
// Check scale set name.
// Backends of Standard load balancer could belong to multiple VMSS, so we don't check vmSet for it.
if
!
strings
.
EqualFold
(
ssName
,
vmSetName
)
&&
!
ss
.
useStandardLoadBalancer
()
{
return
network
.
Interface
{},
errNotInVMSet
}
primaryInterfaceID
,
err
:=
ss
.
getPrimaryInterfaceID
(
vm
)
primaryInterfaceID
,
err
:=
ss
.
getPrimaryInterfaceID
(
vm
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Errorf
(
"error: ss.GetPrimaryInterface(%s), ss.getPrimaryInterfaceID(), err=%v"
,
nodeName
,
err
)
glog
.
Errorf
(
"error: ss.GetPrimaryInterface(%s), ss.getPrimaryInterfaceID(), err=%v"
,
nodeName
,
err
)
...
@@ -699,7 +693,7 @@ func (ss *scaleSet) EnsureHostsInPool(serviceName string, nodes []*v1.Node, back
...
@@ -699,7 +693,7 @@ func (ss *scaleSet) EnsureHostsInPool(serviceName string, nodes []*v1.Node, back
}
}
for
ssName
,
instanceIDs
:=
range
scalesets
{
for
ssName
,
instanceIDs
:=
range
scalesets
{
// Only add nodes belonging to specified vmSet
to basic LB backends
.
// Only add nodes belonging to specified vmSet
for basic SKU LB
.
if
!
ss
.
useStandardLoadBalancer
()
&&
!
strings
.
EqualFold
(
ssName
,
vmSetName
)
{
if
!
ss
.
useStandardLoadBalancer
()
&&
!
strings
.
EqualFold
(
ssName
,
vmSetName
)
{
continue
continue
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment