当前位置: 首页 > 知识库问答 >
问题:

如何在JAVA中更新/替换Kubernetes的部署

郜俊健
2023-03-14

2)

client().Extensions().Deployments().InNamespace(namespaceName).WithName(deploymentName).CreateOrReplace(deployment);

3)

client().Extensions().Deployments().InNamespace(namespaceName).WithName(deploymentName).Edit().EditSpec().EditTemplate().EditSped().AddToVolumes(volume).EndSpec().EndTemplate().EndTemplate().EndSpec().Done();

而且起作用了。

即只添加起作用,而删除不起作用....

kind: Deployment
metadata:
  name: d2
  namespace: n1
  spec:
    replicas: 1
    template:
      metadata:
        creationTimestamp: null
      spec:
        containers:
        - image: x.x.x.x
          imagePullPolicy: IfNotPresent
          name: c2
          volumeMounts:
          - mountPath: /var
            name: configmapvolume1
          - mountPath: /var/a
            name: configmapvolume2
        volumes:
        - configMap:
            defaultMode: 420
            items:
            - key: a.yml
              path: a.yml
            name: a
          name: configmapvolume1
        - configMap:
            defaultMode: 420
            items:
            - key: c.yml
              path: c.yml
            name: a
          name: configmapvolume2
kind: Deployment
metadata:
  name: d2
  namespace: n1
  spec:
    replicas: 1
    template:
      metadata:
        creationTimestamp: null
      spec:
        containers:
        - image: x.x.x.x
          imagePullPolicy: IfNotPresent
          name: c2
          volumeMounts:
          - mountPath: /var/b
            name: configmapvolume1
        volumes:
        - configMap:
            defaultMode: 420
            items:
            - key: b.yml
              path: b.yml
            name: b
          name: configmapvolume1

共有1个答案

丁星火
2023-03-14

如果在第一次创建部署时添加--save-config,以后就可以调整它的规范:

kubectl create -f deploymentv1.yaml --save-config

要用调整后的yaml文件更新它,请运行以下命令:

kubectl apply -f deploymentv2.yaml

这样,将根据调整后的规范创建新的pod。那旧的吊舱就会被终止。

 类似资料:
  • 问题内容: 我试图将字符串分成数组并替换为,但无法做到,我也尝试了String.replaceAll这样的东西。 我想提供一个通往JNI的路径,并且它只能以这种方式读取。 问题答案: 在这种情况下不要使用- 这是用正则表达式指定的,这意味着您需要更多的转义。这应该很好: 请注意,由于Java字符串文字中的原因,反斜杠加倍-因此此处涉及的 实际 字符串是“单反斜杠”和“双反斜杠”-而不是双倍和四倍。

  • 问题内容: 我确实使用单个pod进行了部署,并使用了我的自定义docker映像,例如: 在开发过程中,我想推送新的最新版本并更新Deployment。如果没有显式定义标签/版本并为每个版本增加它,就找不到方法。 问题答案: 您可以为Pod配置宽限期(例如30秒或更长时间,具体取决于容器启动时间和图像大小)并进行设置。并使用。将创建一个新容器,并自动下载最新的映像,然后终止旧容器。 例: 我目前正在

  • 问题内容: 我试图通过读取每一行,对其进行测试,然后编写是否需要更新来替换文本文件中的文本。我不想另存为新文件,因为我的脚本已经先备份了文件并可以进行备份。 到目前为止,这是我所拥有的…我从os.walk()获得了fpath,并保证pathmatch var正确返回: 但是最终发生的是,我只得到了几行(正确更新,请注意,但是从文件的开头重复了)。我认为这是一个范围界定的问题。 *另外:我想知道如何

  • 问题内容: 我的目标是更新JsonNode中的一些文本字段。 我不知道该怎么做。你有什么建议吗? 问题答案: 简短的答案是:您不能。不公开允许您更改内容的任何操作。 话虽如此,您可以轻松地在循环中或通过递归遍历节点以获得所需的行为。想象以下情况: 输出为: {“ fieldName”:“新值”,“嵌套”:{“ fieldName”:“新值”}}

  • null null 如果没有对第1号的解决方案,因此我们可以基于某些约定进行部署,那么现在的问题进一步涉及到如何以自动化的方式管理入口。由于服务将由自动的CI/CD管道部署,并且随着服务被添加到集群中,可能会添加新的路径,因此CI/CD编排器(例如jenkins)如何在部署应用程序时更新入口路由?以便我们确信不需要人工干预集群,并且每条路由都与相应的服务一起部署? 我希望所提供的资料足以理解这个问

  • 问题内容: 我想知道是否有一种更有效的方法来替换BufferedImage中的颜色。目前,我使用以下方法: 我用要替换的颜色和要替换的颜色(包括透明度)填充数组。然后,我遍历图像中的每个像素。如果它与阵列中的一种颜色匹配,我将其替换为阵列中的新颜色。这是代码: 我正在处理的图像很小,约为20x20像素。但是,似乎必须有一种更有效的方法来执行此操作。 问题答案: 您可以修改基础ColorModel而