apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: consoleservice1
spec:
selector:
matchLabels:
app: consoleservice1
replicas: 3 # tells deployment to run 3 pods matching the template
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 5
template: # create pods using pod definition in this template
metadata:
labels:
app: consoleservice1
spec:
containers:
- name: consoleservice
image: chintamani/insightvu:ms-console1
readinessProbe:
httpGet:
path: /
port: 8385
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1
ports:
- containerPort: 8384
imagePullPolicy: Always
volumeMounts:
- mountPath: /deploy/config
name: config
volumes:
- name: config
configMap:
name: console-config
我使用以下命令创建configmap:
kubectl create configmap console-config --from-file=deploy/config
在configmap中进行更改时,每次我必须重新启动Pod时,它不会自动反映。我如何自动做到?
答案 0 :(得分:1)
谢谢你们。能够修复它,如果内部进行了任何更改,我正在使用重新加载程序来反映Pod kubectl apply -f https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml
然后在您的deployment.yml文件中添加注释。
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: consoleservice1
annotations:
configmap.reloader.stakater.com/reload: "console-config"
它将逐渐重新启动您的广告连播。
答案 1 :(得分:0)
在Kubernetes中Pod和configmap完全分开,如果configmap发生更改,pod不会自动重新启动。
实现这一目标的方法很少。
使用wave,它是Kubernetes控制器,用于查找特定注释并在configmap http://artsites.ucsc.edu/ems/music/equipment/computers/bits_bytes/bits_bytes.html
使用https://github.com/pusher/wave,重新加载程序可以监视configmap的更改,并可以更新pod来选择新的配置。
kind: Deployment
metadata:
annotations:
reloader.stakater.com/auto: "true"
spec:
template:
metadata:
您可以在部署中以及在CI / CD中或在部署应用程序时添加自定义configHash批注,使用yq
将configmap的哈希值替换为该值,以便在configmap中进行任何更改的情况下使用。 Kubernetes将检测部署注释中的更改,并使用新配置重新加载Pod。
yq w --inplace deployment.yaml spec.template.metadata.annotations.configHash $(kubectl get cm/configmap -oyaml | sha256sum)
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: application
spec:
selector:
matchLabels:
app: consoleservice1
replicas: 3
template:
metadata:
labels:
app: consoleservice1
annotations:
configHash: ""