【问题标题】:how to update kubernetes replication controller?如何更新 Kubernetes 复制控制器?
【发布时间】:2015-12-17 01:19:42
【问题描述】:

我使用复制控制器运行 pod,现在我想编辑配置,例如更改环境值并保留 rc 的名称。

apiVersion: v1
kind: ReplicationController
metadata:
  name: backend
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: backend
        image: myproject/backend
        ports:
        - containerPort: 8080
        env:
        - name: USER_ENDPOINT
          value: "http://10.0.7.29:10000"

例如,我将服务移动到新服务器,只想将 env USER_ENDPOINT 的值更改为 http://10.0.7.30:30100

现在我只知道关注删除 rc 并重新创建 rc,但在生产中我不会停止它。

我尝试rolling-update 但不起作用,因为我想保留复制控制器的名称。

我能做什么?

请提出解决方案,谢谢。

【问题讨论】:

  • 为什么要保留RC的名字?
  • 因为我在后续 CD 中使用此名称滚动更新 RC,并带有新图像。

标签: kubernetes


【解决方案1】:

您可以使用kubectl edit 编辑资源:

Usage:
  kubectl edit (RESOURCE/NAME | -f FILENAME) [flags]

Examples:
  # Edit the service named 'docker-registry':
  $ kubectl edit svc/docker-registry

  # Use an alternative editor
  $ KUBE_EDITOR="nano" kubectl edit svc/docker-registry

  # Edit the service 'docker-registry' in JSON using the v1 API format:
  $ kubectl edit svc/docker-registry --output-version=v1 -o json

^^ 来自 kubectl 帮助

【讨论】:

  • kubectl 在我的服务器中是 1.0.6 版,它不支持 edit :)))。我会更新的。
【解决方案2】:

您可以使用 HTTP PATCH 方法部分更新 RC,如下所示(假设您的 RC 在 default 命名空间中):

PATCH /api/v1/namespaces/default/replicationcontrollers/backend

另请参阅API Reference

【讨论】:

    猜你喜欢
    • 2016-05-22
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2015-07-12
    • 2016-09-22
    • 1970-01-01
    相关资源
    最近更新 更多