2015-12-16 3 views
1

Я запускаю pods с контроллером репликации, теперь я хочу отредактировать конфигурацию, например, изменить значение среды и сохранить имя 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" 

Например переместить службу на новый сервер и просто хочу изменить значение в окр USER_ENDPOINT к http://10.0.7.30:30100

Теперь я точно знаю, следует удалить гс и воссоздать гс, но в производстве я не остановить его.

Я пробую rolling-update, но не работает, потому что я хочу сохранить имя контроллера репликации.

Что я могу сделать?

Пожалуйста, предложите решение, спасибо.

+0

Почему вы хотите сохранить имя RC? – ant31

+0

Потому что я использую это имя для автоматического обновления RC с новым изображением в следующем CD. – user3171689

ответ

2

Вы можете использовать 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

+0

'kubectl' на моем сервере - версия 1.0.6, он не поддерживает' edit' :))). Я обновлю его. – user3171689

0

Вы можете частично обновить RC с использованием метода HTTP PATCH, например, так (предполагается, что ваш RC находится в default пространстве имен):

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

Смотри также API Reference.

Смежные вопросы