Use o NetApp DataOps Toolkit com o JupyterHub
O "Kit de ferramentas NetApp DataOps para Kubernetes" pode ser usado em conjunto com o JupyterHub. O uso do NetApp DataOps Toolkit com o JupyterHub permite que os usuários finais criem instantâneos de volume para backup do espaço de trabalho e/ou rastreabilidade do conjunto de dados para o modelo diretamente de um Jupyter Notebook.
Configuração inicial
Antes de poder usar o DataOps Toolkit com o JupyterHub, você deve conceder permissões apropriadas à conta de serviço do Kubernetes que o JupyterHub atribui aos pods individuais do Jupyter Notebook Server. O JupyterHub usa a conta de serviço especificada pelo singleuser.serviceAccountName
variável no seu arquivo de configuração do gráfico do JupyterHub Helm.
Criar função de cluster para o DataOps Toolkit
Primeiro, crie uma função de cluster chamada 'netapp-dataops' que tenha as permissões de API do Kubernetes necessárias para criar instantâneos de volume.
$ 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
Atribuir função de cluster à conta de serviço do servidor de notebook
Crie uma associação de função que atribua a função de cluster 'netapp-dataops-snapshots' à conta de serviço apropriada no namespace apropriado. Por exemplo, se você instalou o JupyterHub no namespace 'jupyterhub' e especificou a conta de serviço 'padrão' por meio do singleuser.serviceAccountName
variável, você atribuiria a função de cluster 'netapp-dataops-snapshots' à conta de serviço 'default' no namespace 'jupyterhub', conforme mostrado no exemplo a seguir.
$ 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
Crie instantâneos de volume no Jupyter Notebook
Agora, os usuários do JupyterHub podem usar o NetApp DataOps Toolkit para criar snapshots de volume diretamente de um Jupyter Notebook, conforme mostrado no exemplo a seguir.