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
@@ -26,7 +26,6 @@ Features of confidential computing nodes include:
26
26
> [!NOTE]
27
27
> DCsv2/DCsv3 VMs use specialized hardware that's subject region availability. For more information, see the [available SKUs and supported regions](virtual-machine-solutions-sgx.md).
28
28
29
-
30
29
## Prerequisites
31
30
32
31
This quickstart requires:
@@ -57,6 +56,7 @@ Now create an AKS cluster, with the confidential computing add-on enabled, by us
57
56
```azurecli-interactive
58
57
az aks create -g myResourceGroup --name myAKSCluster --generate-ssh-keys --enable-addons confcom
59
58
```
59
+
60
60
The above command will deploy a new AKS cluster with system node pool of non confidential computing node. Confidential computing Intel SGX nodes are not recommended for system node pools.
61
61
62
62
### Add a user node pool with confidential computing capabilities to the AKS cluster<aid="add-a-user-node-pool-with-confidential-computing-capabilities-to-the-aks-cluster"></a>
@@ -79,9 +79,11 @@ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
79
79
80
80
Use the `kubectl get pods` command to verify that the nodes are created properly and the SGX-related DaemonSets are running on DCsv2 node pools:
81
81
82
-
```console
83
-
$ kubectl get pods --all-namespaces
82
+
```bash
83
+
kubectl get pods --all-namespaces
84
+
```
84
85
86
+
```output
85
87
kube-system sgx-device-plugin-xxxx 1/1 Running
86
88
```
87
89
@@ -122,21 +124,24 @@ az aks nodepool list --cluster-name myAKSCluster --resource-group myResourceGrou
122
124
123
125
Sign in to your existing AKS cluster to perform the following verification:
124
126
125
-
```console
127
+
```bash
126
128
kubectl get nodes
127
129
```
128
130
129
131
The output should show the newly added *confcompool1* pool on the AKS cluster. You might also see other DaemonSets.
130
132
131
-
```console
132
-
$ kubectl get pods --all-namespaces
133
+
```bash
134
+
kubectl get pods --all-namespaces
135
+
```
133
136
137
+
```output
134
138
kube-system sgx-device-plugin-xxxx 1/1 Running
135
139
```
136
140
137
141
If the output matches the preceding code, your AKS cluster is now ready to run confidential applications.
138
142
139
143
## Deploy Hello World from an isolated enclave application <aid="hello-world"></a>
144
+
140
145
You're now ready to deploy a test application.
141
146
142
147
Create a file named *hello-world-enclave.yaml* and paste in the following YAML manifest. You can find this sample application code in the [Open Enclave project](https://github.com/openenclave/openenclave/tree/master/samples/helloworld). This deployment assumes that you've deployed the *confcom* add-on.
@@ -165,7 +170,8 @@ spec:
165
170
sgx.intel.com/epc: 5Mi # This limit will automatically place the job into a confidential computing node and mount the required driver volumes. sgx limit setting needs "confcom" AKS Addon as referenced above.
166
171
restartPolicy: Never
167
172
backoffLimit: 0
168
-
```
173
+
```
174
+
169
175
Alternatively you can also do a node pool selection deployment for your container deployments as shown below
170
176
171
177
```yaml
@@ -199,35 +205,43 @@ spec:
199
205
kubernetes.azure.com/sgx_epc_mem_in_MiB: 10
200
206
restartPolicy: "Never"
201
207
backoffLimit: 0
202
-
```
208
+
```
203
209
204
210
Now use the `kubectl apply` command to create a sample job that will open in a secure enclave, as shown in the following example output:
205
211
206
-
```console
207
-
$ kubectl apply -f hello-world-enclave.yaml
212
+
```bash
213
+
kubectl apply -f hello-world-enclave.yaml
214
+
```
208
215
216
+
```output
209
217
job "sgx-test" created
210
218
```
211
219
212
220
You can confirm that the workload successfully created a Trusted Execution Environment (enclave) by running the following commands:
213
221
214
-
```console
215
-
$ kubectl get jobs -l app=sgx-test
222
+
```bash
223
+
kubectl get jobs -l app=sgx-test
224
+
```
216
225
226
+
```output
217
227
NAME COMPLETIONS DURATION AGE
218
228
sgx-test 1/1 1s 23s
219
229
```
220
230
221
-
```console
222
-
$ kubectl get pods -l app=sgx-test
231
+
```bash
232
+
kubectl get pods -l app=sgx-test
233
+
```
223
234
235
+
```output
224
236
NAME READY STATUS RESTARTS AGE
225
237
sgx-test-rchvg 0/1 Completed 0 25s
226
238
```
227
239
228
-
```console
229
-
$ kubectl logs -l app=sgx-test
240
+
```bash
241
+
kubectl logs -l app=sgx-test
242
+
```
230
243
244
+
```output
231
245
Hello world from the enclave
232
246
Enclave called into host to print: Hello World!
233
247
```
@@ -248,9 +262,9 @@ az aks delete --resource-group myResourceGroup --cluster-name myAKSCluster
248
262
249
263
## Next steps
250
264
251
-
* Run Python, Node, or other applications through confidential containers using ISV/OSS SGX wrapper software. Review [confidential container samples in GitHub](https://github.com/Azure-Samples/confidential-container-samples).
265
+
-Run Python, Node, or other applications through confidential containers using ISV/OSS SGX wrapper software. Review [confidential container samples in GitHub](https://github.com/Azure-Samples/confidential-container-samples).
252
266
253
-
* Run enclave-aware applications by using the [enclave-aware Azure container samples in GitHub](https://github.com/Azure-Samples/confidential-computing/blob/main/containersamples/).
267
+
-Run enclave-aware applications by using the [enclave-aware Azure container samples in GitHub](https://github.com/Azure-Samples/confidential-computing/blob/main/containersamples/).
0 commit comments