- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Kubernetes 中将一个 Deployment 转换为 StatefulSet。下面是我的部署描述。
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "4"
creationTimestamp: "2020-04-02T07:43:32Z"
generation: 6
labels:
run: jbpm-server-full
name: jbpm-server-full
namespace: dice-jbpm
resourceVersion: "2689379"
selfLink: /apis/apps/v1/namespaces/dice-jbpm/deployments/jbpm-server-full
uid: 8aff5d46-533a-4178-b9b5-5015ff1cdd5d
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
run: jbpm-server-full
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
run: jbpm-server-full
spec:
containers:
- image: jboss/jbpm-server-full:latest
imagePullPolicy: Always
name: jbpm-server-full
ports:
- containerPort: 8080
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /k8sdata/jbpmdata
name: jbpm-pv-storage
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: jbpm-pv-storage
persistentVolumeClaim:
claimName: jbpm-pv-claim
status:
availableReplicas: 1
conditions:
- lastTransitionTime: "2020-04-02T07:43:32Z"
lastUpdateTime: "2020-04-09T12:35:19Z"
message: ReplicaSet "jbpm-server-full-b48989789" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
- lastTransitionTime: "2020-04-09T12:37:05Z"
lastUpdateTime: "2020-04-09T12:37:05Z"
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
observedGeneration: 6
readyReplicas: 1
replicas: 1
updatedReplicas: 1
错误:
deployments.apps "jbpm-server-full" was not valid:
* : Invalid value: "The edited file failed validation":
ValidationError(StatefulSet.spec): unknown field "progressDeadlineSeconds" in io.k8s.api.apps.v1.StatefulSetSpec,
ValidationError(StatefulSet.spec):
unknown field "strategy" in io.k8s.api.apps.v1.StatefulSetSpec,
ValidationError(StatefulSet.spec): missing required field "serviceName" in io.k8s.api.apps.v1.StatefulSetSpec,
ValidationError(StatefulSet.status): unknown field "availableReplicas" in io.k8s.api.apps.v1.StatefulSetStatus,
ValidationError(StatefulSet.status.conditions[0]): unknown field "lastUpdateTime" in io.k8s.api.apps.v1.StatefulSetCondition,
ValidationError(StatefulSet.status.conditions[1]): unknown field "lastUpdateTime" in io.k8s.api.apps.v1.StatefulSetCondition]
我已将持久卷附加到此部署,但每当重新启动 pod 时我都会丢失数据。现在我正在尝试将这个现有的部署类型转换为 statefulSet。我跟踪了几个链接,但徒劳无功导致错误。
你能帮帮我吗?
最佳答案
你有几个字段不能在 statefulset 中使用。
unknown field "strategy" in io.k8s.api.apps.v1.StatefulSetSpec
unknown field "progressDeadlineSeconds" in io.k8s.api.apps.v1.StatefulSetSpec
据我所知,它是部署字段,它在 statefulset 中不可用。
ValidationError(StatefulSet.status): unknown field "availableReplicas" in io.k8s.api.apps.v1.StatefulSetStatus,
ValidationError(StatefulSet.status.conditions[0]): unknown field "lastUpdateTime" in io.k8s.api.apps.v1.StatefulSetCondition,
ValidationError(StatefulSet.status.conditions[1): unknown field "lastUpdateTime" in io.k8s.api.apps.v1.StatefulSetCondition]
您应该删除 status 中的所有内容 field 。它是在部署后创建的。
ValidationError(StatefulSet.spec): missing required field "serviceName" in io.k8s.api.apps.v1.StatefulSetSpec
您必须使用您的服务名称添加 spec.serviceName。
应该是这样的
apiVersion: apps/v1
kind: StatefulSet
metadata:
annotations:
deployment.kubernetes.io/revision: "4"
labels:
run: jbpm-server-full
name: jbpm-server-full
spec:
replicas: 1
serviceName: jbpm-server-servicename
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
run: jbpm-server-full
template:
metadata:
labels:
run: jbpm-server-full
spec:
terminationGracePeriodSeconds: 30
containers:
- name: jbpm-server-full
image: jboss/jbpm-server-full:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
volumeMounts:
- name: jbpm-pv-storage
mountPath: /k8sdata/jbpmdata
volumeClaimTemplates:
- metadata:
name: jbpm-pv-storage
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "my-storage-class"
resources:
requests:
storage: 1Gi
在使用有状态集时可能会有所帮助的链接。
关于kubernetes - 在 Kubernetes 中将 Deployment 转换为 StatefulSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61142132/
https://codelabs.developers.google.com/codelabs/cloud-mongodb-statefulset/index.html?index=..%2F..in
https://codelabs.developers.google.com/codelabs/cloud-mongodb-statefulset/index.html?index=..%2F..in
我对 Kubernetes 进行了大量的挖掘,我很喜欢我所看到的东西!我一直无法清楚地了解的一件事是 Deployment 和 StatefulSet 资源之间的确切区别是什么,以及您将在哪些场景中使
上下文:我一直在学习 Kubernetes 并试图获得一些实践经验。我一直在使用 AKS 来抽象处理控制平面的复杂性(并且因为我有一个免费的学生 azure 帐户)。我正在部署一个连接到 MongoD
背景 我的应用程序使用分片 mongodb 和 elasticsearch statefulsets 在 kubernetes 集群中运行。我在我的应用程序中为部署组件设置了水平 pod 自动缩放器,
我的开发环境和 CI 上的 StatefulSet 更新有一个简单的问题。 我想在不先使用 Kubectl delete 的情况下立即替换所有 StatefulSet 副本。是否可以将 list 更改
我有一个启动MySQL数据库的StatefulSet。目前唯一的缺点是,对于每个副本,我需要创建一个“持久卷”和“持久卷声明”,并选择与标签和podindex相匹配的选择。 这意味着如果没有手动交互,
我有一个kubernetes集群,并且有一个带有mongodb持久卷集的NFS的简单部署。它工作正常,但是由于数据库等资源都是stateful,因此我想到将Statefulset用作mongodb,但
在Kubernetes中,可以在Statefulset中添加hostPath存储。如果是这样,有人可以帮我举例吗? 最佳答案 是的,但绝对是出于测试目的。 首先,您需要创建尽可能多的持久卷 kind:
我目前正在尝试创建一组 X pod,每个都有一个个人持久卷。为此,我创建了一个 StateFulSet带有 X 个副本和一个 PersistentVolumeClaimTemplate这部分正在工作。
我正在尝试运行一个 zookeeper 集合体,但在将唯一 ID 作为环境变量 ZOO_MY_ID 传递时遇到问题,这是官方 zookeeper 图片所要求的 here . 我已尝试阅读此内容并发现了
我正在部署两个作为无外设服务运行的相同图像的 statefulset pod。我希望将单独的 env 变量传递给在 statefulset pod 中运行相同图像的容器。谁能告诉我如何实现这一目标?
我正在使用 Google Kubernetes Engine 并且想要我的 StatefulSet使用我之前创建的磁盘my-app-disk而不是为集合中的每个副本动态创建新的永久磁盘。我的配置如下:
Kubernetes StatefulSets创建具有稳定网络 ID 的内部 DNS 条目。文档在此处对此进行了描述: Each Pod in a StatefulSet derives its ho
事件探针应该触发失败容器的重新启动。他们是否尊重默认的状态集deployment and scaling guarantees 。例如。如果同一状态集中的多个 pod 的 active 探测同时失败,
我们有一个状态集,我们希望有最短的停机时间(就像我想的任何其他状态集一样),但是由于就绪探测失败阈值为 5(在“无故终止”状态)。因此,为了更快地终止,我将故障阈值降低到 1,它现在终止得更快,但是现
如果您在 StatefulSet 规范中修补镜像名称,Kubernetes StatefulSet (v1.8) 将自动将其管理的 pod 滚动到新镜像——毕竟,编排这种更新是其主要工作之一。但是,如
我已经在链接https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/之后部署了mysq
我有一个有 2 个副本的 StatefulSet。我想创建一个端点以便能够访问此副本中的任何一个,将主机名 id 传递给它,并且如果我将其扩展到更多副本,则需要可以访问新的 pod。 我可以这样做,创
目前,我们将其中一个有状态集扩展为具有11个副本。我们当前的更新策略是 updateStrategy: type: RollingUpdate 如果我们从头开始部署有状态集,Kubernetes就
我是一名优秀的程序员,十分优秀!