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
Copy file name to clipboardExpand all lines: articles/azure-arc/data/create-data-controller-using-kubernetes-native-tools.md
+40-68Lines changed: 40 additions & 68 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
-
title: Create a Data Controller using Kubernetes tools
3
-
description: Create a Data Controller using Kubernetes tools
2
+
title: Create a data controller using Kubernetes tools
3
+
description: Create a data controller using Kubernetes tools
4
4
services: azure-arc
5
5
ms.service: azure-arc
6
6
ms.subservice: azure-arc-data
@@ -11,27 +11,28 @@ ms.date: 11/03/2021
11
11
ms.topic: how-to
12
12
---
13
13
14
-
# Create Azure Arc data controller using Kubernetes tools
14
+
# Create Azure Arc-enabled data controller using Kubernetes tools
15
15
16
+
A data controller manages Azure Arc-enabled data services for a Kubernetes cluster. This article describes how to use Kubernetes tools to create a data controller.
16
17
17
18
## Prerequisites
18
19
19
20
Review the topic [Plan an Azure Arc-enabled data services deployment](plan-azure-arc-data-services.md) for overview information.
20
21
21
-
To create the Azure Arc data controller using Kubernetes tools you will need to have the Kubernetes tools installed. The examples in this article will use `kubectl`, but similar approaches could be used with other Kubernetes tools such as the Kubernetes dashboard, `oc`, or `helm` if you are familiar with those tools and Kubernetes yaml/json.
22
+
To create the data controller using Kubernetes tools you will need to have the Kubernetes tools installed. The examples in this article will use `kubectl`, but similar approaches could be used with other Kubernetes tools such as the Kubernetes dashboard, `oc`, or `helm` if you are familiar with those tools and Kubernetes yaml/json.
22
23
23
24
[Install the kubectl tool](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
24
25
25
26
> [!NOTE]
26
-
> Some of the steps to create the Azure Arc data controller that are indicated below require Kubernetes cluster administrator permissions. If you are not a Kubernetes cluster administrator, you will need to have the Kubernetes cluster administrator perform these steps on your behalf.
27
+
> Some of the steps to create the data controller that are indicated below require Kubernetes cluster administrator permissions. If you are not a Kubernetes cluster administrator, you will need to have the Kubernetes cluster administrator perform these steps on your behalf.
27
28
28
29
### Cleanup from past installations
29
30
30
-
If you installed the Azure Arc data controller in the past on the same cluster and deleted the Azure Arc data controller, there may be some cluster level objects that would still need to be deleted.
31
+
If you installed the data controller in the past on the same cluster and deleted the data controller, there may be some cluster level objects that would still need to be deleted.
31
32
32
33
For some of the tasks, you'll need to replace `{namespace}` with the value for your namespace. Substitute the name of the namespace the data controller was deployed in into `{namespace}`. If unsure, get the name of the `mutatingwebhookconfiguration` using `kubectl get clusterrolebinding`.
33
34
34
-
Run the following commands to delete the Azure Arc data controller cluster level objects:
35
+
Run the following commands to delete the data controller cluster level objects:
## Create a namespace in which the data controller will be created
111
97
112
98
Run a command similar to the following to create a new, dedicated namespace in which the data controller will be created. In this example and the remainder of the examples in this article, a namespace name of `arc` will be used. If you choose to use a different name, then use the same name throughout.
If other people will be using this namespace that are not cluster administrators, we recommend creating a namespace admin role and granting that role to those users through a role binding. The namespace admin should have full permissions on the namespace. More granular roles and example role bindings can be found on the [Azure Arc GitHub repository](https://github.com/microsoft/azure_arc/tree/main/arc_data_services/deploy/yaml/rbac).
110
+
If other people who are not cluster administrators will be using this namespace, create a namespace admin role and grant that role to those users through a role binding. The namespace admin should have full permissions on the namespace. More granular roles and example role bindings can be found on the [Azure Arc GitHub repository](https://github.com/microsoft/azure_arc/tree/main/arc_data_services/deploy/yaml/rbac).
111
+
112
+
113
+
## Create the deployer service account
114
+
115
+
> [!IMPORTANT]
116
+
> Requires Kubernetes permissions for creating service account, role binding, cluster role, cluster role binding, and all the RBAC permissions being granted to the service account.
117
+
118
+
Save a copy of [arcdata-deployer.yaml](https://raw.githubusercontent.com/microsoft/azure_arc/release-arc-data/arc_data_services/arcdata-deployer.yaml), and replace the placeholder `{{NAMESPACE}}` in the file with the namespace created in the previous step, for example: `arc`. Run the following command to create the deployer service account with the edited file.
The bootstrapper service handles incoming requests for creating, editing, and deleting custom resources such as a data controller, SQL managed instances, or PostgreSQL Hyperscale server groups.
127
+
The bootstrapper service handles incoming requests for creating, editing, and deleting custom resources such as a data controller.
129
128
130
-
Run the following command to create a bootstrapper service, a service account for the bootstrapper service, and a role and role binding for the bootstrapper service account.
129
+
Run the following command to create a "bootstrap" job to install the bootstrapper along with related cluster-scope and namespaced objects, such as custom resource definitions (CRDs), the service account and bootstrapper role.
Verify that the bootstrapper pod is running using the following command. You may need to run it a few times until the status changes to `Running`.
135
+
The [uninstall.yaml](https://raw.githubusercontent.com/microsoft/azure_arc/release-arc-data/arc_data_services/deploy/yaml/uninstall.yaml) is for uninstalling the bootstrapper and related Kubernetes objects, except the CRDs.
136
+
137
+
Verify that the bootstrapper pod is running using the following command.
137
138
138
139
```console
139
-
kubectl get pod --namespace arc
140
+
kubectl get pod --namespace arc -l app=bootstrapper
140
141
```
141
142
142
-
The bootstrapper.yaml template file defaults to pulling the bootstrapper container image from the Microsoft Container Registry (MCR). If your environment does not have access directly to the Microsoft Container Registry, you can do the following:
143
+
If the status is not _Running_, run the command a few times until the status is _Running_.
144
+
145
+
The bootstrap.yaml template file defaults to pulling the bootstrapper container image from the Microsoft Container Registry (MCR). If your environment can't directly access the Microsoft Container Registry, you can do the following:
143
146
- Follow the steps to [pull the container images from the Microsoft Container Registry and push them to a private container registry](offline-deployment.md).
144
-
-[Create an image pull secret](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-lin) for your private container registry.
145
-
- Add an image pull secret to the bootstrapper container. See example below.
146
-
- Change the image location for the bootstrapper image. See example below.
147
-
148
-
The example below assumes that you created a image pull secret name `arc-private-registry`.
149
-
150
-
```yaml
151
-
#Just showing only the relevant part of the bootstrapper.yaml template file here
152
-
spec:
153
-
serviceAccountName: sa-bootstrapper
154
-
nodeSelector:
155
-
kubernetes.io/os: linux
156
-
imagePullSecrets:
157
-
- name: arc-private-registry #Create this image pull secret if you are using a private container registry
158
-
containers:
159
-
- name: bootstrapper
160
-
image: mcr.microsoft.com/arcdata/arc-bootstrapper:v1.1.0_2021-11-02 #Change this registry location if you are using a private container registry.
161
-
imagePullPolicy: Always
162
-
```
147
+
-[Create an image pull secret](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line) named `arc-private-registry` for your private container registry.
148
+
- Change the image URL for the bootstrapper image in the bootstrap.yaml file.
149
+
- Replace `arc-private-registry` in the bootstrap.yaml file if a different name was used for the image pull secret.
163
150
164
151
## Create secrets for the metrics and logs dashboards
Optionally, you can create SSL/TLS certificates for the logs and metrics dashboards. Follow the instructions at [Specify during Kubernetes native tools deployment](monitor-certificates.md).
205
192
206
-
## Create the webhook deployment job, cluster role and cluster role binding
207
-
208
-
First, create a copy of the [template file](https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/deploy/yaml/web-hook.yaml) locally on your computer so that you can modify some of the settings.
209
-
210
-
Edit the file and replace `{{namespace}}` in all places with the name of the namespace you created in the previous step. **Save the file.**
211
-
212
-
Run the following command to create the cluster role and cluster role bindings.
kubectl create -n arc -f <path to the edited template file on your computer>
219
-
```
220
-
221
193
222
194
## Create the data controller
223
195
224
196
Now you are ready to create the data controller itself.
225
197
226
-
First, create a copy of the [template file](https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/deploy/yaml/data-controller.yaml) locally on your computer so that you can modify some of the settings.
198
+
First, create a copy of the [template file](https://raw.githubusercontent.com/microsoft/azure_arc/release-arc-data/arc_data_services/deploy/yaml/data-controller.yaml) locally on your computer so that you can modify some of the settings.
227
199
228
200
Edit the following as needed:
229
201
@@ -248,7 +220,7 @@ Edit the following as needed:
248
220
- **name**: The default name of the data controller is `arc`, but you can change it if you want.
249
221
- **displayName**: Set this to the same value as the name attribute at the top of the file.
250
222
- **registry**: The Microsoft Container Registry is the default. If you are pulling the images from the Microsoft Container Registry and [pushing them to a private container registry](offline-deployment.md), enter the IP address or DNS name of your registry here.
251
-
- **dockerRegistry**: The image pull secret to use to pull the images from a private container registry if required.
223
+
- **dockerRegistry**: The secret to use to pull the images from a private container registry if required.
252
224
- **repository**: The default repository on the Microsoft Container Registry is `arcdata`. If you are using a private container registry, enter the path the folder/repository containing the Azure Arc-enabled data services container images.
253
225
- **imageTag**: The current latest version tag is defaulted in the template, but you can change it if you want to use an older version.
254
226
- **logsui-certificate-secret**: The name of the secret created on the Kubernetes cluster for the logs UI certificate.
|Arc Data extension for Azure Data Studio|1.3.1 ([Download](https://aka.ms/ads-arcdata-ext))|
22
+
23
+
New for this release:
24
+
25
+
- Miscellaneous
26
+
- Extended the disk metrics reported in monitoring dashboards to include more queue length stats and more counters for IOPS. All disks are in scope for data collection that start with `vd` or `sd` now.
27
+
28
+
- Arc-enabled SQL Managed Instance
29
+
- Added buffer cache hit ratio to collectd and surface it in monitoring dashboards.
30
+
- Improvements to the formatting of the legends on some dashboards.
31
+
- Added process level CPU and memory metrics to the monitoring dashboards for the SQL managed instance process.
32
+
- syncSecondaryToCommit property is now available to be viewed and edited in Azure portal and Azure Data Studio.
33
+
- Added ability to set the DNS name for the readableSecondaries service in Azure CLI and Azure portal.
34
+
35
+
- Data controller
36
+
- Permissions required to deploy the Arc data controller have been reduced to a least-privilege level.
37
+
- When deployed via the Azure CLI, the Arc data controller is now installed via a K8s job that uses a helm chart to do the installation. There's no change to the user experience.
0 commit comments