O Kubeflow Pipeline é uma plataforma para workflows de Machine Learning baseada em contêineres. Os pipelines são desenvolvidos com a linguagem Python e traduzidos em objetos dentro do Kubernetes. Revise os conceitos do Pipeline para melhor entendimento.
Vamos fazer um exemplo de ponta a ponta agora com o Kubeflow Pipelines.
11.3.1 Configuração do Notebook
Antes de iniciar o exemplo, precisamos criar uma configuraçãoPodDefault para que as execuções do SDK do KFP tenham a permissão necessária:
apiVersion:kubeflow.org/v1alpha1kind:PodDefaultmetadata:name:access-ml-pipelinenamespace:"kubeflow-user-example-com"spec:desc:Allow access to Kubeflow Pipelinesselector:matchLabels:access-ml-pipeline:"true"volumes:-name:volume-kf-pipeline-tokenprojected:sources:-serviceAccountToken:path:tokenexpirationSeconds:7200audience:pipelines.kubeflow.orgvolumeMounts:-mountPath:/var/run/secrets/kubeflow/pipelinesname:volume-kf-pipeline-tokenreadOnly:trueenv:-name:KF_PIPELINES_SA_TOKEN_PATHvalue:/var/run/secrets/kubeflow/pipelines/token
Crie um arquivo YAML como o do exemplo e crie os recursos com o kubectl. Agora podemos acessar o Notebook do Kubeflow e usar a configuração para acessar o Kubeflow Pipeline.
Através da WebUI do Kubeflow, vamos criar um Notebook Jupyter e executar o primeiro pipeline.
Vamos usar o namespace kubeflow-user-example-com (criado na configuração do Kubeflow) e instalar as bibliotecas Python para manipular o pipeline via Notebook. Utilize a documentação oficial para criar o Notebook Jupyter.
No Notebook Jupyter, execute a seguinte linha para criar uma variável a ser utilizada no namespace correto:
11.3.2 Primeiros Pipelines
Agora vamos criar o primeiro pipeline:
Verifique na WebUI do Kubeflow a execução do pipeline. Repare que utilizamos as funções do SDK para compilar e criar o pipeline.
Agora vamos criar um exemplo de steps (passos) sequenciais. Neste exemplo, ele baixa um arquivo TXT do Cloud Storage e, em seguida, faz o print do resultado. Para que os steps sejam sequenciais, é necessário que a saída de um step seja a entrada do seguinte, ou podemos declarar a dependência com a função after:
Após a execução deste pipeline, veja a execução na WebUI do Kubeflow.