Skip to content

Commit f68d0e8

Browse files
authored
Merge pull request #277454 from MicrosoftDocs/main
6/6/2024 AM Publish
2 parents 8376022 + 8626060 commit f68d0e8

File tree

66 files changed

+1014
-579
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1014
-579
lines changed

articles/ai-services/computer-vision/how-to/find-similar-faces.md

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,6 @@ The following code uses the above method to get face data from a series of image
4646
[!code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FaceQuickstart.cs?name=snippet_loadfaces)]
4747

4848

49-
#### [JavaScript](#tab/javascript)
50-
51-
The following face detection method is optimized for comparison operations. It doesn't extract detailed face attributes, and it uses an optimized recognition model.
52-
53-
:::code language="js" source="~/cognitive-services-quickstart-code/javascript/Face/sdk_quickstart.js" id="recognize":::
54-
55-
The following code uses the above method to get face data from a series of images.
56-
57-
:::code language="js" source="~/cognitive-services-quickstart-code/javascript/Face/sdk_quickstart.js" id="snippet_loadfaces":::
58-
59-
6049
#### [REST API](#tab/rest)
6150

6251
Copy the following cURL command and insert your key and endpoint where appropriate. Then run the command to detect one of the target faces.
@@ -89,12 +78,6 @@ The following code prints the match details to the console:
8978

9079
[!code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FaceQuickstart.cs?name=snippet_find_similar_print)]
9180

92-
#### [JavaScript](#tab/javascript)
93-
94-
The following method takes a set of target faces and a single source face. Then, it compares them and finds all the target faces that are similar to the source face. Finally, it prints the match details to the console.
95-
96-
:::code language="js" source="~/cognitive-services-quickstart-code/javascript/Face/sdk_quickstart.js" id="find_similar":::
97-
9881

9982
#### [REST API](#tab/rest)
10083

articles/ai-services/computer-vision/includes/quickstarts-sdk/identity-javascript-sdk.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ms.author: pafarley
1515

1616
Get started with facial recognition using the Face client library for JavaScript. Follow these steps to install the package and try out the example code for basic tasks. The Face service provides you with access to advanced algorithms for detecting and recognizing human faces in images. Follow these steps to install the package and try out the example code for basic face identification using remote images.
1717

18-
[Reference documentation](/javascript/api/overview/azure/cognitiveservices-face-readme) | [Package (npm)](https://www.npmjs.com/package/@azure/cognitiveservices-face) | [Samples](/samples/browse/?products=azure&term=face&languages=javascript)
18+
[Reference documentation](https://aka.ms/azsdk-javascript-face-ref) | [Library source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/face/ai-vision-face-rest) | [Package (npm)](https://www.npmjs.com/package/@azure-rest/ai-vision-face) | [Samples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/face/ai-vision-face-rest/samples)
1919

2020
## Prerequisites
2121

@@ -47,10 +47,10 @@ Get started with facial recognition using the Face client library for JavaScript
4747
npm init
4848
```
4949

50-
1. Install the `ms-rest-azure` and `azure-cognitiveservices-face` npm packages:
50+
1. Install the `@azure-rest/ai-vision-face` npm packages:
5151

5252
```console
53-
npm install @azure/cognitiveservices-face @azure/ms-rest-js uuid
53+
npm install @azure-rest/ai-vision-face
5454
```
5555

5656
Your app's `package.json` file is updated with the dependencies.
@@ -96,12 +96,18 @@ Add face to the person group person: (Family2-Lady) from image: Family2-Lady1.jp
9696
Done adding faces to person group.
9797

9898
Training person group: c08484e0-044b-4610-8b7e-c957584e5d2d.
99-
Waiting 10 seconds...
10099
Training status: succeeded.
101-
100+
No persons identified for face with ID 259dd648-be70-499c-9942-3512594e21eb
102101
Person: Family1-Mom is identified for face in: identification1.jpg with ID: b7f7f542-c338-4a40-ad52-e61772bc6e14. Confidence: 0.96921.
103102
Person: Family1-Son is identified for face in: identification1.jpg with ID: 600dc1b4-b2c4-4516-87de-edbbdd8d7632. Confidence: 0.92886.
104103
Person: Family1-Dad is identified for face in: identification1.jpg with ID: e83b494f-9ad2-473f-9d86-3de79c01e345. Confidence: 0.96725.
104+
Verification result between face bb7f7f542-c338-4a40-ad52-e61772bc6e14 and person de1d7dea-a393-4f69-9062-10cb66d4cf17: true with confidence: 0.96921
105+
Verification result between face 600dc1b4-b2c4-4516-87de-edbbdd8d7632 and person 05fd84e4-41b0-4716-b767-4376e33fa207: true with confidence: 0.92886
106+
Verification result between face e83b494f-9ad2-473f-9d86-3de79c01e345 and person c5124fe2-39dd-47ba-9163-1ed2998fdeb2: true with confidence: 0.96725
107+
108+
Deleting person group: c08484e0-044b-4610-8b7e-c957584e5d2d
109+
110+
Done.
105111
```
106112

107113

@@ -120,4 +126,4 @@ In this quickstart, you learned how to use the Face client library for JavaScrip
120126
> [Specify a face detection model version](../../how-to/specify-detection-model.md)
121127
122128
* [What is the Face service?](../../overview-identity.md)
123-
* More extensive sample code can be found on [GitHub](https://github.com/Azure-Samples/cognitive-services-quickstart-code/blob/master/javascript/Face/sdk_quickstart.js).
129+
* More extensive sample code can be found on [GitHub](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/face/ai-vision-face-rest/samples).

articles/ai-studio/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,8 @@ items:
270270
href: how-to/configure-managed-network.md
271271
- name: Configure private link
272272
href: how-to/configure-private-link.md
273+
- name: Configure custom DNS
274+
href: ../machine-learning/how-to-custom-dns.md?context=/azure/ai-studio/context/context
273275
- name: Troubleshoot secure project connectivity
274276
href: how-to/troubleshoot-secure-connection-project.md
275277
- name: Data protection & encryption

articles/aks/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@
148148
href: concepts-network-ip-address-planning.md
149149
- name: Services
150150
href: concepts-network-services.md
151+
- name: Ingress
152+
href: concepts-network-ingress.md
151153
- name: Advanced Container Networking Services
152154
items:
153155
- name: Advanced Container Networking Services overview
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: Concepts - Ingress Networking in Azure Kubernetes Service (AKS)
3+
description: Learn about ingress networking in Azure Kubernetes Service (AKS) including ingress controllers
4+
ms.topic: conceptual
5+
ms.date: 06/03/2024
6+
author: schaffererin
7+
ms.author: schaffererin
8+
---
9+
# Ingress in Azure Kubernetes Service (AKS)
10+
11+
Ingress in AKS is a Kubernetes resource that manages external HTTP-like traffic access to [services][services] within a cluster. An AKS ingress may provide services like load balancing, SSL termination, and name-based virtual hosting. For more information about Kubernetes Ingress, see the [Kubernetes Ingress documentation][k8s-ingress].
12+
13+
## Ingress controllers
14+
15+
When managing application traffic, Ingress controllers provide advanced capabilities by operating at layer 7. They can route HTTP traffic to different applications based on the inbound URL, allowing for more intelligent and flexible traffic distribution rules. For example, an ingress controller can direct traffic to different microservices depending on the URL path, enhancing the efficiency and organization of your services.
16+
17+
On the other hand, a LoadBalancer-type Service, when created, sets up an underlying Azure load balancer resource. This load balancer works at layer 4, distributing traffic to the pods in your Service on a specified port. However, layer 4 services are unaware of the actual applications and can't implement these types of complex routing rules.
18+
19+
Understanding the distinction between these two approaches helps in selecting the right tool for your traffic management needs.
20+
21+
![Diagram showing Ingress traffic flow in an AKS cluster][aks-ingress]
22+
23+
## Compare ingress options
24+
25+
The following table lists the feature differences between the different ingress controller options:
26+
27+
| Feature | Application Routing addon | Application Gateway for Containers | Azure Service Mesh/Istio-based service mesh |
28+
|---------------------------------------------------|---------------------------|------------------------------------------|---------------------------------------------|
29+
| **Ingress/Gateway controller** | NGINX ingress controller | Azure Application Gateway for Containers | Istio Ingress Gateway |
30+
| **API** | Ingress API | Ingress API and Gateway API | Gateway API |
31+
| **Hosting** | In-cluster | Azure hosted | In-cluster |
32+
| **Scaling** | Autoscaling | Autoscaling | Autoscaling |
33+
| **Load balancing** | Internal/External | External | Internal/External |
34+
| **SSL termination** | In-cluster | Yes: Offloading and E2E SSL | In-cluster |
35+
| **mTLS** | N/A | Yes to backend | N/A |
36+
| **Static IP Address** | N/A | FQDN | N/A |
37+
| **Azure Key Vault stored SSL certificates** | Yes | Yes | N/A |
38+
| **Azure DNS integration for DNS zone management** | Yes | Yes | N/A |
39+
40+
The following table lists the different scenarios where you might use each ingress controller:
41+
42+
| Ingress option | When to use |
43+
|----------------|-------------|
44+
| **Managed NGINX - Application Routing addon** | • In-cluster hosted, customizable, and scalable NGINX ingress controllers. </br> • Basic load balancing and routing capabilities. </br> • Internal and external load balancer configuration. </br> • Static IP address configuration. </br> • Integration with Azure Key Vault for certificate management. </br> • Integration with Azure DNS Zones for public and private DNS management. </br> • Supports the Ingress API. |
45+
| **Application Gateway for Containers** | • Azure hosted ingress gateway. </br> • Flexible deployment strategies managed by the controller or bring your own Application Gateway for Containers. </br> • Advanced traffic management features such as automatic retries, availability zone resiliency, mutual authentication (mTLS) to backend target, traffic splitting / weighted round robin, and autoscaling. </br> • Integration with Azure Key Vault for certificate management. </br> • Integration with Azure DNS Zones for public and private DNS management. </br> • Supports the Ingress and Gateway APIs. |
46+
| **Istio Ingress Gateway** | • Based on Envoy, when using with Istio for a service mesh. </br> • Advanced traffic management features such as rate limiting and circuit breaking. </br> • Support for mTLS </br> • Supports the Gateway API. |
47+
48+
## Create an Ingress resource
49+
50+
The application routing addon is the recommended way to configure an Ingress controller in AKS. The application routing addon is a fully managed ingress controller for Azure Kubernetes Service (AKS) that provides the following features:
51+
52+
- Easy configuration of managed NGINX Ingress controllers based on Kubernetes NGINX Ingress controller.
53+
54+
- Integration with Azure DNS for public and private zone management.
55+
56+
- SSL termination with certificates stored in Azure Key Vault.
57+
58+
For more information about the application routing addon, see [Managed NGINX ingress with the application routing add-on](app-routing.md).
59+
60+
## Client source IP preservation
61+
62+
Configure your ingress controller to preserve the client source IP on requests to containers in your AKS cluster. When your ingress controller routes a client's request to a container in your AKS cluster, the original source IP of that request is unavailable to the target container. When you enable _client source IP preservation_, the source IP for the client is available in the request header under _X-Forwarded-For_.
63+
64+
If you're using client source IP preservation on your ingress controller, you can't use TLS pass-through. Client source IP preservation and TLS pass-through can be used with other services, such as the _LoadBalancer_ type.
65+
66+
To learn more about client source IP preservation, see [How client source IP preservation works for LoadBalancer Services in AKS][ip-preservation].
67+
68+
<!-- IMAGES -->
69+
[aks-ingress]: ./media/concepts-network/aks-ingress.png
70+
71+
<!-- LINKS - External -->
72+
[k8s-ingress]: https://kubernetes.io/docs/concepts/services-networking/ingress/
73+
74+
<!-- LINKS - Internal -->
75+
[ip-preservation]: https://techcommunity.microsoft.com/t5/fasttrack-for-azure/how-client-source-ip-preservation-works-for-loadbalancer/ba-p/3033722#:~:text=Enable%20Client%20source%20IP%20preservation%201%20Edit%20loadbalancer,is%20the%20same%20as%20the%20source%20IP%20%28srjumpbox%29.
76+
[services]: concepts-network-services.md

articles/aks/concepts-network-services.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@ Learn more about Services in the [Kubernetes docs][k8s-service].
5454
[service-types]: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
5555

5656
<!-- LINKS - Internal -->
57-
[ingress-controllers]:concepts-network.md#ingress-controllers
57+
[ingress-controllers]:concepts-network-ingress.md#ingress-controllers

0 commit comments

Comments
 (0)