禁止java更新_禁止:禁止对'replicas','template'和'updateStrategy'以外的字段的statefulset规范进行更新...

我使用io.fabric8.kubernetes-client,版本3.1.8来执行kubernetes资源的RollingUpdate . 它适用于部署 . 但我遇到StatefulSet的例外 . 但是如果我对StatefulSet使用'kubectl apply -f *** . yaml'也没关系 .

RollingUpdate部署代码:

public void createOrReplaceResourceByYaml(String namespace, KubernetesResource resource) {

KubernetesClient client = k8sRestClient.newKubeClient();

Deployment deployment = (Deployment) resource;

logger.info(String.format("Create/Replace Deployment [%s] in namespace [%s].", ((Deployment) resource).getMetadata().getName(), namespace));

NonNamespaceOperation> deployments = client.extensions().deployments().inNamespace(namespace);

Deployment result = deployments.createOrReplace(deployment);

logger.info(String.format("Created/Replaced Deployment [%s].", result.getMetadata().getName()));

}

代码到RollingUpdate StatefulSet

public void createOrReplaceResourceByYaml(String namespace, KubernetesResource resource) {

KubernetesClient client = k8sRestClient.newKubeClient();

StatefulSet statefulSet = (StatefulSet) resource;

logger.info(String.format("Create/Replace StatefulSet [%s] in namespace [%s].", statefulSet.getMetadata().getName(), namespace));

NonNamespaceOperation> statefulSets = client.apps().statefulSets().inNamespace(namespace);

StatefulSet result = statefulSets.createOrReplace(statefulSet);

logger.info(String.format("Created/Replaced StatefulSet [%s].", result.getMetadata().getName()));

}

执行StatefulSet的RollingUpdate时出现异常

执行失败:PUT at:https://kubernetes.default.svc/apis/apps/v1beta1/namespaces/itsma1/statefulsets/pro-rabbitmq . 消息:StatefulSet.apps“pro-rabbitmq”无效:spec:Forbidden:禁止对'replicas','template'和'updateStrategy'以外的字段更新statefulset规范 . 收到状态:状态(apiVersion = v1, code = 422,details = StatusDetails(cause = [StatusCause(field = spec,message = Forbidden:禁止对'replicas','template'和'updateStrategy'以外的字段更新statefulset规范 . ,reason = FieldValueForbidden,additionalProperties = {})],group = apps,kind = StatefulSet,name = pro-rabbitmq,retryAfterSeconds = null,uid = null,additionalProperties = {}),kind = Status,message = StatefulSet.apps“pro-rabbitmq”无效:spec:Forbidden:禁止对'replicas','template'和'updateStrategy'以外的字段更新statefulset规范 . ,metadata = ListMeta(resourceVersion = null,selfLink = null,additionalProperties = {}),reason = Invalid ,status = Failure,additionalProperties = {}) .

I am curious why the error happened and how to fix it.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值