Обновление модуля Kubernetes с помощью PersistentVolumeClaim в режиме доступа ReadWriteOnce

#kubernetes #kubernetes-helm

#kubernetes #kubernetes-рулевой

Вопрос:

У меня есть модуль postgres, использующий PersistentVolumeClaim для хранения базы данных в режиме ReadWriteOnce.

Обновить модуль с помощью Helm сложно, потому что новый модуль заблокирован до тех пор, пока старый модуль не выпустит требование, а Helm не удалит старый модуль, пока новый модуль не будет готов.

Как обычно решается эта проблема? Кажется, я нигде не могу найти документацию по этому вопросу, и я думаю, что это обычная проблема.

Это мой пвх:

 apiVersion: v1                                                                  
kind: PersistentVolumeClaim                                                     
metadata:                                                                       
    name: pgdata-claim                                                          
spec:                                                                           
    accessModes:                                                                
        - ReadWriteOnce                                                         
    storageClassName: standard                                                  
    resources:                                                                  
        requests:                                                               
            storage: 20Gi                                                       
    selector:                                                                   
        matchLabels:                                                            
            app: postgres                                                       
  

Комментарии:

1. Как вы управляете своим модулем? Поддерживается ли оно развертыванием / набором реплик?

Ответ №1:

В случае, если вы используете режим ReadWriteOnce, я предлагаю использовать «StatefulSet» с «volumeClaimTemplates«, он был успешно протестирован (однако без helm).

В качестве примера, пожалуйста, взгляните на это:

https://kubernetes.io/blog/2019/04/04/kubernetes-1.14-local-persistent-volumes-ga/

Пожалуйста, поделитесь результатами и своими выводами.

Комментарии:

1. К сожалению, GCP не соответствует этой версии K8s.

2. Кажется, что мое лучшее решение — избежать этого требования и просто использовать cloud sql.

3. Не могли бы вы, пожалуйста, предоставить дополнительную информацию: например, @yanivoliver спросил, как он был развернут, и сколько реплик вы используете? Пожалуйста, поделитесь своими файлами yaml.