Creating the Split API Pods
Learn to create API Pods using ReplicaSet and establish communication by creating a Service.
We'll cover the following...
Looking into the definition
Let’s see the definition of the backend API go-demo-2-api-rs.yml.
apiVersion: apps/v1kind: ReplicaSetmetadata:name: go-demo-2-apispec:replicas: 3selector:matchLabels:type: apiservice: go-demo-2template:metadata:labels:type: apiservice: go-demo-2language: gospec:containers:- name: apiimage: vfarcic/go-demo-2env:- name: DBvalue: go-demo-2-dbreadinessProbe:httpGet:path: /demo/helloport: 8080periodSeconds: 1livenessProbe:httpGet:path: /demo/helloport: 8080
Just as with the database, this ReplicaSet should be familiar since it’s very similar to the one we used before. We’ll comment only on the differences.
-
Line 6: The number of
replicasis set to3. That solves one of the main problems we had with the previous ReplicaSets that defined Pods with both containers. Now the number of replicas can differ, and we have one Pod for the database, and three for the backend API. -
Line 14: In the
labelssection,typelabel is set toapiso that both the ReplicaSet and the (soon to come) Service can distinguish the Pods from those created for the database. -
Lines 22–23: We have the environment variable
DBset togo-demo-2-db. The code behind thevfarcic/go-demo-2image is written in a way that the connection to the database is established by reading that variable. In this case, we can say that it will try to connect to the ...