|
2 | 2 | title: "Azure Arc-enabled Kubernetes agent architecture"
|
3 | 3 | services: azure-arc
|
4 | 4 | ms.service: azure-arc
|
5 |
| -ms.date: 03/03/2021 |
| 5 | +ms.date: 08/03/2021 |
6 | 6 | ms.topic: conceptual
|
7 |
| -description: "This article provides an architectural overview of Azure Arc-enabled Kubernetes agents" |
| 7 | +description: "This article provides an architectural overview of Azure Arc-enabled Kubernetes agents." |
8 | 8 | keywords: "Kubernetes, Arc, Azure, containers"
|
9 | 9 | ---
|
10 | 10 |
|
11 | 11 | # Azure Arc-enabled Kubernetes agent overview
|
12 | 12 |
|
13 |
| -[Kubernetes](https://kubernetes.io/) can deploy containerized workloads consistently on hybrid and multi-cloud environments. Azure Arc-enabled Kubernetes provides a centralized, consistent control plane to manage policy, governance, and security across Kubernetes clusters on these heterogenous environments. This article provides an overview of the Azure Arc agents deployed on the Kubernetes clusters as part of connecting the cluster to Azure Arc. |
| 13 | +[Kubernetes](https://kubernetes.io/) can deploy containerized workloads consistently on hybrid and multi-cloud environments. [Azure Arc-enabled Kubernetes](overview.md) provides a centralized, consistent control plane to manage policy, governance, and security across Kubernetes clusters on these heterogenous environments. |
| 14 | + |
| 15 | +This article provides an overview of the Azure Arc agents deployed on the Kubernetes clusters when [connecting them to Azure Arc](quickstart-connect-cluster.md). |
14 | 16 |
|
15 | 17 | ## Deploy agents to your cluster
|
16 | 18 |
|
17 |
| -Most on-prem datacenters enforce strict network rules that prevent inbound communication on the network boundary firewall. Azure Arc-enabled Kubernetes works with these restrictions by not requiring inbound ports on the firewall. Azure Arc agents only require outbound communication to a prerequisite list of network endpoints. |
| 19 | +Most on-premises datacenters enforce strict network rules that prevent inbound communication on the network boundary firewall. Azure Arc-enabled Kubernetes works with these restrictions by not requiring inbound ports on the firewall. Azure Arc agents only require outbound communication to a [set list of network endpoints](quickstart-connect-cluster.md#meet-network-requirements). |
18 | 20 |
|
19 |
| -[  ](./media/architectural-overview.png#lightbox) |
| 21 | + ](./media/architectural-overview.png#lightbox) |
20 | 22 |
|
21 |
| -The following steps are involved in connecting a Kubernetes cluster to Azure Arc: |
| 23 | +The following high-level steps are involved in [connecting a Kubernetes cluster to Azure Ar](quickstart-connect-cluster.md)c: |
22 | 24 |
|
23 | 25 | 1. Create a Kubernetes cluster on your choice of infrastructure (VMware vSphere, Amazon Web Services, Google Cloud Platform, etc.).
|
24 | 26 |
|
25 | 27 | > [!NOTE]
|
26 |
| - > Since Azure Arc-enabled Kubernetes currently only supports attaching existing Kubernetes clusters to Azure Arc, customers are required to create and manage the lifecycle of the Kubernetes cluster themselves. |
| 28 | + > Azure Arc-enabled Kubernetes currently only supports attaching existing Kubernetes clusters to Azure Arc. You must create the cluster before you connect it to Azure Arc. |
27 | 29 |
|
28 |
| -1. Start the Azure Arc registration for your cluster using Azure CLI. |
29 |
| - * Azure CLI uses Helm to deploy the agent Helm chart on the cluster. |
30 |
| - * The cluster nodes initiate an outbound communication to the [Microsoft Container Registry](https://github.com/microsoft/containerregistry) and pull the images needed to create the following agents in the `azure-arc` namespace: |
| 30 | +1. Start the Azure Arc registration for your cluster. |
| 31 | + * The agent Helm chart is deployed on the cluster. |
| 32 | + * The cluster nodes initiate an outbound communication to the [Microsoft Container Registry](https://github.com/microsoft/containerregistry), pulling the images needed to create the following agents in the `azure-arc` namespace: |
31 | 33 |
|
32 | 34 | | Agent | Description |
|
33 | 35 | | ----- | ----------- |
|
34 | 36 | | `deployment.apps/clusteridentityoperator` | Azure Arc-enabled Kubernetes currently supports only [system assigned identities](../../active-directory/managed-identities-azure-resources/overview.md). `clusteridentityoperator` initiates the first outbound communication. This first communication fetches the Managed Service Identity (MSI) certificate used by other agents for communication with Azure. |
|
35 | 37 | | `deployment.apps/config-agent` | Watches the connected cluster for source control configuration resources applied on the cluster. Updates the compliance state. |
|
36 |
| - | `deployment.apps/controller-manager` | An operator of operators that orchestrates interactions between Azure Arc components. | |
| 38 | + | `deployment.apps/controller-manager` | An operator of operators that orchestrates interactions between Azure Arc components. | |
37 | 39 | | `deployment.apps/metrics-agent` | Collects metrics of other Arc agents to verify optimal performance. |
|
38 | 40 | | `deployment.apps/cluster-metadata-operator` | Gathers cluster metadata, including cluster version, node count, and Azure Arc agent version. |
|
39 | 41 | | `deployment.apps/resource-sync-agent` | Syncs the above-mentioned cluster metadata to Azure. |
|
40 | 42 | | `deployment.apps/flux-logs-agent` | Collects logs from the flux operators deployed as a part of source control configuration. |
|
41 | 43 | | `deployment.apps/extension-manager` | Installs and manages lifecycle of extension helm charts |
|
42 |
| - | `deployment.apps/kube-aad-proxy` | Used for authentication of requests sent to the cluster using Cluster Connect | |
43 |
| - | `deployment.apps/clusterconnect-agent` | Reverse proxy agent that enables Cluster Connect feature to provide access to `apiserver` of cluster. Optional component deployed only if `cluster-connect` feature is enabled on the cluster | |
44 |
| - | `deployment.apps/guard` | Authentication and authorization webhook server used for Azure Active Directory (Azure AD) RBAC. Optional component deployed only if `azure-rbac` feature is enabled on the cluster | |
| 44 | + | `deployment.apps/kube-aad-proxy` | Used for authentication of requests sent to the cluster using Cluster Connect. | |
| 45 | + | `deployment.apps/clusterconnect-agent` | Reverse proxy agent that enables the Cluster Connect feature to provide access to `apiserver` of the cluster. Optional component deployed only if the [Cluster Connect](conceptual-cluster-connect.md) feature is enabled. | |
| 46 | + | `deployment.apps/guard` | Authentication and authorization webhook server used for Azure Active Directory (Azure AD) RBAC. Optional component deployed only if [Azure RBAC](conceptual-azure-rbac.md) is enabled on the cluster. | |
45 | 47 |
|
46 |
| -1. Once all the Azure Arc-enabled Kubernetes agent pods are in `Running` state, verify that your cluster connected to Azure Arc. You should see: |
| 48 | +1. Once all the Azure Arc-enabled Kubernetes agent pods are in `Running` state, verify that your cluster is connected to Azure Arc. You should see: |
47 | 49 | * An Azure Arc-enabled Kubernetes resource in [Azure Resource Manager](../../azure-resource-manager/management/overview.md). Azure tracks this resource as a projection of the customer-managed Kubernetes cluster, not the actual Kubernetes cluster itself.
|
48 |
| - * Cluster metadata (like Kubernetes version, agent version, and number of nodes) appears on the Azure Arc-enabled Kubernetes resource as metadata. |
| 50 | + * Cluster metadata (such as Kubernetes version, agent version, and number of nodes) appearing on the Azure Arc-enabled Kubernetes resource as metadata. |
49 | 51 |
|
50 | 52 | ## Next steps
|
51 | 53 |
|
52 | 54 | * Walk through our quickstart to [connect a Kubernetes cluster to Azure Arc](./quickstart-connect-cluster.md).
|
| 55 | +* Learn about [upgrading Azure Arc-enabled Kubernetes agents](agent-upgrade.md). |
53 | 56 | * Learn more about the creating connections between your cluster and a Git repository as a [configuration resource with Azure Arc-enabled Kubernetes](./conceptual-configurations.md).
|
0 commit comments