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
8c53db09
Commit
8c53db09
authored
Feb 22, 2019
by
andyzhangx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add retry for detach azure disk
add more logging info in detach disk
parent
4f4695fe
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
7 deletions
+36
-7
azure_backoff.go
pkg/cloudprovider/providers/azure/azure_backoff.go
+12
-0
azure_controller_standard.go
...loudprovider/providers/azure/azure_controller_standard.go
+12
-3
azure_controller_vmss.go
pkg/cloudprovider/providers/azure/azure_controller_vmss.go
+12
-4
No files found.
pkg/cloudprovider/providers/azure/azure_backoff.go
View file @
8c53db09
...
@@ -511,6 +511,18 @@ func (az *Cloud) CreateOrUpdateVMWithRetry(resourceGroup, vmName string, newVM c
...
@@ -511,6 +511,18 @@ func (az *Cloud) CreateOrUpdateVMWithRetry(resourceGroup, vmName string, newVM c
})
})
}
}
// UpdateVmssVMWithRetry invokes az.VirtualMachineScaleSetVMsClient.Update with exponential backoff retry
func
(
az
*
Cloud
)
UpdateVmssVMWithRetry
(
resourceGroupName
string
,
VMScaleSetName
string
,
instanceID
string
,
parameters
compute
.
VirtualMachineScaleSetVM
)
error
{
return
wait
.
ExponentialBackoff
(
az
.
requestBackoff
(),
func
()
(
bool
,
error
)
{
ctx
,
cancel
:=
getContextWithCancel
()
defer
cancel
()
resp
,
err
:=
az
.
VirtualMachineScaleSetVMsClient
.
Update
(
ctx
,
resourceGroupName
,
VMScaleSetName
,
instanceID
,
parameters
)
klog
.
V
(
10
)
.
Infof
(
"VirtualMachinesClient.CreateOrUpdate(%s,%s): end"
,
VMScaleSetName
,
instanceID
)
return
az
.
processHTTPRetryResponse
(
nil
,
""
,
resp
,
err
)
})
}
// isSuccessHTTPResponse determines if the response from an HTTP request suggests success
// isSuccessHTTPResponse determines if the response from an HTTP request suggests success
func
isSuccessHTTPResponse
(
resp
*
http
.
Response
)
bool
{
func
isSuccessHTTPResponse
(
resp
*
http
.
Response
)
bool
{
if
resp
==
nil
{
if
resp
==
nil
{
...
...
pkg/cloudprovider/providers/azure/azure_controller_standard.go
View file @
8c53db09
...
@@ -146,12 +146,21 @@ func (as *availabilitySet) DetachDiskByName(diskName, diskURI string, nodeName t
...
@@ -146,12 +146,21 @@ func (as *availabilitySet) DetachDiskByName(diskName, diskURI string, nodeName t
// Invalidate the cache right after updating
// Invalidate the cache right after updating
defer
as
.
cloud
.
vmCache
.
Delete
(
vmName
)
defer
as
.
cloud
.
vmCache
.
Delete
(
vmName
)
_
,
err
=
as
.
VirtualMachinesClient
.
CreateOrUpdate
(
ctx
,
nodeResourceGroup
,
vmName
,
newVM
)
resp
,
err
:=
as
.
VirtualMachinesClient
.
CreateOrUpdate
(
ctx
,
nodeResourceGroup
,
vmName
,
newVM
)
if
as
.
CloudProviderBackoff
&&
shouldRetryHTTPRequest
(
resp
,
err
)
{
klog
.
V
(
2
)
.
Infof
(
"azureDisk - update(%s) backing off: vm(%s) detach disk(%s, %s), err: %v"
,
nodeResourceGroup
,
vmName
,
diskName
,
diskURI
,
err
)
retryErr
:=
as
.
CreateOrUpdateVMWithRetry
(
nodeResourceGroup
,
vmName
,
newVM
)
if
retryErr
!=
nil
{
err
=
retryErr
klog
.
V
(
2
)
.
Infof
(
"azureDisk - update(%s) abort backoff: vm(%s) detach disk(%s, %s), err: %v"
,
nodeResourceGroup
,
vmName
,
diskName
,
diskURI
,
err
)
}
}
if
err
!=
nil
{
if
err
!=
nil
{
klog
.
Errorf
(
"azureDisk - detach disk(%s
) failed, err: %v"
,
diskName
,
err
)
klog
.
Errorf
(
"azureDisk - detach disk(%s
, %s)) failed, err: %v"
,
diskName
,
diskURI
,
err
)
}
else
{
}
else
{
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk(%s
) succeeded"
,
diskName
)
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk(%s
, %s) succeeded"
,
diskName
,
diskURI
)
}
}
return
err
return
err
}
}
...
...
pkg/cloudprovider/providers/azure/azure_controller_vmss.go
View file @
8c53db09
...
@@ -155,12 +155,20 @@ func (ss *scaleSet) DetachDiskByName(diskName, diskURI string, nodeName types.No
...
@@ -155,12 +155,20 @@ func (ss *scaleSet) DetachDiskByName(diskName, diskURI string, nodeName types.No
key
:=
buildVmssCacheKey
(
nodeResourceGroup
,
ss
.
makeVmssVMName
(
ssName
,
instanceID
))
key
:=
buildVmssCacheKey
(
nodeResourceGroup
,
ss
.
makeVmssVMName
(
ssName
,
instanceID
))
defer
ss
.
vmssVMCache
.
Delete
(
key
)
defer
ss
.
vmssVMCache
.
Delete
(
key
)
klog
.
V
(
2
)
.
Infof
(
"azureDisk - update(%s): vm(%s) - detach disk(%s)"
,
nodeResourceGroup
,
nodeName
,
diskName
)
klog
.
V
(
2
)
.
Infof
(
"azureDisk - update(%s): vm(%s) - detach disk(%s, %s)"
,
nodeResourceGroup
,
nodeName
,
diskName
,
diskURI
)
_
,
err
=
ss
.
VirtualMachineScaleSetVMsClient
.
Update
(
ctx
,
nodeResourceGroup
,
ssName
,
instanceID
,
newVM
)
resp
,
err
:=
ss
.
VirtualMachineScaleSetVMsClient
.
Update
(
ctx
,
nodeResourceGroup
,
ssName
,
instanceID
,
newVM
)
if
ss
.
CloudProviderBackoff
&&
shouldRetryHTTPRequest
(
resp
,
err
)
{
klog
.
V
(
2
)
.
Infof
(
"azureDisk - update(%s) backing off: vm(%s) detach disk(%s, %s), err: %v"
,
nodeResourceGroup
,
nodeName
,
diskName
,
diskURI
,
err
)
retryErr
:=
ss
.
UpdateVmssVMWithRetry
(
nodeResourceGroup
,
ssName
,
instanceID
,
newVM
)
if
retryErr
!=
nil
{
err
=
retryErr
klog
.
V
(
2
)
.
Infof
(
"azureDisk - update(%s) abort backoff: vm(%s) detach disk(%s, %s), err: %v"
,
nodeResourceGroup
,
nodeName
,
diskName
,
diskURI
,
err
)
}
}
if
err
!=
nil
{
if
err
!=
nil
{
klog
.
Errorf
(
"azureDisk - detach disk(%s
) from %s failed, err: %v"
,
diskName
,
nodeName
,
err
)
klog
.
Errorf
(
"azureDisk - detach disk(%s
, %s) from %s failed, err: %v"
,
diskName
,
diskURI
,
nodeName
,
err
)
}
else
{
}
else
{
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk(%s
) succeeded"
,
diskName
)
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk(%s
, %s) succeeded"
,
diskName
,
diskURI
)
}
}
return
err
return
err
...
...
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