Files
charts/bitnami/tensorflow-resnet

TensorFlow Serving ResNet

TensorFlow Serving is an open-source software library for serving machine learning models. This chart will specifically serve the ResNet model with already trained data.

TL;DR;

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install my-release bitnami/tensorflow-resnet

Introduction

This chart bootstraps a TensorFlow Serving ResNet deployment on a Kubernetes cluster using the Helm package manager.

Bitnami charts can be used with Kubeapps for deployment and management of Helm Charts in clusters. This Helm chart has been tested on top of Bitnami Kubernetes Production Runtime (BKPR). Deploy BKPR to get automated TLS certificates, logging and monitoring for your applications.

Prerequisites

  • Kubernetes 1.12+
  • Helm 2.12+ or Helm 3.0-beta3+

Get this chart

Download the latest release of the chart from the releases page.

Alternatively, clone the repo if you wish to use the development snapshot:

$ git clone https://github.com/bitnami/charts.git

Installing the Chart

To install the chart with the release name my-release:

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install my-release bitnami/tensorflow-resnet

These commands deploy Tensorflow Serving ResNet model on the Kubernetes cluster in the default configuration. The Parameters section lists the parameters that can be configured during installation.

Tip

: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the my-release deployment:

$ helm delete my-release

You can check your releases with:

$ helm list

The command removes all the Kubernetes components associated with the chart and deletes the release.

Parameters

The following tables lists the configurable parameters of the TensorFlow ResNet chart and their default values.

Parameter Description Default
global.imageRegistry Global Docker image registry nil
global.imagePullSecrets Global Docker registry secret names as an array [] (does not add image pull secrets to deployed pods)
server.image.registry TensorFlow Serving image registry docker.io
server.image.repository TensorFlow Serving Image name bitnami/tensorflow-serving
server.image.tag TensorFlow Serving Image tag {TAG_NAME}
server.image.pullPolicy TensorFlow Serving image pull policy IfNotPresent
server.image.pullSecrets Specify docker-registry secret names as an array [] (does not add image pull secrets to deployed pods)
client.image.registry TensorFlow ResNet image registry docker.io
client.image.repository TensorFlow ResNet Image name bitnami/tensorflow-resnet
client.image.tag TensorFlow ResNet Image tag {TAG_NAME}
client.image.pullPolicy TensorFlow ResNet image pull policy IfNotPresent
client.image.pullSecrets Specify docker-registry secret names as an array [] (does not add image pull secrets to deployed pods)
nameOverride String to partially override tensorflow-resnet.fullname template with a string (will prepend the release name) nil
fullnameOverride String to fully override tensorflow-resnet.fullname template with a string nil
containerPorts.server Tensorflow server port 8500
containerPorts.restApi TensorFlow Serving Rest API Port 8501
replicaCount Desired number of pods 1
podAnnotations Pod annotations {}
affinity Map of node/pod affinities {} (The value is evaluated as a template)
nodeSelector Node labels for pod assignment {} (The value is evaluated as a template)
tolerations Tolerations for pod assignment [] (The value is evaluated as a template)
resources Resource requests/limit {}
livenessProbe.enabled Would you like a livessProbed to be enabled true
livenessProbe.initialDelaySeconds Delay before liveness probe is initiated 30
livenessProbe.periodSeconds How often to perform the probe 5
livenessProbe.timeoutSeconds When the probe times out 5
livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded 6
livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed 1
readinessProbe.enabled Would you like a readinessProbe to be enabled true
readinessProbe.initialDelaySeconds Delay before liveness probe is initiated 15
readinessProbe.periodSeconds How often to perform the probe 5
readinessProbe.timeoutSeconds When the probe times out 5
readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded 6
readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed 1
service.type Kubernetes Service type LoadBalancer
service.port TensorFlow Serving server port 8500
service.restApiPort TensorFlow Serving Rest API port 8501
service.nodePorts.server Kubernetes server node port ""
service.nodePorts.restApi Kubernetes Rest API node port ""
service.loadBalancerIP LoadBalancer service IP address ""
service.annotations Service annotations {}
metrics.enabled Enable Prometheus exporter to expose Tensorflow server metrics false
metrics.podAnnotations Additional annotations for Metrics exporter pod {prometheus.io/scrape: "true", prometheus.io/path: "/monitoring/prometheus/metrics", prometheus.io/port: "8501"}

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

$ helm install my-release bitnami/tensorflow-resnet --set imagePullPolicy=Always

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

$ helm install my-release -f values.yaml bitnami/tensorflow-resnet

Tip

: You can use the default values.yaml

Configuration and installation details

Rolling VS Immutable tags

It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image.

Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist.

Upgrading

2.0.0

Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments. Use the workaround below to upgrade from versions previous to 2.0.0. The following example assumes that the release name is tensorflow-resnet:

$ kubectl delete deployment  tensorflow-resnet --cascade=false
$ helm upgrade tensorflow-resnet bitnami/tensorflow-resnet
$ kubectl delete rs "$(kubectl get rs -l app=tensorflow-resnet -o jsonpath='{.items[0].metadata.name}')"