An open API service indexing awesome lists of open source software.

https://github.com/aws/aws-nitro-enclaves-k8s-device-plugin

Nitro Enclaves Kubernetes Device Plugin
https://github.com/aws/aws-nitro-enclaves-k8s-device-plugin

device-plugin kubernetes nitro-enclaves

Last synced: 3 months ago
JSON representation

Nitro Enclaves Kubernetes Device Plugin

Awesome Lists containing this project

README

        

# Introduction

The Nitro Enclaves [Device Plugin](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) gives your pods and containers the ability to access the [Nitro Enclaves device driver](https://docs.kernel.org/virt/ne_overview.html). The device plugin works with both [Amazon EKS](https://aws.amazon.com/eks/) and self-managed Kubernetes nodes.

[AWS Nitro Enclaves](https://aws.amazon.com/ec2/nitro/nitro-enclaves/) is an [Amazon EC2](https://aws-content-sandbox.aka.amazon.com/ec2/) capability that enables customers to create isolated compute environments to further protect and securely process highly sensitive data within their EC2 instances.

# Prerequisites
To utilize this device plugin, you will need:

- A configured Kubernetes cluster.
- At least one enclave-enabled node available in the cluster. An enclave-enabled node is an EC2 instance with the **EnclaveOptions** parameter set to **true**. For more information on creating an enclaving an enclave-enabled node, review the using [Nitro Enclaves with EKS user guide](https://docs.aws.amazon.com/enclaves/latest/user/kubernetes.html).

To build the plugin, you will need:
- Docker

# Usage
To deploy the device plugin to your Kubernetes cluster, use the following command:
```
kubectl -f apply https://raw.githubusercontent.com/aws/aws-nitro-enclaves-k8s-device-plugin/main/aws-nitro-enclaves-k8s-ds.yaml
```

After deploying the device plugin, use labelling to enable the device plugin on a particular node:
```
kubectl label node aws-nitro-enclaves-k8s-dp=enabled
```

To see list of the nodes that have plugin enabled, use the following command:
```
kubectl get nodes --show-labels | grep aws-nitro-enclaves-k8s-dp=enabled
```

To disable the plugin on a particular node, use the following command:
```
kubectl label node aws-nitro-enclaves-k8s-dp-
```

# Building the Device Plugin
To build the device plugin from its sources, use the following command:

```
./scripts/build.sh
````

After successfully running the script, the device plugin will be built as a Docker image with the name `aws-nitro-enclaves-k8s-device-plugin`.

# Running Nitro Enclaves in a Kubernetes Cluster

There is a guide available on how to run Nitro Enclaves in EKS clusters. See this [link](https://github.com/aws/aws-nitro-enclaves-with-k8s) to learn more.

# License
This project is licensed under the Apache-2.0 License.