Skip to content

Commit 1524778

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into heidist-bugfix
2 parents 316dac2 + ce6853e commit 1524778

28 files changed

+1583
-236
lines changed

articles/aks/developer-best-practices-pod-security.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,17 @@ Work with your cluster operator to determine what security context settings you
6666
6767
To limit the risk of credentials being exposed in your application code, avoid the use of fixed or shared credentials. Credentials or keys shouldn't be included directly in your code. If these credentials are exposed, the application needs to be updated and redeployed. A better approach is to give pods their own identity and way to authenticate themselves, or automatically retrieve credentials from a digital vault.
6868
69-
The following [associated AKS open source projects][aks-associated-projects] let you automatically authenticate pods or request credentials and keys from a digital vault:
69+
### Use Azure Container Compute Upstream projects
7070
71-
* Managed identities for Azure resources, and
72-
* [Azure Key Vault Provider for Secrets Store CSI Driver](https://github.com/Azure/secrets-store-csi-driver-provider-azure#usage)
71+
> [!IMPORTANT]
72+
> Associated AKS open source projects are not supported by Azure technical support. They are provided for users to self-install into clusters and gather feedback from our community.
7373
74-
Associated AKS open source projects are not supported by Azure technical support. They are provided to gather feedback and bugs from our community. These projects are not recommended for production use.
74+
The following [associated AKS open source projects][aks-associated-projects] let you automatically authenticate pods or request credentials and keys from a digital vault. These projects are maintained by the Azure Container Compute Upstream team and are part of a [broader list of projects available for use](https://github.com/Azure/container-compute-upstream/blob/master/README.md#support).
7575
76-
### Use pod managed identities
76+
* [Azure Active Directory Pod Identity][aad-pod-identity]
77+
* [Azure Key Vault Provider for Secrets Store CSI Driver](https://github.com/Azure/secrets-store-csi-driver-provider-azure#usage)
78+
79+
#### Use pod managed identities
7780
7881
A managed identity for Azure resources lets a pod authenticate itself against Azure services that support it, such as Storage or SQL. The pod is assigned an Azure Identity that lets them authenticate to Azure Active Directory and receive a digital token. This digital token can be presented to other Azure services that check if the pod is authorized to access the service and perform the required actions. This approach means that no secrets are required for database connection strings, for example. The simplified workflow for pod managed identity is shown in the following diagram:
7982
@@ -83,7 +86,7 @@ With a managed identity, your application code doesn't need to include credentia
8386
8487
For more information about pod identities, see [Configure an AKS cluster to use pod managed identities and with your applications][aad-pod-identity]
8588
86-
### Use Azure Key Vault with Secrets Store CSI Driver
89+
#### Use Azure Key Vault with Secrets Store CSI Driver
8790
8891
Using the pod identity project enables authentication against supporting Azure services. For your own services or applications without managed identities for Azure resources, you can still authenticate using credentials or keys. A digital vault can be used to store these secret contents.
8992

articles/aks/egress-outboundtype.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,6 @@ DEVSUBNET_NAME="${PREFIX}dev"
117117
Next, set subscription IDs.
118118

119119
```azure-cli
120-
# Get ARM Access Token and Subscription ID - This will be used for AuthN later.
121-
122-
ACCESS_TOKEN=$(az account get-access-token -o tsv --query 'accessToken')
123120
124121
# NOTE: Update Subscription Name
125122
# Set Default Azure Subscription to be Used via Subscription ID

articles/aks/uptime-sla.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
---
2-
title: Azure Kubernetes Service (AKS) high availability with Uptime SLA
3-
description: Learn about the optional high availability Uptime SLA offering for the Azure Kubernetes Service (AKS) API Server.
2+
title: Azure Kubernetes Service (AKS) with Uptime SLA
3+
description: Learn about the optional Uptime SLA offering for the Azure Kubernetes Service (AKS) API Server.
44
services: container-service
55
ms.topic: conceptual
66
ms.date: 05/11/2020
77
---
88

99
# Azure Kubernetes Service (AKS) Uptime SLA
1010

11-
Uptime SLA is an optional feature to enable financially backed higher SLA for a cluster. Uptime SLA guarantees 99.95% availability of the Kubernetes API server endpoint for clusters that use [Availability Zone][availability-zones] and 99.9% of availability for clusters that don't use availability zones. AKS uses master node replicas across update and fault domains to ensure SLA requirements are met.
11+
Uptime SLA is an optional feature to enable a financially backed, higher SLA for a cluster. Uptime SLA guarantees 99.95% availability of the Kubernetes API server endpoint for clusters that use [Availability Zones][availability-zones] and 99.9% of availability for clusters that don't use Availability Zones. AKS uses master node replicas across update and fault domains to ensure SLA requirements are met.
1212

13-
Customers needing SLA for compliance reasons or extending SLA's to their customers should turn on this feature. Customers with critical workloads who need higher availability with an option of SLA benefit from enabling this feature. Enable the feature with Availability Zones to obtain higher availability of the Kubernetes API server.
13+
Customers needing an SLA to meet compliance requirements or require extending an SLA to their end-users should enable this feature. Customers with critical workloads that will benefit from a higher uptime SLA may also benefit. Using the Uptime SLA feature with Availability Zones enables a higher availability for the uptime of the Kubernetes API server.
1414

15-
Customers can create unlimited free clusters with a service level objective (SLO) of 99.5%.
15+
Customers can still create unlimited free clusters with a service level objective (SLO) of 99.5% and opt for the preferred SLO or SLA Uptime as needed.
1616

1717
> [!Important]
1818
> For clusters with egress lockdown, see [limit egress traffic](limit-egress-traffic.md) to open appropriate ports for Uptime SLA.
1919
2020
## SLA terms and conditions
2121

22-
Uptime SLA is a paid feature and enabled per cluster. Uptime SLA pricing is determined by the number of clusters, and not by the size of the clusters. You can view [Uptime SLA pricing details](https://azure.microsoft.com/pricing/details/kubernetes-service/) for more information.
22+
Uptime SLA is a paid feature and enabled per cluster. Uptime SLA pricing is determined by the number of discrete clusters, and not by the size of the individual clusters. You can view [Uptime SLA pricing details](https://azure.microsoft.com/pricing/details/kubernetes-service/) for more information.
2323

2424
## Region Availability
2525

@@ -59,19 +59,17 @@ After a few minutes, the command completes and returns JSON-formatted informatio
5959
"name": "Basic",
6060
"tier": "Paid"
6161
},
62-
"tags": null,
63-
"type": "Microsoft.ContainerService/ManagedClusters",
64-
"windowsProfile": null
6562
```
6663

6764
## Limitations
6865

69-
* You can't currently add Uptime SLA to existing clusters.
70-
* Currently, there is no way to remove Uptime SLA from an AKS cluster.
66+
* Currently, cannot convert as existing cluster to enable the Uptime SLA.
67+
* Currently, there is no way to remove Uptime SLA from an AKS cluster after creation with it enabled.
7168

7269
## Next steps
7370

7471
Use [Availability Zones][availability-zones] to increase high availability with your AKS cluster workloads.
72+
Configure your cluster to [limit egress traffic](limit-egress-traffic.md).
7573

7674
<!-- LINKS - External -->
7775
[azure-support]: https://ms.portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/newsupportrequest

articles/aks/use-network-policies.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ The following example script:
7777
* Creates an Azure Active Directory (Azure AD) service principal for use with the AKS cluster.
7878
* Assigns *Contributor* permissions for the AKS cluster service principal on the virtual network.
7979
* Creates an AKS cluster in the defined virtual network and enables network policy.
80-
* The *azure* network policy option is used. To use Calico as the network policy option instead, use the `--network-policy calico` parameter. Note: Calico could be used with either `--network-plugin azure` or `--network-plugin kubenet`.
80+
* The _Azure Network_ policy option is used. To use Calico as the network policy option instead, use the `--network-policy calico` parameter. Note: Calico could be used with either `--network-plugin azure` or `--network-plugin kubenet`.
8181

8282
Note that instead of using a service principal, you can use a managed identity for permissions. For more information, see [Use managed identities](use-managed-identity.md).
8383

@@ -142,7 +142,7 @@ az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAM
142142

143143
## Deny all inbound traffic to a pod
144144

145-
Before you define rules to allow specific network traffic, first create a network policy to deny all traffic. This policy gives you a starting point to begin to whitelist only the desired traffic. You can also clearly see that traffic is dropped when the network policy is applied.
145+
Before you define rules to allow specific network traffic, first create a network policy to deny all traffic. This policy gives you a starting point to begin to create an allow list for only the desired traffic. You can also clearly see that traffic is dropped when the network policy is applied.
146146

147147
For the sample application environment and traffic rules, let's first create a namespace called *development* to run the example pods:
148148

@@ -470,9 +470,9 @@ To learn more about policies, see [Kubernetes network policies][kubernetes-netwo
470470
[policy-rules]: https://kubernetes.io/docs/concepts/services-networking/network-policies/#behavior-of-to-and-from-selectors
471471
[aks-github]: https://github.com/azure/aks/issues
472472
[tigera]: https://www.tigera.io/
473-
[calicoctl]: https://docs.projectcalico.org/v3.9/reference/calicoctl/
473+
[calicoctl]: https://docs.projectcalico.org/reference/calicoctl/
474474
[calico-support]: https://www.tigera.io/tigera-products/calico/
475-
[calico-logs]: https://docs.projectcalico.org/v3.9/maintenance/component-logs
475+
[calico-logs]: https://docs.projectcalico.org/maintenance/troubleshoot/component-logs
476476
[calico-aks-cleanup]: https://github.com/Azure/aks-engine/blob/master/docs/topics/calico-3.3.1-cleanup-after-upgrade.yaml
477477

478478
<!-- LINKS - internal -->

articles/cognitive-services/Speech-Service/language-support.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ https://cris.ai -> Click on Adaptation Data -> scroll down to section "Pronuncia
3434
| `ar-AE` | Arabic (UAE) | Yes | No |
3535
| `ar-BH` | Arabic (Bahrain), modern standard | Yes | Language model |
3636
| `ar-EG` | Arabic (Egypt) | Yes | Language model |
37+
| `ar-IL` | Arabic (Israel) | Yes | No |
3738
| `ar-KW` | Arabic (Kuwait) | Yes | No |
39+
| `ar-PS` | Arabic (Palestine) | Yes | No |
3840
| `ar-QA` | Arabic (Qatar) | Yes | No |
3941
| `ar-SA` | Arabic (Saudi Arabia) | Yes | No |
4042
| `ar-SY` | Arabic (Syria) | Yes | Language model |

articles/cosmos-db/manage-cassandra-with-resource-manager.md

Lines changed: 210 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Use Azure Resource Manager templates to create and configure Azure
44
author: markjbrown
55
ms.service: cosmos-db
66
ms.topic: conceptual
7-
ms.date: 04/30/2020
7+
ms.date: 05/12/2020
88
ms.author: mjbrown
99
---
1010

@@ -26,11 +26,217 @@ To create any of the Azure Cosmos DB resources below, copy the following example
2626

2727
## Azure Cosmos account for Cassandra with autoscale provisioned throughput
2828

29-
This template creates an Azure Cosmos account in two regions with options for consistency and failover, with a keyspace and table configured for autoscale throughput. This template is also available for one-click deploy from Azure Quickstart Templates Gallery.
29+
This template creates an Azure Cosmos account in two regions with options for consistency and failover, with a keyspace and table configured for autoscale throughput.
3030

31-
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2F101-cosmosdb-cassandra-autosscale%2Fazuredeploy.json)
31+
```json
32+
{
33+
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
34+
"contentVersion": "1.0.0.0",
35+
"parameters": {
36+
"accountName": {
37+
"type": "string",
38+
"defaultValue": "[concat('cassandra-', uniqueString(resourceGroup().id))]",
39+
"metadata": {
40+
"description": "Cosmos DB account name, max length 44 characters"
41+
}
42+
},
43+
"location": {
44+
"type": "string",
45+
"defaultValue": "[resourceGroup().location]",
46+
"metadata": {
47+
"description": "Location for the Cosmos DB account."
48+
}
49+
},
50+
"primaryRegion":{
51+
"type":"string",
52+
"metadata": {
53+
"description": "The primary replica region for the Cosmos DB account."
54+
}
55+
},
56+
"secondaryRegion":{
57+
"type":"string",
58+
"metadata": {
59+
"description": "The secondary replica region for the Cosmos DB account."
60+
}
61+
},
62+
"defaultConsistencyLevel": {
63+
"type": "string",
64+
"defaultValue": "Session",
65+
"allowedValues": [ "Eventual", "ConsistentPrefix", "Session", "BoundedStaleness", "Strong" ],
66+
"metadata": {
67+
"description": "The default consistency level of the Cosmos DB account."
68+
}
69+
},
70+
"maxStalenessPrefix": {
71+
"type": "int",
72+
"defaultValue": 100000,
73+
"minValue": 10,
74+
"maxValue": 1000000,
75+
"metadata": {
76+
"description": "Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 1000000. Multi Region: 100000 to 1000000."
77+
}
78+
},
79+
"maxIntervalInSeconds": {
80+
"type": "int",
81+
"defaultValue": 300,
82+
"minValue": 5,
83+
"maxValue": 86400,
84+
"metadata": {
85+
"description": "Max lag time (seconds). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400."
86+
}
87+
},
88+
"automaticFailover": {
89+
"type": "bool",
90+
"defaultValue": true,
91+
"allowedValues": [ true, false ],
92+
"metadata": {
93+
"description": "Enable automatic failover for regions"
94+
}
95+
},
96+
"keyspaceName": {
97+
"type": "string",
98+
"metadata": {
99+
"description": "The name for the Cassandra Keyspace"
100+
}
101+
},
102+
"tableName": {
103+
"type": "string",
104+
"metadata": {
105+
"description": "The name for the Cassandra table"
106+
}
107+
},
108+
"throughputPolicy":{
109+
"type": "string",
110+
"defaultValue": "Autoscale",
111+
"allowedValues": [ "Manual", "Autoscale" ],
112+
"metadata": {
113+
"description": "The throughput policy for the Cassandra table"
114+
}
115+
},
116+
"manualProvisionedThroughput": {
117+
"type": "int",
118+
"defaultValue": 400,
119+
"minValue": 400,
120+
"maxValue": 1000000,
121+
"metadata": {
122+
"description": "Throughput value when using Provisioned Throughput Policy for the Cassandra table"
123+
}
124+
},
125+
"autoscaleMaxThroughput": {
126+
"type": "int",
127+
"defaultValue": 4000,
128+
"minValue": 4000,
129+
"maxValue": 1000000,
130+
"metadata": {
131+
"description": "Maximum throughput when using Autoscale Throughput Policy for the Cassandra table"
132+
}
133+
}
134+
},
135+
"variables": {
136+
"accountName": "[toLower(parameters('accountName'))]",
137+
"consistencyPolicy": {
138+
"Eventual": {
139+
"defaultConsistencyLevel": "Eventual"
140+
},
141+
"ConsistentPrefix": {
142+
"defaultConsistencyLevel": "ConsistentPrefix"
143+
},
144+
"Session": {
145+
"defaultConsistencyLevel": "Session"
146+
},
147+
"BoundedStaleness": {
148+
"defaultConsistencyLevel": "BoundedStaleness",
149+
"maxStalenessPrefix": "[parameters('maxStalenessPrefix')]",
150+
"maxIntervalInSeconds": "[parameters('maxIntervalInSeconds')]"
151+
},
152+
"Strong": {
153+
"defaultConsistencyLevel": "Strong"
154+
}
155+
},
156+
"locations":
157+
[
158+
{
159+
"locationName": "[parameters('primaryRegion')]",
160+
"failoverPriority": 0,
161+
"isZoneRedundant": false
162+
},
163+
{
164+
"locationName": "[parameters('secondaryRegion')]",
165+
"failoverPriority": 1,
166+
"isZoneRedundant": false
167+
}
168+
],
169+
"throughputPolicy": {
170+
"Manual": {
171+
"throughput": "[parameters('manualProvisionedThroughput')]"
172+
},
173+
"Autoscale": {
174+
"autoscaleSettings": { "maxThroughput": "[parameters('autoscaleMaxThroughput')]" }
175+
}
176+
},
177+
"throughputPolicyToUse": "[if(equals(parameters('throughputPolicy'), 'Manual'), variables('throughputPolicy').Manual, variables('throughputPolicy').Autoscale)]"
178+
},
179+
"resources":
180+
[
181+
{
182+
"type": "Microsoft.DocumentDB/databaseAccounts",
183+
"name": "[variables('accountName')]",
184+
"apiVersion": "2020-04-01",
185+
"location": "[parameters('location')]",
186+
"kind": "GlobalDocumentDB",
187+
"properties": {
188+
"capabilities": [{ "name": "EnableCassandra" }],
189+
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
190+
"locations": "[variables('locations')]",
191+
"databaseAccountOfferType": "Standard",
192+
"enableAutomaticFailover": "[parameters('automaticFailover')]"
193+
}
194+
},
195+
{
196+
"type": "Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces",
197+
"name": "[concat(variables('accountName'), '/', parameters('keyspaceName'))]",
198+
"apiVersion": "2020-04-01",
199+
"dependsOn": [ "[resourceId('Microsoft.DocumentDB/databaseAccounts/', variables('accountName'))]" ],
200+
"properties":{
201+
"resource":{
202+
"id": "[parameters('keyspaceName')]"
203+
}
204+
}
205+
},
206+
{
207+
"type": "Microsoft.DocumentDb/databaseAccounts/cassandraKeyspaces/tables",
208+
"name": "[concat(variables('accountName'), '/', parameters('keyspaceName'), '/', parameters('tableName'))]",
209+
"apiVersion": "2020-04-01",
210+
"dependsOn": [ "[resourceId('Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces', variables('accountName'), parameters('keyspaceName'))]" ],
211+
"properties":
212+
{
213+
"resource":{
214+
"id": "[parameters('tableName')]",
215+
"schema": {
216+
"columns": [
217+
{ "name": "loadid", "type": "uuid" },
218+
{ "name": "machine", "type": "uuid" },
219+
{ "name": "cpu", "type": "int" },
220+
{ "name": "mtime", "type": "int" },
221+
{ "name": "load", "type": "float" }
222+
],
223+
"partitionKeys": [
224+
{ "name": "machine" },
225+
{ "name": "cpu" },
226+
{ "name": "mtime" }
227+
],
228+
"clusterKeys": [
229+
{ "name": "loadid", "orderBy": "asc" }
230+
]
231+
}
232+
},
233+
"options": "[variables('throughputPolicyToUse')]"
234+
}
235+
}
236+
]
237+
}
32238

33-
:::code language="json" source="~/quickstart-templates/101-cosmosdb-cassandra-autoscale/azuredeploy.json":::
239+
```
34240

35241
<a id="create-manual"></a>
36242

0 commit comments

Comments
 (0)