From 39d7cb3e57819560dd98ea744517a033871f1632 Mon Sep 17 00:00:00 2001 From: djkonro Date: Fri, 9 Jun 2017 14:24:48 +0100 Subject: [PATCH] Add notebook on how to create a Service --- examples/notebooks/create_service.ipynb | 230 ++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 examples/notebooks/create_service.ipynb diff --git a/examples/notebooks/create_service.ipynb b/examples/notebooks/create_service.ipynb new file mode 100644 index 0000000000..1183a2a770 --- /dev/null +++ b/examples/notebooks/create_service.ipynb @@ -0,0 +1,230 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "How to create a Service\n", + "=============\n", + "\n", + "In this notebook, we show you how to create a [Service](https://kubernetes.io/docs/concepts/services-networking/service/). \n", + "A service is a key Kubernetes API resource. It defines a networking abstraction to route traffic to a particular set of Pods using a label selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "from kubernetes import client, config" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "### Load config from default location" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "config.load_kube_config()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "### Create API endpoint instance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "api_instance = client.CoreV1Api()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "### Create API resource instances" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "service = client.V1Service()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "### Fill required Service fields (apiVersion, kind, and metadata)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "service.api_version = \"v1\"\n", + "service.kind = \"Service\"\n", + "service.metadata = client.V1ObjectMeta(name=\"my-service\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "### Provide Service .spec description\n", + "Set Service object named **my-service** to target TCP port **9376** on any Pod with the **'app'='MyApp'** label. The label selection allows Kubernetes to determine which Pod should receive traffic when the service is used." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "spec = client.V1ServiceSpec()\n", + "spec.selector = {\"app\": \"MyApp\"}\n", + "spec.ports = [client.V1ServicePort(protocol=\"TCP\", port=80, target_port=9376)]\n", + "service.spec = spec" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "### Create Service" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "api_instance.create_namespaced_service(namespace=\"default\", body=service)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "### Delete Service" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "api_instance.delete_namespaced_service(name=\"my-service\", namespace=\"default\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}