gpt4 book ai didi

kubernetes - 将 Kubernetes 卷限制为单个 pod

转载 作者:行者123 更新时间:2023-12-02 11:37:20 37 4
gpt4 key购买 nike

我有一个附加卷的 Scylla 数据库的 Kubernetes 部署。它有一个副本, list 类似于以下内容:

apiVersion: apps/v1
kind: Deployment
metadata:
name: scylla
labels:
app: myapp
role: scylla
spec:
replicas: 1
selector:
matchLabels:
app: myapp
role: scylla
template:
metadata:
labels:
app: myapp
role: scylla
spec:
containers:
- name: scylla
image: scylladb/scylla
imagePullPolicy: Always
volumeMounts:
- mountPath: /var/lib/scylla/data
name: scylladb
volumes:
- name: scylladb
hostPath:
path: /var/myapp/scylla/
type: DirectoryOrCreate

当我执行更新时,它将终止旧 pod 并在旧 pod 停止之前启动一个新 pod。这会导致新 pod 上的数据库失败,因为它无法访问存储在卷中的数据库文件(因为旧 pod 仍在使用它)。如何使一次只有一个 pod 使用该卷? (短暂的停机时间是可以的)

最佳答案

您可以使用重建策略在部署中做到这一点。这将在创建新 Pod 之前杀死所有现有 Pod。引用:Kubernetes doc .因此,他们将因此而停机。

apiVersion: apps/v1
kind: Deployment
metadata:
name: scylla
labels:
app: myapp
role: scylla
spec:
replicas: 1
selector:
matchLabels:
app: myapp
role: scylla
strategy:
type: Recreate
template:
metadata:
labels:
app: myapp
role: scylla
spec:
containers:
- name: scylla
image: scylladb/scylla
imagePullPolicy: Always
volumeMounts:
- mountPath: /var/lib/scylla/data
name: scylladb
volumes:
- name: scylladb
hostPath:
path: /var/myapp/scylla/
type: DirectoryOrCreate

关于kubernetes - 将 Kubernetes 卷限制为单个 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54877973/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com