You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Azure Arc enabled Kubernetes consists of a few agents (operators) that run in your cluster deployed to the `azure-arc` namespace.
196
196
197
-
*`deploy/config-agent`: watches the connected cluster for source control configuration resources applied on the cluster and updates compliance state
198
-
*`deploy/controller-manager`: is an operator of operators and orchestrates interactions between Azure Arc components
197
+
*`deployment.apps/config-agent`: watches the connected cluster for source control configuration resources applied on the cluster and updates compliance state
198
+
*`deployment.apps/controller-manager`: is an operator of operators and orchestrates interactions between Azure Arc components
199
+
*`deployment.apps/metrics-agent`: collects metrics of other Arc agents to ensure that these agents are exhibiting optimal performance
200
+
*`deployment.apps/cluster-metadata-operator`: gathers cluster metadata - cluster version, node count and Arc agent version
201
+
*`deployment.apps/resource-sync-agent`: syncs the above mentioned cluster metadata to Azure
202
+
*`deployment.apps/clusteridentityoperator`: maintains the managed service identity (MSI) certificate used by other agents for communication with Azure
203
+
*`deployment.apps/flux-logs-agent`: collects logs from the flux operators deployed as a part of source control configuration
When a cluster is onboarded to Azure, the agents running in your cluster must authenticate to Azure Resource Manager as part of registration. The `connectedk8s`Azure CLI extension has automated Service Principal creation. However, there may be a few scenarios where the CLI automation does not work:
18
+
A cluster can be onboarded to Arc from Azure CLI where the user has signed in using his credentials. However for automated workflows like CI/CD pipelines (Azure Pipelines, GitHub Actions,...), service principals with role assignments only allowing for onboarding clusters to Azure, are a better fit.
19
19
20
-
* Your organization generally restricts the creation of Service Principals
21
-
* The user onboarding the cluster does not have sufficient permissions to create Service Principals
22
-
23
-
Instead, let's create the Service Principal out of band, and then pass the principal to the Azure CLI extension.
20
+
The following steps provide a walkthrough on using service principals for onboarding Kubernetes clusters to Arc.
24
21
25
22
## Create a new Service Principal
26
23
@@ -59,7 +56,7 @@ Permissions may be further limited by passing in the appropriate `--scope` argum
59
56
az role assignment create \
60
57
--role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 \ # this is the id for the built-in role
61
58
--assignee 22cc2695-54b9-49c1-9a73-2269592103d8 \ # use the appId from the new SP
62
-
--scope /subscriptions/<<SUBSCRIPTION_ID>> # apply the apropriate scope
59
+
--scope /subscriptions/<<SUBSCRIPTION_ID>> # apply the appropriate scope
All Pods should show `STATUS` as `Running` and `READY` should be either `2/2` or `1/1`. Fetch logs and describe pods that are returning `Error` or `CrashLoopBackOff`.
68
+
All Pods should show `STATUS` as `Running` and `READY` should be either `3/3` or `2/2`. Fetch logs and describe pods that are returning `Error` or `CrashLoopBackOff`.
63
69
64
70
## Unable to connect my Kubernetes cluster to Azure
65
71
@@ -93,54 +99,6 @@ This operation might take a while...
93
99
There was a problem with connect-agent deployment. Please run 'kubectl -n azure-arc logs -l app.kubernetes.io/component=connect-agent -c connect-agent' to debug the error.
Connect agent logs all errors communicating with Azure and the local Kubernetes API server as standard pod logs. Fetch the logs using `kubectl` to debug.
0 commit comments