Skip to main content
NetApp artificial intelligence solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

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.

Figura que muestra el diálogo de entrada/salida o representa contenido escrito