Skip to content

Commit 780bc2a

Browse files
committed
Learn Editor: Update howto-prepare-cluster.md
1 parent 1b20599 commit 780bc2a

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

articles/iot-operations/deploy-iot-ops/howto-prepare-cluster.md

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ ms.date: 10/23/2024
1212

1313
# Prepare your Azure Arc-enabled Kubernetes cluster
1414

15-
An Azure Arc-enabled Kubernetes cluster is a prerequisite for deploying Azure IoT Operations. This article describes how to prepare a cluster before you deploy Azure IoT Operations. This article includes guidance for both Ubuntu and Windows.
15+
An Azure Arc-enabled Kubernetes cluster is a prerequisite for deploying Azure IoT Operations. This article describes how to prepare a cluster before you deploy Azure IoT Operations. This article includes guidance for Ubuntu, Windows, Azure Local, and Tanzu Kubernetes Grid (TKG).
1616

1717
The steps in this article prepare your cluster for a secure settings deployment, which is a longer but production-ready process. If you want to deploy Azure IoT Operations quickly and run a sample workload with only test settings, see the [Quickstart: Run Azure IoT Operations in GitHub Codespaces with K3s](../get-started-end-to-end-sample/quickstart-deploy.md) instead. For more information about test settings and secure settings, see [Deployment details > Choose your features](./overview-deploy.md#choose-your-features).
1818

1919
## Prerequisites
2020

21-
Microsoft supports Azure Kubernetes Service (AKS) Edge Essentials for deployments on Windows and K3s for deployments on Ubuntu. If you want to deploy Azure IoT Operations to a multi-node solution, use K3s on Ubuntu.
21+
Microsoft supports Azure Kubernetes Service (AKS) Edge Essentials for deployments on Windows, K3s for deployments on Ubuntu, AKS deployments on Azure Local, and Tanzu Kubernetes release (TKr) on TKG. If you want to deploy Azure IoT Operations to a multi-node solution, use K3s on Ubuntu.
2222

2323
### [Ubuntu](#tab/ubuntu)
2424

@@ -32,7 +32,7 @@ To prepare an Azure Arc-enabled Kubernetes cluster, you need:
3232
az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
3333
```
3434

35-
* Azure CLI version 2.53.0 or newer installed on your cluster machine. Use `az --version` to check your version and `az upgrade` to update if necessary. For more information, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
35+
* Azure CLI version 2.62.0 or newer installed on your cluster machine. Use `az --version` to check your version and `az upgrade` to update if necessary. For more information, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
3636

3737
* The latest version of the **connectedk8s** extension for Azure CLI:
3838

@@ -87,7 +87,7 @@ To prepare a Tanzu Kubernetes Grid (TKG) workload cluster, you need:
8787
az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
8888
```
8989

90-
- Azure CLI version 2.53.0 or newer installed on your cluster machine. Use `az --version` to check your version and `az upgrade` to update if necessary. For more information, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
90+
- Azure CLI version 2.62.0 or newer installed on your cluster machine. Use `az --version` to check your version and `az upgrade` to update if necessary. For more information, see [How to install the Azure CLI](/cli/azure/install-azure-cli).
9191

9292
- The latest version of the **connectedk8s** extension for Azure CLI:
9393

@@ -280,9 +280,10 @@ To prepare a TKGm workload cluster, you need:
280280
Before deploying Azure IoT Operations, you will need to update the Pod Security Admission settings on your TKGm cluster. Applying this file will pre-create namespace labels and set pod security to `privileged`.
281281

282282

283-
```azurecli
284-
kubectl apply -f <link to repo>
285-
```
283+
284+
```azurecli
285+
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/tanzu-config/psa.yaml
286+
```
286287

287288
### Arc-enable your cluster
288289

@@ -295,12 +296,12 @@ Connect your cluster to Azure Arc so that it can be managed remotely.
295296
az login
296297
```
297298

298-
If at any point you get an error that says *Your device is required to be managed to access your resource*, run `az login` again and make sure that you sign in interactively with a browser.
299-
300299
1. After you sign in, the Azure CLI displays all of your subscriptions and indicates your default subscription with an asterisk `*`. To continue with your default subscription, select `Enter`. Otherwise, type the number of the Azure subscription that you want to use.
301300

302301
1. Register the required resource providers in your subscription.
303302

303+
> [!NOTE]
304+
> This step only needs to be run once per subscription. To register resource providers, you need permission to do the `/register/action` operation, which is included in subscription Contributor and Owner roles. For more information, see [Azure resource providers and types](../../azure-resource-manager/management/resource-providers-and-types.md).
304305
305306
```azurecli
306307
az provider register -n "Microsoft.ExtendedLocation"
@@ -317,16 +318,24 @@ If at any point you get an error that says *Your device is required to be manage
317318
```azurecli
318319
az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
319320
```
320-
321-
To prevent unplanned updates to Azure Arc and the system Arc extensions that Azure IoT Operations uses as dependencies, this command disables autoupgrade. Instead, [manually upgrade agents](/azure/azure-arc/kubernetes/agent-upgrade) as needed.
322-
321+
322+
To prevent unplanned updates to Azure Arc and the system Arc extensions that Azure IoT Operations uses as dependencies, this command disables autoupgrade. Instead, [manually upgrade agents](/azure/azure-arc/kubernetes/agent-upgrade) as needed.
323+
324+
> [!IMPORTANT]
325+
> If your environment uses a proxy server or Azure Arc Gateway, modify the `az connectedk8s connect` command with your proxy information:
326+
>
327+
> 1. Follow the instructions in either [Connect using an outbound proxy server](/azure/azure-arc/kubernetes/quickstart-connect-cluster#connect-using-an-outbound-proxy-server) or [Onboard Kubernetes clusters to Azure Arc with Azure Arc Gateway](/azure/azure-arc/kubernetes/arc-gateway-simplify-networking#onboard-kubernetes-clusters-to-azure-arc-with-your-arc-gateway-resource).
328+
> 1. Add `169.254.169.254` to the `--proxy-skip-range` parameter of the `az connectedk8s connect` command. [Azure Device Registry](../discover-manage-assets/overview-manage-assets.md#store-assets-as-azure-resources-in-a-centralized-registry) uses this local endpoint to get access tokens for authorization.
329+
>
330+
> Azure IoT Operations doesn't support proxy servers that require a trusted certificate.
331+
323332
1. Get the cluster's issuer URL.
324333

325334

326335
```azurecli
327336
az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
328337
```
329-
338+
330339
Save the output of this command to use in the next steps.
331340

332341
1. Connect to the TKG management cluster. Edit the custom resource for the workload cluster with the issuer URL from the previous step.
@@ -336,8 +345,8 @@ Save the output of this command to use in the next steps.
336345
```
337346

338347
1. Add the following content to the `config.yaml` file, replacing the <OIDC_ISSUER_URL> placeholder with your cluster's issuer URL.
339-
> [!NOTE]
340-
> The URL should be copied exactly as printed by the prior command, including any characters such as `/`.
348+
> [!NOTE]
349+
> The URL should be copied exactly as printed by the prior command, including any characters such as `/`.
341350
```yaml
342351
- name: apiServerExtraArgs
343352
value: {"service-account-issuer":"<OIDC_ISSUER_URL>"}

0 commit comments

Comments
 (0)