Ограничьте объем Kubernetes одним пакетом - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть развертывание Kubernetes для базы данных Scylla с подключенным томом.У него есть одна реплика, с манифестом, подобным следующему:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: scylla
  labels:
    app: myapp
    role: scylla
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
      role: scylla
  template:
    metadata:
      labels:
        app: myapp
        role: scylla
    spec:
      containers:
        - name: scylla
          image: scylladb/scylla
          imagePullPolicy: Always
          volumeMounts:
            - mountPath: /var/lib/scylla/data
              name: scylladb
      volumes:
        - name: scylladb
          hostPath:
            path: /var/myapp/scylla/
            type: DirectoryOrCreate

Когда я выполняю обновление, он завершает работу старого модуля и запускает новый модуль, прежде чем старый модуль будет остановлен.Это приводит к сбою базы данных на новом модуле, поскольку он не может получить доступ к файлам базы данных, хранящимся на томе (поскольку старый модуль все еще использует его).Как я могу сделать так, чтобы только один модуль использовал громкость одновременно?(Короткое время простоя)

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете использовать Воссоздать стратегию в Развертывании, чтобы сделать это.Это убьет все существующие модули перед созданием новых.Ссылка: Kubernetes doc .Так что из-за этого у них будет некоторое время простоя.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: scylla
  labels:
    app: myapp
    role: scylla
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
      role: scylla
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: myapp
        role: scylla
    spec:
      containers:
        - name: scylla
          image: scylladb/scylla
          imagePullPolicy: Always
          volumeMounts:
            - mountPath: /var/lib/scylla/data
              name: scylladb
      volumes:
        - name: scylladb
          hostPath:
            path: /var/myapp/scylla/
            type: DirectoryOrCreate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...