Introduction
this is part 53 from the journey it's a long journey(360 day) so go please check previous parts , and if you need to walk in the journey with me please make sure to follow because I may post more than once in 1 Day but surely I will post daily at least one 😍.
And I will cover lot of tools as we move on.
Environment Variables
if we remember the example of voting app we have something in the yml file > spec called env , it's our environment variables it's same as docker where you can pass variables between container in case of docker and Pods in case of Kubernetes.
# db-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: app: db name: db spec: replicas: 1 selector: matchLabels: app: db template: metadata: labels: app: db spec: containers: - image: postgres:9.4 name: postgres env: - name: POSTGRES_USER value: postgres - name: POSTGRES_PASSWORD value: postgres ports: - containerPort: 5432 name: postgres volumeMounts: - mountPath: /var/lib/postgresql/data name: db-data volumes: - name: db-data emptyDir: {}
this is the old file from voting app , if we just focus on this part
env: - name: POSTGRES_USER value: postgres - name: POSTGRES_PASSWORD value: postgres
we can see that we are passing the username and the password as variables so we didn't hard coded inside our code.
but wait we have now 2 variables one in docker and one in Kubernetes with same env names ?
Kubernetes will override your environment variables in the docker file.
example let's say that we specify an environment variable inside of docker
ENV DBURL mongodb://localhost:27017/OrdersDB
and inside our Kubernetes config we override it
env: - name: DBURL value: mongodb://mongo:80/OdersDB
mongo is the name of our service in this case and 80 is the port of the service.
we can control our environment variables , in big projects we have lot of environment variables so it's very hard to manage them in this way , also maybe some of them are secretes like tokens.
Top comments (0)