Requirement:
Lots of applications would have http service ie apache or nginx as the frontend. We often deploy pods of apache or nginx for it. Take apache httpd as example, we often need to update httpd.conf for rewrite, redirect.....etc. It is ok to build a new docker image to achieve that ,but not efficient . ConfigMap of K8S can store text and binary files in K8S, can be mounted in the pod. So we can leverage that to update httpd.conf without rebuilding the docker images. We can use same concept for all other config files of different apps ie nginx, ords...etcSolution:
- Prepare for Dockerfile and your customized httpd.conf file . Example can be found on github repo
- Once new docker image is built , we need to store httpd.conf into configmap via kubectl
kubectl create configmap httpdconfig --from-file=httpd.conf
- Prepare for deployment yaml to mount configmap in the pod. Partial yaml file is like
volumes:
- name: httpd-config
configMap:
name: httpdconfig
containers:
- name: httpd
image: httpd-configmap:v3
imagePullPolicy: IfNotPresent
volumeMounts:
- name: httpd-config
mountPath: /mnt/k8s
ports:
- containerPort: 80
- Kubectl command of updating httpd.conf after we have new version of httpd.conf
kubectl create configmap httpdconfig --from-file=httpd.conf -o yaml --dry-run | kubectl replace -f -
- Bounce the http pod to let new pod read the new configmap
- It is the same concept and process for any other apps which have config files ie ORDS, Nginx.....etc
- Configmap supports binary file as well ie wallets see other note
1 comment:
Excellent blog for the people who needs information about this course.
IELTS Coaching in Chennai
Best IELTS Coaching in Chennai
Best Spoken English Class in Chennai
french classes
pearson vue
German Classes in Chennai
French Classes in anna nagar
Spoken English Class in Anna Nagar
Post a Comment