This repository has been archived by the owner on Jan 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 558
Update docs for AZ #3886
Merged
Merged
Update docs for AZ #3886
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
# Availability Zones | ||
|
||
To protect your cluster from datacenter-level failures, you can enable the Availability Zones feature for your cluster by configuring `"availabilityZones"` for the master profile and all of the agentPool profiles in the cluster definition. | ||
|
||
- This feature only applies to Kubernetes clusters version 1.12+. | ||
- Supported values are arrays of strings, each representing a supported availability zone in a region for your subscription. e.g. `"availabilityZones": ["1","2"]` represents zone 1 and zone 2 can be used. | ||
|
||
> To get supported zones for a region in your subscription, run `az vm list-skus --location centralus --query "[?name=='Standard_DS2_v2'].[locationInfo, restrictions"] -o table`. You should see values like `'zones': ['2', '3', '1']` appear in the first column. If `NotAvailableForSubscription` appears in the output, then create an Azure support ticket to enable zones for that region. | ||
|
||
- To ensure high availability, each profile must define at least two nodes per zone. e.g. An agent pool profile with 2 zones: `"availabilityZones": ["1","2"]` must have at least 4 nodes total with `"count": 4`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe reword the second sentence: For example, an agent pool profile with two zones must have at least 4 nodes total: |
||
- When `"availabilityZones"` is configured, the `"loadBalancerSku"` will default to `Standard` as Standard LoadBalancer is required for availability zones. | ||
|
||
Here is an [example of a Kubernetes cluster with Availability Zones support](../e2e-tests/kubernetes/zones/definition.json) | ||
|
||
```json | ||
{ | ||
"apiVersion": "vlabs", | ||
"properties": { | ||
"orchestratorProfile": { | ||
"orchestratorType": "Kubernetes", | ||
"orchestratorRelease": "1.12" | ||
}, | ||
"masterProfile": { | ||
"count": 5, | ||
"dnsPrefix": "", | ||
"vmSize": "Standard_DS2_v2", | ||
"availabilityProfile": "VirtualMachineScaleSets", | ||
"availabilityZones": [ | ||
"1", | ||
"2" | ||
] | ||
}, | ||
"agentPoolProfiles": [ | ||
{ | ||
"name": "agentpool", | ||
"count": 4, | ||
"vmSize": "Standard_DS2_v2", | ||
"availabilityProfile": "VirtualMachineScaleSets", | ||
"availabilityZones": [ | ||
"1", | ||
"2" | ||
] | ||
} | ||
], | ||
"linuxProfile": { | ||
"adminUsername": "azureuser", | ||
"ssh": { | ||
"publicKeys": [ | ||
{ | ||
"keyData": "" | ||
} | ||
] | ||
} | ||
}, | ||
"servicePrincipalProfile": { | ||
"clientId": "", | ||
"secret": "" | ||
} | ||
} | ||
} | ||
|
||
``` | ||
|
||
To validate the feature is working as expected, run the following commands: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of "the feature", I would repeat "availability zones" here: To validate availability zones are working as expected, ... |
||
|
||
```bash | ||
kubectl get nodes --show-labels | grep failure-domain.beta.kubernetes.io/zone | ||
|
||
...,failure-domain.beta.kubernetes.io/zone=eastus2-1, ... | ||
...,failure-domain.beta.kubernetes.io/zone=eastus2-2, ... | ||
|
||
``` | ||
|
||
Each node in the cluster should have `REGION-ZONE` as values for the `failure-domain.beta.kubernetes.io/zone` label. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe reword the second sentence like this:
For example,
"availabilityZones": ["1","2"]
indicates zone 1 and zone 2 can be used.