We've deployed one service, and we've deployed multiple instances of it. Time to deploy a second service!
This service doesn't serve a webpage! It's a JSON API. It's the backend for our chat application. By deploying the API and configuring the front-end to talk to it, we'll have a functional chat application!
Let's write a deployment from scratch.
Feel free to reference the k8s docs here as you go for examples of the proper structure.
name of the container to synergychat-api.image to bootdotdev/synergychat-api:latest. This tells k8s where to download the Docker image from.I don't want to give you the YAML because I want you to type it out, but here's the equivalent JSON:
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "synergychat-api",
"labels": {
"app": "synergychat-api"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app": "synergychat-api"
}
},
"template": {
"metadata": {
"labels": {
"app": "synergychat-api"
}
},
"spec": {
"containers": [
{
"name": "synergychat-api",
"image": "bootdotdev/synergychat-api:latest"
}
]
}
}
}
}
kubectl apply -f api-deployment.yaml
Next, take a look at all the pods you have running now. You should see pods for the web service and a pod for the api service.
However, you might notice that the api pod isn't in a "ready" state. In fact, it should be stuck in a "CrashLoopBackOff" status. Oh no! We've created a thrashing pod!
Run:
kubectl proxy
Run and submit the CLI tests.