|
1 | 1 | ---
|
2 |
| -title: "Custom Locations - Azure Arc-enabled Kubernetes" |
3 |
| -ms.date: 07/21/2022 |
| 2 | +title: "Custom locations with Azure Arc-enabled Kubernetes" |
| 3 | +ms.date: 03/26/2024 |
4 | 4 | ms.topic: conceptual
|
5 |
| -description: "This article provides a conceptual overview of the custom locations capability of Azure Arc-enabled Kubernetes" |
| 5 | +description: "This article provides a conceptual overview of the custom locations capability of Azure Arc-enabled Kubernetes." |
6 | 6 | ---
|
7 | 7 |
|
8 |
| -# Custom locations on top of Azure Arc-enabled Kubernetes |
| 8 | +# Custom locations with Azure Arc-enabled Kubernetes |
9 | 9 |
|
10 | 10 | As an extension of the Azure location construct, the *custom locations* feature provides a way for tenant administrators to use their Azure Arc-enabled Kubernetes clusters as target locations for deploying Azure services instances. Examples of Azure offerings that can be deployed on top of custom locations include databases, such as SQL Managed Instance enabled by Azure Arc and Azure Arc-enabled PostgreSQL server.
|
11 | 11 |
|
12 | 12 | Similar to Azure locations, end users within the tenant who have access to Custom Locations can deploy resources there using their company's private compute.
|
13 | 13 |
|
14 |
| -[  ](./media/conceptual-arc-platform-layers.png#lightbox) |
| 14 | +:::image type="content" source="media/conceptual-arc-platform-layers.png" alt-text="Diagram showing the Arc platform layers."::: |
15 | 15 |
|
16 |
| -You can visualize custom locations as an abstraction layer on top of Azure Arc-enabled Kubernetes cluster, cluster connect, and cluster extensions. Custom locations create the granular [RoleBindings and ClusterRoleBindings](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-and-clusterrolebinding) necessary for other Azure services to access the cluster. These other Azure services require cluster access to manage resources that the customer wants to deploy on their clusters. |
| 16 | +You can visualize custom locations as an abstraction layer on top of Azure Arc-enabled Kubernetes clusters, cluster connect, and cluster extensions. Custom locations create the granular [RoleBindings and ClusterRoleBindings](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-and-clusterrolebinding) necessary for other Azure services to access the cluster. These other Azure services require cluster access to manage deployed resources. |
17 | 17 |
|
18 | 18 | ## Architecture
|
19 | 19 |
|
20 |
| -When the admin [enables the custom locations feature on the cluster](custom-locations.md), a ClusterRoleBinding is created on the cluster, authorizing the Microsoft Entra application used by the custom locations resource provider. Once authorized, the custom locations resource provider can create ClusterRoleBindings or RoleBindings needed by other Azure resource providers to create custom resources on this cluster. The cluster extensions installed on the cluster determine the list of resource providers to authorize. |
| 20 | +When the admin [enables the custom locations feature on the cluster](custom-locations.md), a `ClusterRoleBinding` is created on the cluster, authorizing the Microsoft Entra application used by the custom locations resource provider. Once authorized, the custom locations resource provider can create `ClusterRoleBinding` or `RoleBinding` objects that are needed by other Azure resource providers to create custom resources on this cluster. The cluster extensions installed on the cluster determine the list of resource providers to authorize. |
21 | 21 |
|
22 |
| -[  ](./media/conceptual-custom-locations-usage.png#lightbox) |
| 22 | +:::image type="content" source="media/conceptual-custom-locations-usage.png" alt-text="Diagram of custom locations architecture, using Arc-enabled data services as an example." lightbox="media/conceptual-custom-locations-usage.png"::: |
23 | 23 |
|
24 | 24 | When the user creates a data service instance on the cluster:
|
25 | 25 |
|
26 | 26 | 1. The PUT request is sent to Azure Resource Manager.
|
27 |
| -1. The PUT request is forwarded to the Azure Arc-enabled Data Services RP. |
| 27 | +1. The PUT request is forwarded to the Azure Arc-enabled data services resource provider. |
28 | 28 | 1. The RP fetches the `kubeconfig` file associated with the Azure Arc-enabled Kubernetes cluster on which the custom location exists.
|
29 | 29 | * Custom location is referenced as `extendedLocation` in the original PUT request.
|
30 |
| -1. The Azure Arc-enabled Data Services resource provider uses the `kubeconfig` to communicate with the cluster to create a custom resource of the Azure Arc-enabled Data Services type on the namespace mapped to the custom location. |
31 |
| - * The Azure Arc-enabled Data Services operator was deployed via cluster extension creation before the custom location existed. |
32 |
| -1. The Azure Arc-enabled Data Services operator reads the new custom resource created on the cluster and creates the data controller, translating into realization of the desired state on the cluster. |
| 30 | +1. The Azure Arc-enabled data services resource provider uses the `kubeconfig` to communicate with the cluster to create a custom resource of the Azure Arc-enabled data services type on the namespace mapped to the custom location. |
| 31 | + * The Azure Arc-enabled data services operator was deployed via cluster extension creation before the custom location existed. |
| 32 | +1. The Azure Arc-enabled data services operator reads the new custom resource created on the cluster and creates the data controller, translating into realization of the desired state on the cluster. |
33 | 33 |
|
34 | 34 | The sequence of steps to create the SQL managed instance and PostgreSQL instance are identical to the sequence of steps described above.
|
35 | 35 |
|
|
0 commit comments