参考链接https://blog.csdn.net/qq_37200100/article/details/125462917
步骤1:创建configmap
方法1:命令行设定configmap
kubectl create configmap config1 --from-literal=REDIS_LOCATION=redis://default:redis654321@10.41.241.169:30394 --from-literal=DJANGO_DEBUG=False
注意DJANGO_DEBUG如果是bool值是不能生效的。
方法2:yaml档来设定configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: config1
data:
DJANGO_DEBUG: 'False'
REDIS_LOCATION: REDIS_LOCATION=redis://default:redis654321@10.41.241.169:30394
方法3:racher直接keyin configmap
方法4:racher上传configmap文件
文件
REDIS_LOCATION=redis://default:redis654321@10.41.241.169:30394
DJANGO_DEBUG=False
步骤2:查看或修改configmap
也可以通过命令行kubectl get configmap -o yaml来查看。
- apiVersion: v1
data:
DJANGO_DEBUG: "False"
REDIS_LOCATION: redis://default:redis654321@106.52.14.84:6379
kind: ConfigMap
metadata:
creationTimestamp: "2022-09-15T13:15:14Z"
name: config1
namespace: default
resourceVersion: "29647"
uid: f295bbfa-aa83-401b-8b4b-6be2eea3ed21
步骤3:使用configmap来配置
可以使用环境变量
env:
- name: REDIS_LOCATION
valueFrom:
configMapKeyRef:
name: config1
key: REDIS_LOCATION
- name: DJANGO_DEBUG
valueFrom:
configMapKeyRef:
name: config1
key: DJANGO_DEBUG
完整的web的yaml档案
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.24.0 (7c629530)
creationTimestamp: null
labels:
io.kompose.service: web
name: web
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: web
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.24.0 (7c629530)
creationTimestamp: null
labels:
io.kompose.service: web
spec:
containers:
- command:
- /bin/sh
- /code/package/start.sh
image: seasonzhang/gaga_meeting:0.9.15
imagePullPolicy: IfNotPresent
name: gaga-meeting-web
ports:
- containerPort: 8000
resources:
requests:
cpu: 500m
memory: 500Mi
limits:
cpu: 500m
memory: 500Mi
env:
- name: REDIS_LOCATION
valueFrom:
configMapKeyRef:
name: config1
key: REDIS_LOCATION
- name: DJANGO_DEBUG
valueFrom:
configMapKeyRef:
name: config1
key: DJANGO_DEBUG
- command:
- /bin/sh
- /code/package/start-beat.sh
image: seasonzhang/gaga_meeting:0.9.15
name: gaga-meeting-beat
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 200m
memory: 200Mi
- command:
- /bin/sh
- /code/package/start-celery.sh
image: seasonzhang/gaga_meeting:0.9.15
name: gaga-meeting-celery
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 200m
memory: 200Mi
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.24.0 (7c629530)
creationTimestamp: null
labels:
io.kompose.service: web
name: web
spec:
type: LoadBalancer
ports:
- name: "8000"
port: 8000
targetPort: 8000
rotocol: TCP
selector:
io.kompose.service: web
externalIPs: #集群内互访
- 10.0.8.10
- 10.43.207.93
status:
loadBalancer: {}
步骤4:Django web应用的settings中需要预留环境变量栏位
REDIS_LOCATION = os.environ.get('REDIS_LOCATION',"redis://default:redis654321@106.52.14.84:6379")
DJANGO_DEBUG = os.environ.get('DJANGO_DEBUG', True)