Utilice el kit de herramientas NetApp DataOps con JupyterHub
El "Kit de herramientas de NetApp DataOps para Kubernetes" se puede utilizar junto con JupyterHub. El uso del kit de herramientas NetApp DataOps con JupyterHub permite a los usuarios finales crear instantáneas de volumen para realizar copias de seguridad del espacio de trabajo o para la trazabilidad del conjunto de datos al modelo directamente desde un Jupyter Notebook.
Configuración inicial
Antes de poder usar DataOps Toolkit con JupyterHub, debe otorgar los permisos adecuados a la cuenta de servicio de Kubernetes que JupyterHub asigna a los pods de Jupyter Notebook Server de usuarios individuales. JupyterHub utiliza la cuenta de servicio especificada por el singleuser.serviceAccountName
variable en su archivo de configuración del gráfico Helm de JupyterHub.
Crear un rol de clúster para el kit de herramientas DataOps
Primero, cree una función de clúster denominada "netapp-dataops" que tenga los permisos de API de Kubernetes necesarios para crear instantáneas de volumen.
$ vi clusterrole-netapp-dataops-snapshots.yaml
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: netapp-dataops-snapshots
rules:
- apiGroups: [""]
resources: ["persistentvolumeclaims", "persistentvolumeclaims/status", "services"]
verbs: ["get", "list"]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshots", "volumesnapshots/status", "volumesnapshotcontents", "volumesnapshotcontents/status"]
verbs: ["get", "list", "create"]
$ kubectl create -f clusterrole-netapp-dataops-snapshots.yaml
clusterrole.rbac.authorization.k8s.io/netapp-dataops-snapshots created
Asignar rol de clúster a la cuenta de servicio del servidor Notebook
Cree un enlace de rol que asigne el rol de clúster 'netapp-dataops-snapshots' a la cuenta de servicio adecuada en el espacio de nombres apropiado. Por ejemplo, si instaló JupyterHub en el espacio de nombres 'jupyterhub' y especificó la cuenta de servicio 'predeterminada' a través de singleuser.serviceAccountName
variable, asignaría la función de clúster 'netapp-dataops-snapshots' a la cuenta de servicio 'predeterminada' en el espacio de nombres 'jupyterhub' como se muestra en el siguiente ejemplo.
$ vi rolebinding-jupyterhub-netapp-dataops-snapshots.yaml
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: jupyterhub-netapp-dataops-snapshots
namespace: jupyterhub # Replace with you JupyterHub namespace
subjects:
- kind: ServiceAccount
name: default # Replace with your JupyterHub singleuser.serviceAccountName
namespace: jupyterhub # Replace with you JupyterHub namespace
roleRef:
kind: ClusterRole
name: netapp-dataops-snapshots
apiGroup: rbac.authorization.k8s.io
$ kubectl create -f ./rolebinding-jupyterhub-netapp-dataops-snapshots.yaml
rolebinding.rbac.authorization.k8s.io/jupyterhub-netapp-dataops-snapshots created
Crear instantáneas de volumen dentro de Jupyter Notebook
Ahora, los usuarios de JupyterHub pueden usar NetApp DataOps Toolkit para crear instantáneas de volumen directamente desde un Jupyter Notebook como se muestra en el siguiente ejemplo.