Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misleading regarding the requirement for the load balancer or Application Health probe #46992

Closed
mikewo opened this issue Jan 28, 2020 — with docs.microsoft.com · 6 comments

Comments

Copy link
Contributor

mikewo commented Jan 28, 2020

In the requirements section of the doc it specifically states:

Use application health probes or Application Health extension for non-Service Fabric scale sets

In numerous other places in the document it makes it sound more like it's optional. For example:

  • "Integrates with application health probes and Application Health extension." --> Makes it sound like it works well with it, but that it isn't a required thing.

  • "You can also integrate an Azure Load Balancer application health probe or Application Health extension. We recommended incorporating an application heartbeat and validate upgrade success for each batch in the upgrade process." --> This makes it sound like it is recommended, but not required.

  • "For scale sets with configured application health probes or Application Health extension, the upgrade waits up to 5 minutes for the instance to become healthy, ...." --> This also makes it sound like it's not required as it implies there can be scale sets that don't have them.

  • "During an OS Upgrade, VM instances in a scale set are upgraded one batch at a time. The upgrade should continue only if the customer application is healthy on the upgraded VM instances. We recommend that the application provides health signals to the scale set OS Upgrade engine. By default, during OS Upgrades the platform considers VM power state and extension provisioning state to determine if a VM instance is healthy after an upgrade. " --> This implies there is a default that the platform uses for health and that an additional probe is an option.

  • Most annoying though is : "A scale set can optionally be configured with Application Health Probes to provide the platform with accurate information on the ongoing state of the application. Application Health Probes are Custom Load Balancer Probes that are used as a health signal. " --> This actually uses the word 'optionally'.

However, when setting up Automatic OS updates and turning on the flag when creating the VM Scale Set if we make a call to create the scale set and do not have a health probe or health extension specified we will receive an error.

Automatic OS Upgrade is not supported for this Virtual Machine Scale Set because a health probe or health extension was not specified.

The document is confusing because in one place it states it's required, and in many others it implies it's not required, but optional. If the rule is that a health probe or application health extension is required if the scale set is not part of a Service Fabric Cluster I think the verbiage on all the optional reference above may need some clarification.

It would be nice if there was the default that the status of the VM power state and extension provisioning status is enough and you could use automatic OS updates without having to provide a health probe or app health extension. I understand the recommendation for these, and agree with it, but sometimes you may just want to have auto OS upgrades set without needing this type of info beyond the box isn't down and was deployed well (extensions completed successfully).


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

@Karishma-Tiwari-MSFT
Copy link
Member

Thanks for the feedback. I have assigned the issue to the content author to investigate further and update the document as appropriate.
CC: @mimckitt

@mimckitt mimckitt self-assigned this Jan 28, 2020
@mikewo mikewo changed the title Misleading regarding the requirement for the load balancer or Application Heath probe Misleading regarding the requirement for the load balancer or Application Health probe Jan 29, 2020
Copy link
Contributor

tomconte commented Feb 4, 2020

+1 same problem here. The documentation seems to imply that health probes/extensions are optional, but I am getting the error "Automatic OS Upgrade is not supported for this Virtual Machine Scale Set because a health probe or health extension was not specified."

@mimckitt
Copy link
Contributor

I believe the issue is mentioned here: https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-custom-probe-overview#probes

A probe definition is not mandatory or checked for when using Azure PowerShell, Azure CLI, Templates or API. Probe validation tests are only done when using the Azure Portal.

So if you are using the Azure portal, it is a requirement, but not if you are using PS, CLI, etc.

I will review this doc and see how we can rework the language as I agree it is confusing call out optional but then having issues if you don't do it.

Also adding @peterpogorski @athinanthny as we do link from the Service Fabric documentation to this page and it might make sense to have two pages one for VMSS and one specifically for SF on VMSS.

@mikewo
Copy link
Contributor Author

mikewo commented Mar 10, 2020

We are using Terraform to create these scale sets, which would mean the Go SDK hitting the API. Not the portal.

@mimckitt
Copy link
Contributor

I have read through the doc a few times now and I see we do clearly call out that automatic OS upgrades require either health probes or health extensions.

At this point in time I don't find the document to be unclear and I don't see any edits that need to be made. That being said, this issue will remain on this page so if others feel it is also confusing they can comment and w can always reconsider in the future.

@muralidar44
Copy link

when I use LB health probe for VMSS, I always see the instances are Unhealthy (health_probe_id = azurerm_lb_probe.lbprobe.id)
how to use "Application health extension" in terraform instead of LB health probe ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants