Implementation:Tensorflow Serving Resnet K8s Manifest
Appearance
| Knowledge Sources | |
|---|---|
| Domains | Kubernetes, Deployment |
| Last Updated | 2026-02-13 17:00 GMT |
Overview
Concrete Kubernetes manifest defining a Deployment and LoadBalancer Service for serving a ResNet model on GKE.
Description
resnet_k8s.yaml defines two Kubernetes resources:
- Deployment (resnet-deployment): 3 replicas of the gcr.io/tensorflow-serving/resnet image, each exposing port 8500 (gRPC). Pods are labeled app: resnet-server for service selection.
- Service (resnet-service): LoadBalancer service routing external port 8500 to container port 8500, selecting pods with app: resnet-server label.
This is a pattern document — users should customize the image, replica count, and port configuration for their models.
Usage
Apply with kubectl create -f after pushing the Docker image and creating the cluster. Modify the image URL and model name for your specific model.
Code Reference
Source Location
- Repository: tensorflow/serving
- File: tensorflow_serving/example/resnet_k8s.yaml (L1-49)
Signature
apiVersion: apps/v1
kind: Deployment
metadata:
name: resnet-deployment
spec:
selector:
matchLabels:
app: resnet-server
replicas: 3
template:
metadata:
labels:
app: resnet-server
spec:
containers:
- name: resnet-container
image: gcr.io/tensorflow-serving/resnet
ports:
- containerPort: 8500
---
apiVersion: v1
kind: Service
metadata:
labels:
run: resnet-service
name: resnet-service
spec:
ports:
- port: 8500
targetPort: 8500
selector:
app: resnet-server
type: LoadBalancer
Import
kubectl create -f tensorflow_serving/example/resnet_k8s.yaml
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| YAML manifest | file | Yes | Kubernetes resource definitions |
| Docker image in registry | URL | Yes | Container image accessible from cluster |
| Running cluster | cluster | Yes | Kubernetes cluster with kubectl configured |
Outputs
| Name | Type | Description |
|---|---|---|
| Deployment | Kubernetes resource | 3 pods running tensorflow_model_server |
| Service | Kubernetes resource | LoadBalancer with external IP on port 8500 |
Usage Examples
Deploy ResNet
# Apply manifest
kubectl create -f tensorflow_serving/example/resnet_k8s.yaml
# Check deployment status
kubectl get deployments
kubectl get pods
# Get external IP
kubectl get services resnet-service
# Wait for EXTERNAL-IP to be assigned
# Scale up
kubectl scale deployment resnet-deployment --replicas=5
# Update image (rolling update)
kubectl set image deployment/resnet-deployment \
resnet-container=gcr.io/my-project/resnet_serving:v2
Related Pages
Implements Principle
Requires Environment
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment