HomeРазноеДоступна новая версия приложения: Не работает YouTube на Android 4.0

Доступна новая версия приложения: Не работает YouTube на Android 4.0

Содержание

Доступна новая версия приложения для Android — 21 ноября 2014 г. | Новости

 

Мы рады сообщить вам о выходе новой версии приложения Exante для Android. Если приложение уже установлено на вашем смартфоне, смело заходите в Play Market и скачивайте обновление. 

Если вы еще не пользовались Exante для Android, мы рекомендуем установить приложение уже сейчас. Вместе с ним у вас будет доступ к своему счёту повсеместно, даже когда под рукой нет компьютера. А просмотр котировок и информация по инструментам доступны всем пользователям и не требуют открытия счета в Exante. Все что необходимо — просто скачать приложение на свой телефон.

Улучшения в приложении:

График

Главное отличие новой версии приложения от предыдущих – наличие графиков. Теперь вы можете видеть изменение цен и размещать заявки на покупку/продажу финасового инструмента в одном и том же модуле.

Быстрая заявка

По сравнению с компьютером, телефон обладает относительно маленьким экраном, что вызывает неудобства при просмотре графиков. Одна из самых заметных проблем при работе с котировками на  экране смартфона — это выход свечи за пределы картинки при резком изменении цены и спреда, 

Чтобы избежать этого, теперь масштаб шкалы цен в модуле «Быстрая заявка» на вертикальной оси автоматически уменьшается при резких скачках цен. Таким образом спред остается в пределах экрана, несмотря на увеличение в численном эквиваленте.

Котировки

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

Обработка данных

Приложение Exante не только изменилось внешне, но и стало быстрее. Мы оптимизировали процесс обработки данных, что позволило увеличить количество доступных инструментов и скорость их загрузки.

Наше приложение для Android позволяет:

* получать котировки в реальном времени;

* совершать сделки с акциями, опционами: фьючерсами, облигациями, валютами, хедж-фондами и биткоинами с единого мультивалютного счёта;

* контролировать состояние счёта;

* мониторить открытые позиции;

* размещать ордера одним касанием;

* пользоваться поддержкой в режиме 24/7.

Загрузите новую версию платформы прямо сейчас и получите возможность управлять своим активами всегда и везде.

В ближайшее время мы выпустим новые версии приложений и для iOS. К концу ноября появится обновление для iPhone, дублирующее функционал текущей версии Android. А к Новому году в свет выйдут апдейты для планшетов Android и iPad. В новых версиях для гаджетов больших размеров мы так же совместим графики и окно быстрой заявки на одном экране.

 

Обновление до последней версии – Zoom Центр справки и поддержки

Обзор

Компания Zoom регулярно выпускает новые версии клиента Zoom для ПК и мобильного приложения с целью расширения функционала и исправления ошибок. Мы рекомендуем обновляться до последних версий по мере их выхода в общий доступ. Вы также можете проверить текущую версию клиента / приложения. 

Подпишитесь на раздел с примечаниями к версии, чтобы получать актуальную информацию о последних выпусках Zoom. 

В этой статье рассматриваются следующие вопросы:


Что означает «БЕТА»?

«БЕТА» означает, что работа над заявкой еще не завершена. Поэтому некоторые функции пока недоступны.


Почему мы предоставляем «БЕТА» версию?

Ранний доступ к незавершенной версии дает вам возможность оставлять комментарии.Еще до окончательной реализации. Ваше мнение очень важно для нас.


Что нового в бета-версии?

Основная новая версия веб-приложения:

1. Ответственность

Вы можете свободно использовать приложение на любом устройстве. Приложение автоматически подстраивается под большие (мониторы) и маленькие (смартфоны, планшеты) экраны.

2. Календарь адаптированный под разрешение экрана

В календаре можно отобразить больше дней. Приложение автоматически подстраивает календарь под заданное разрешение экрана.

3. Бесперебойная работа

Вы можете плавно перемещать календарь.

4. Свободное перемещение календаря

Вы можете перемещать календарь на любое количество дней.

5. Форма бронирования с учетом ваших требований

Вы можете добавить функции, которые используете, и скрыть те, которые не используются.

6. Оформление бронирования

Вы можете настроить внешний вид бронирований в календаре (прямоугольники или ромбики).

7. Цвета комнат

Вы можете установить цвета для комнат в календаре.

8. Индивидуальные цвета статусов бронирования

Вы можете установить индивидуальные цвета для выбранных резерваций.

9.Ярлыки и цвета статусов бронирования

Вы можете настроить метки и цвета для резервирования.

10. Финансовый отчет

Вы можете создать финансовый отчет за любой период.

11. Сводка ежедневного бронирования

Вы можете просматривать в своем календаре ежедневную сводку:
— человек в учреждении,
— время прибытия и отъезда,
— питание.

12.Языковые версии

Мы добавили французский (FR) и хорватский (HR).

13. Простота и прозрачность

Новое приложение имеет удобный интерфейс. Мы делаем упор на простоту.


Когда мы реализуем недостающие варианты?

Следующая часть недостающих функций будет доступна в ноябре 2019 года. Затем мы приступим к окончательной реализации новой версии веб-приложения.


Как оставить отзыв?

1. Здесь вы можете написать сообщение (сообщение будет видно всем).
2. Вы можете отправить электронное письмо по адресу: [email protected] com

Развертывания | Kubernetes

A Deployment предоставляет декларативные обновления для Pod и
ReplicaSets.

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

Примечание: Не управляйте ReplicaSets, принадлежащими развертыванию. Рассмотрите возможность открытия задачи в основном репозитории Kubernetes, если ваш вариант использования не описан ниже.

Вариант использования

Ниже приведены типичные варианты использования для развертываний:

Создание развертывания

Ниже приведен пример развертывания.Он создает ReplicaSet для отображения трех подов nginx :

  apiVersion: apps / v1
вид: Развертывание
метаданные:
  имя: nginx-развертывание
  ярлыки:
    приложение: nginx
спецификации:
  реплик: 3
  селектор:
    matchLabels:
      приложение: nginx
  шаблон:
    метаданные:
      ярлыки:
        приложение: nginx
    спецификации:
      контейнеры:
      - имя: nginx
        изображение: nginx: 1. 14.2
        порты:
        - containerPort: 80
  

В этом примере:

  • Создается развертывание с именем nginx-deployment , обозначенное номером .metadata.name поле.

  • Развертывание создает три реплицированных модуля, обозначенных полем .spec.replicas .

  • Поле .spec.selector определяет, как Deployment находит, какими модулями нужно управлять.
    В этом случае вы выбираете метку, которая определена в шаблоне Pod (приложение : nginx ).
    Однако возможны более сложные правила выбора,
    при условии, что сам шаблон Pod удовлетворяет правилу.

    Примечание: .Поле spec.selector.matchLabels представляет собой карту пар {ключ, значение}.
    Один {ключ, значение} в карте matchLabels эквивалентен элементу matchExpressions ,
    у которого ключевое поле — «ключ», оператор — «В», а массив значений содержит только «значение».
    Для сопоставления должны быть выполнены все требования из matchLabels и matchExpressions .

  • Поле шаблона содержит следующие подполя:

    • Модули помечены как app: nginx с использованием .metadata.labels поле.
    • Спецификация шаблона Pod или поле .template.spec указывает, что
      Pods запускают один контейнер, nginx , который запускает nginx
      Образ Docker Hub версии 1.14.2.
    • Создайте один контейнер и назовите его nginx , используя поле .spec.template.spec.containers [0] .name .

Прежде чем начать, убедитесь, что ваш кластер Kubernetes запущен и работает.
Выполните шаги, указанные ниже, чтобы создать указанное выше развертывание:

  1. Создайте развертывание, выполнив следующую команду:

      kubectl apply -f https: // k8s. io / примеры / контроллеры / nginx-deployment.yaml
      

Примечание: Вы можете указать флаг --record , чтобы записать команду, выполняемую в аннотации ресурса kubernetes.io/change-cause .
Записанное изменение полезно для будущего самоанализа. Например, чтобы увидеть команды, выполняемые в каждой версии развертывания.

  1. Запустите kubectl get deployments , чтобы проверить, было ли создано развертывание.

    Если развертывание все еще создается, выходные данные будут примерно такими:

      ИМЯ ГОТОВА АКТУАЛЬНАЯ ДАТА ДОСТУПНЫЙ ВОЗРАСТ
    nginx-развертывание 0/3 0 0 1 с
      

    Когда вы проверяете развертывания в своем кластере, отображаются следующие поля:

    • NAME перечисляет имена развертываний в пространстве имен.
    • ГОТОВ показывает, сколько реплик приложения доступно вашим пользователям. Он следует готовому / желаемому шаблону.
    • UP-TO-DATE отображает количество реплик, которые были обновлены для достижения желаемого состояния.
    • ДОСТУПНО показывает, сколько реплик приложения доступно вашим пользователям.
    • ВОЗРАСТ отображает количество времени, в течение которого приложение было запущено.

    Обратите внимание, что количество желаемых реплик равно 3 согласно .spec.replicas field.

  2. Чтобы увидеть статус развертывания развертывания, запустите kubectl rollout status deployment / nginx-deployment .

    Вывод похож на:

      Ожидание завершения развертывания: обновлены 2 из 3 новых реплик ...
    развертывание "nginx-deployment" успешно развернуто
      
  3. Запустите kubectl get deployments еще раз через несколько секунд.
    Результат выглядит примерно так:

      ИМЯ ГОТОВА АКТУАЛЬНАЯ ДАТА ДОСТУПНЫЙ ВОЗРАСТ
    nginx-развертывание 3/3 3 3 18 с
      

    Обратите внимание, что при развертывании были созданы все три реплики, и все реплики актуальны (они содержат последний шаблон Pod) и доступны.

  4. Чтобы увидеть ReplicaSet ( rs ), созданный развертыванием, запустите kubectl get rs . Вывод выглядит примерно так:

      НАЗВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ГОТОВОГО ВОЗРАСТА
    nginx-развертывание-75675f5897 3 3 3 18s
      

    Выходные данные ReplicaSet показывают следующие поля:

    • NAME перечисляет имена ReplicaSet в пространстве имен.
    • ЖЕЛАТЕЛЬНЫЙ отображает желаемое количество из реплик приложения, которое вы определяете при создании развертывания.Это желаемое состояние .
    • ТЕКУЩИЙ показывает, сколько реплик работает в данный момент.
    • ГОТОВ показывает, сколько реплик приложения доступно вашим пользователям.
    • ВОЗРАСТ отображает количество времени, в течение которого приложение было запущено.

    Обратите внимание, что имя ReplicaSet всегда имеет формат [НАЗВАНИЕ-РАЗВЕРТЫВАНИЕ] - [СЛУЧАЙНАЯ СТРОКА] .
    Случайная строка генерируется случайным образом и использует хэш-код шаблона под-пода в качестве начального числа.

  5. Чтобы увидеть метки, автоматически созданные для каждого модуля, запустите kubectl get pods --show-labels .
    Вывод похож на:

      НАЗВАНИЕ ГОТОВ СОСТОЯНИЕ ВОССТАНОВЛЕНИЕ ЭТИКЕТКИ ВОЗРАСТА
    nginx-deployment-75675f5897-7ci7o 1/1 Выполняется 0 18s app = nginx, pod-template-hash = 31231

    nginx-deployment-75675f5897-kzszj 1/1 Выполняется 0 18s app = nginx, pod-template-hash = 31231

    nginx-deployment-75675f5897-qqcnn 1/1 Выполняется 0 18s app = nginx, pod-template-hash = 31231

    Созданный ReplicaSet гарантирует наличие трех подов nginx .

Примечание:

Вы должны указать соответствующий селектор и метки шаблона Pod в развертывании.
(в данном случае приложение : nginx ).

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

Pod-template-hash label

Внимание: Не изменяйте эту метку.

Метка pod-template-hash добавляется контроллером развертывания к каждому ReplicaSet, который создает или принимает развертывание.

Эта метка гарантирует, что дочерние ReplicaSets развертывания не перекрываются. Он генерируется путем хеширования PodTemplate ReplicaSet и использования полученного хеша в качестве значения метки, которое добавляется к селектору ReplicaSet, меткам шаблона Pod,
и в любых существующих модулях, которые может иметь ReplicaSet.

Обновление развертывания

Примечание: Развертывание развертывания запускается тогда и только тогда, когда шаблон модуля развертывания (то есть . спец. шаблон )
изменяется, например, если обновляются этикетки или изображения контейнеров шаблона. Другие обновления, такие как масштабирование развертывания, не запускают развертывание.

Чтобы обновить развертывание, выполните следующие действия:

  1. Давайте обновим модули nginx, чтобы использовать образ nginx: 1.16.1 вместо образа nginx: 1.14.2 .

      kubectl --record deployment.apps / nginx-deployment установить образ развертывания.v1.apps / nginx-deployment nginx = nginx: 1.16.1
      

    или используйте следующую команду:

      kubectl set image deployment / nginx-deployment nginx = nginx: 1.16.1 --record
      

    Результат похож на:

      deployment.apps / nginx-deployment image обновлен
      

    Кроме того, вы можете отредактировать Deployment и изменить .spec.template.spec.containers [0] . image с nginx: 1.14.2 на nginx: 1.16.1 :

      kubectl редактировать развертывание.v1.apps / nginx-развертывание
      

    Результат похож на:

      deployment.apps / nginx-deployment отредактировал
      
  2. Чтобы увидеть статус развертывания, запустите:

      kubectl rollout status deployment / nginx-deployment
      

    Результат выглядит примерно так:

      Ожидание завершения развертывания: обновлены 2 из 3 новых реплик ...
      

    или

      развертывание «nginx-deployment» успешно развернуто
      

Получите дополнительные сведения об обновленном развертывании:

  • После успешного развертывания вы можете просмотреть развертывание, запустив kubectl get deployments .Результат выглядит примерно так:

      ИМЯ ГОТОВА АКТУАЛЬНАЯ ДАТА ДОСТУПНЫЙ ВОЗРАСТ
    nginx-развертывание 3/3 3 3 36 с
      
  • Запустите kubectl и получите rs , чтобы увидеть, что развертывание обновило поды, создав новый ReplicaSet и масштабируя его
    до 3 реплик, а также уменьшение старого ReplicaSet до 0 реплик.

    Результат выглядит примерно так:

      НАЗВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
    nginx-развертывание-1564180365 3 3 3 6с
    nginx-развертывание-2035384211 0 0 0 36 с
      
  • Выполняется get pods теперь должны показывать только новые модули:

    Результат похож на этот:

      NAME READY STATUS RESTARTS AGE
    nginx-deployment-1564180365-khku8 1/1 Выполняется 0 14 с
    nginx-deployment-1564180365-nacti 1/1 Выполняется 0 14 с
    nginx-deployment-1564180365-z9gth 1/1 Выполняется 0 14 с
      

    В следующий раз, когда вы захотите обновить эти модули, вам нужно будет только снова обновить шаблон модуля развертывания.

    Развертывание гарантирует, что только определенное количество модулей не работает во время обновления. По умолчанию,
    он гарантирует, что по крайней мере 75% от желаемого количества модулей включены (максимум 25% недоступны).

    Развертывание

    также гарантирует, что только определенное количество модулей будет создано сверх желаемого количества модулей.
    По умолчанию это гарантирует, что не более 125% от желаемого количества Pod’ов включены (максимальный всплеск 25%).

    Например, если вы внимательно посмотрите на приведенное выше развертывание, вы увидите, что сначала был создан новый модуль,
    затем удалил несколько старых модулей и создал новые.Он не убивает старые стручки до тех пор, пока не будет
    появились новые модули, и не создает новых, пока не будет уничтожено достаточное количество старых модулей.
    Он гарантирует, что доступно как минимум 2 модуля и всего доступно не более 4 модулей.

  • Получите подробную информацию о развертывании:

      kubectl описать развертывания
      

    Результат выглядит примерно так:

      Имя: nginx-deployment
    Пространство имен: по умолчанию
    CreationTimestamp: Thu, 30 Nov 2017 10:56:25 +0000
    Ярлыки: app = nginx
    Аннотации: развертывание.kubernetes.io/revision=2
    Селектор: app = nginx
    Реплики: 3 желаемых | 3 обновлено | 3 всего | 3 доступны | 0 недоступен
    StrategyType: RollingUpdate
    MinReadySeconds: 0
    RollingUpdateStrategy: максимум 25% недоступен, максимум 25% всплеск
    Шаблон пакета:
      Ярлыки: app = nginx
       Контейнеры:
        nginx:
          Изображение: nginx: 1. 16.1
          Порт: 80 / TCP
          Окружающая среда: <нет>
          Средства передвижения: <нет>
        Объемы: <нет>
      Условия:
        Тип Статус Причина
        ---- ------ ------
        Доступно Истинно Минимум Реплики Доступно
        Продвижение True NewReplicaSetAvailable
      OldReplicaSets: <нет>
      NewReplicaSet: nginx-deployment-1564180365 (создано 3/3 реплик)
      События:
        Тип Причина Возраст из сообщения
        ---- ------ ---- ---- -------
        Нормальный ScalingReplicaSet 2m deployment-controller Масштабируемая реплика устанавливает nginx-deployment-2035384211 равным 3
        Нормальный ScalingReplicaSet 24s deployment-controller Масштабируемая реплика устанавливает nginx-deployment-1564180365 на 1
        Нормальный ScalingReplicaSet 22s deployment-controller Уменьшенная реплика устанавливает nginx-deployment-2035384211 на 2
        Нормальный ScalingReplicaSet 22s deployment-controller Масштабируемая реплика устанавливает nginx-deployment-1564180365 на 2
        Нормальный ScalingReplicaSet 19s Deploy-Controller Уменьшенная реплика устанавливает nginx-deployment-2035384211 на 1
        Нормальный ScalingReplicaSet 19s deployment-controller Масштабируемая реплика для nginx-deployment-1564180365 установлена ​​на 3
        Нормальный ScalingReplicaSet 14s deployment-controller Уменьшенная реплика устанавливает nginx-deployment-2035384211 равным 0
      

    Здесь вы видите, что при первом создании Deployment было создано ReplicaSet (nginx-deployment-2035384211)
    и напрямую масштабировал его до 3-х реплик. Когда вы обновили развертывание, он создал новый ReplicaSet
    (nginx-deployment-1564180365) и увеличил его до 1, а затем уменьшил старый ReplicaSet до 2, чтобы
    было доступно не менее 2 модулей и не более 4 модулей было создано за все время. Затем он продолжил масштабирование вверх и вниз
    новый и старый ReplicaSet с одинаковой стратегией последовательного обновления. Наконец, у вас будет 3 доступных реплики
    в новом ReplicaSet, а старый ReplicaSet уменьшен до 0.

Ролловер (также известный как несколько обновлений в процессе)

Каждый раз, когда контроллер развертывания наблюдает за новым развертыванием, создается ReplicaSet для запуска
желаемые стручки.Если развертывание обновлено, существующий ReplicaSet, который управляет модулями, метки которых
соответствует .spec.selector , но чей шаблон не соответствует .spec.template , масштабируется вниз. В конце концов, новый
ReplicaSet масштабируется до .spec.replicas , а все старые ReplicaSets масштабируются до 0.

Если вы обновляете развертывание во время существующего развертывания, развертывание создает новый ReplicaSet
в соответствии с обновлением и начните масштабировать его, а также переместите ReplicaSet, который ранее масштабировался
— он добавит его в свой список старых ReplicaSets и начнет его уменьшать.

Например, предположим, что вы создаете развертывание для создания 5 реплик nginx: 1.14.2 ,
но затем обновите развертывание, чтобы создать 5 реплик nginx: 1.16.1 , когда только 3
были созданы реплики nginx: 1.14.2 . В этом случае немедленно начинается развертывание.
убивает 3 nginx: 1.14.2 подов, которые он создал, и начинает создавать
nginx: 1.16.1 Под. Он не дожидается создания 5 реплик nginx: 1.14.2
перед сменой курса.

Обновления селектора меток

Обычно не рекомендуется выполнять обновления селектора меток, и рекомендуется заранее спланировать свои селекторы.
В любом случае, если вам нужно выполнить обновление селектора меток, будьте очень осторожны и убедитесь, что вы усвоили
все последствия.

Примечание: В API версии apps / v1 селектор меток развертывания остается неизменным после его создания.

  • Добавление селектора требует, чтобы метки шаблона Pod в спецификации развертывания также были обновлены новой меткой,
    в противном случае возвращается ошибка проверки.Это изменение не перекрывается, а это означает, что новый селектор
    не выбирать ReplicaSets и Pods, созданные с помощью старого селектора, что приведет к лишению всех старых ReplicaSets и
    создание нового ReplicaSet.
  • Обновления селектора изменяют существующее значение в ключе селектора — приводят к тому же поведению, что и добавления.
  • Селектор удаления удаляет существующий ключ из селектора развертывания — не требует никаких изменений в
    Ярлыки шаблонов пакетов. Существующие ReplicaSet не становятся потерянными, и новый ReplicaSet не создается, но обратите внимание, что
    Удаленная метка по-прежнему существует во всех существующих модулях и наборах реплик.

Откат развертывания

Иногда может потребоваться откат развертывания; например, когда развертывание нестабильно, например зацикливание при сбое.
По умолчанию вся история развертывания развертывания хранится в системе, так что вы можете откатиться в любое время.
(вы можете изменить это, изменив ограничение истории изменений).

Примечание: Версия развертывания создается, когда запускается развертывание развертывания. Это означает, что
новая ревизия создается тогда и только тогда, когда шаблон модуля развертывания (.спец. шаблон ) изменен,
например, если вы обновляете этикетки или изображения контейнеров в шаблоне. Другие обновления, такие как масштабирование развертывания,
не создавайте версию развертывания, чтобы облегчить одновременное ручное или автоматическое масштабирование.
Это означает, что при откате к более ранней версии будет доступна только часть шаблона модуля развертывания.
откат.

  • Предположим, вы допустили опечатку при обновлении развертывания, указав имя образа как nginx: 1. 161 вместо nginx: 1.16.1 :

      kubectl set image deployment.v1.apps / nginx-deployment nginx = nginx: 1.161 --record = true
      

    Результат выглядит примерно так:

      deployment.apps / nginx-deployment image обновлен
      
  • Развертывание зависает. Вы можете проверить это, проверив статус развертывания:

      kubectl rollout status deployment / nginx-deployment
      

    Результат выглядит примерно так:

      Ожидание завершения развертывания: обновлена ​​1 из 3 новых реплик...
      
  • Нажмите Ctrl-C, чтобы остановить наблюдение за состоянием вышеупомянутого развертывания. Для получения дополнительной информации о зависших развертываниях,
    подробнее здесь.

  • Вы видите, что количество старых реплик ( nginx-deployment-1564180365 и nginx-deployment-2035384211 ) равно 2, а новых реплик (nginx-deployment-3066724191) равно 1.

    Результат аналогично этому:

      НАИМЕНОВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
    nginx-развертывание-1564180365 3 3 3 25 с
    nginx-развертывание-2035384211 0 0 0 36 с
    nginx-развертывание-3066724191 1 1 0 6s
      
  • Глядя на созданные модули, вы видите, что 1 модуль, созданный новым ReplicaSet, застрял в цикле извлечения изображения.

    Результат выглядит примерно так:

      НАЗВАНИЕ ГОТОВ СОСТОЯНИЕ ПЕРЕЗАПУСКАЕТ ВОЗРАСТ
    nginx-deployment-1564180365-70iae 1/1 Выполняется 0 25 с
    nginx-deployment-1564180365-jbqqo 1/1 Выполняется 0 25 с
    nginx-deployment-1564180365-hysrc 1/1 Выполняется 0 25 с
    nginx-deployment-3066724191-08mng 0/1 ImagePullBackOff 0 6 с
      

    Примечание: Контроллер развертывания автоматически останавливает неверное развертывание и прекращает масштабирование нового ReplicaSet.Это зависит от указанных вами параметров RollingUpdate (в частности, maxUnavailable ). Kubernetes по умолчанию устанавливает значение 25%.

  • Получить описание развертывания:

      kubectl описать развертывание
      

    Результат выглядит примерно так:

      Имя: nginx-deployment
    Пространство имен: по умолчанию
    CreationTimestamp: Вт, 15 марта 2016 14:48:04 -0700
    Ярлыки: app = nginx
    Селектор: app = nginx
    Реплики: 3 желаемых | 1 обновлено | 4 всего | 3 доступны | 1 недоступен
    StrategyType: RollingUpdate
    MinReadySeconds: 0
    RollingUpdateStrategy: максимум 25% недоступен, максимум 25% всплеск
    Шаблон пакета:
      Ярлыки: app = nginx
      Контейнеры:
       nginx:
        Изображение: nginx: 1.161
        Порт: 80 / TCP
        Порт хоста: 0 / TCP
        Окружающая среда: <нет>
        Средства передвижения: <нет>
      Объемы: <нет>
    Условия:
      Тип Статус Причина
      ---- ------ ------
      Доступно Истинно Минимум Реплики Доступно
      Обновление True ReplicaSetUpdated
    OldReplicaSets: nginx-deployment-1564180365 (создано 3/3 реплик)
    NewReplicaSet: nginx-deployment-3066724191 (созданы 1/1 реплики)
    События:
      FirstSeen LastSeen Count из сообщения о причине типа SubObjectPath
      --------- -------- ----- ---- ------------- -------- --- --- -------
      1 м 1 м 1 {deployment-controller} Нормальный ScalingReplicaSet Масштабируемый набор реплик nginx-deployment-2035384211 равным 3
      22s 22s 1 {deployment-controller} Нормальный ScalingReplicaSet Масштабируемая реплика с увеличенным размером устанавливает nginx-deployment-1564180365 на 1
      22s 22s 1 {deployment-controller} Нормальный ScalingReplicaSet Уменьшенная реплика установить nginx-deployment-2035384211 на 2
      22s 22s 1 {deployment-controller} Нормальный ScalingReplicaSet Масштабируемая реплика для набора nginx-deployment-1564180365 на 2
      21s 21s 1 {deployment-controller} Нормальный ScalingReplicaSet Уменьшенная реплика установить nginx-deployment-2035384211 на 1
      21s 21s 1 {deployment-controller} Нормальный ScalingReplicaSet Масштабируемая реплика для набора nginx-deployment-1564180365 на 3
      13s 13s 1 {deployment-controller} Нормальный ScalingReplicaSet Уменьшенная реплика устанавливает nginx-deployment-2035384211 равным 0
      13s 13s 1 {deployment-controller} Normal ScalingReplicaSet Масштабируемая реплика для набора nginx-deployment-3066724191 на 1
      

    Чтобы исправить это, вам необходимо выполнить откат к предыдущей версии развертывания, которая является стабильной.

Проверка истории развертывания развертывания

Чтобы проверить историю развертывания, выполните следующие действия:

  1. Сначала проверьте версии этого развертывания:

      kubectl rollout history deployment.v1.apps / nginx- развертывание
      

    Результат выглядит примерно так:

      развертываний «nginx-deployment»
    ПЕРЕСМОТР ИЗМЕНЕНИЕ-ПРИЧИНА
    1 kubectl apply --filename = https: //k8s.io/examples/controllers/nginx-deployment.yaml --record = true
    2 kubectl set image deployment.v1.apps / nginx-deployment nginx = nginx: 1.16.1 --record = true
    3 kubectl set image deployment.v1.apps / nginx-deployment nginx = nginx: 1.161 --record = true
      

    ПРИЧИНА ИЗМЕНЕНИЯ скопирован из аннотации развертывания kubernetes.io/change-cause в свои редакции после создания. Вы можете указать сообщение CHANGE-CAUSE с помощью:

    • Annotating the Deployment with kubectl annotate deployment. v1.apps / nginx-deployment kubernetes.io/change-cause="image updated до 1.16.1 "
    • Добавьте флаг --record , чтобы сохранить команду kubectl , которая вносит изменения в ресурс.
    • Редактирование манифеста ресурса вручную.
  2. Чтобы просмотреть подробные сведения о каждой версии, запустите:

      kubectl rollout history deployment.v1.apps / nginx-deployment --revision = 2
      

    Результат похож на этот:

      развертываний «nginx-deployment», версия 2
      Ярлыки: app = nginx
              pod-template-hash = 115

    44 Аннотации: кубернетес.io / change-cause = kubectl set image deployment.v1.apps / nginx-deployment nginx = nginx: 1.16.1 --record = true Контейнеры: nginx: Изображение: nginx: 1.16.1 Порт: 80 / TCP Уровень QoS: процессор: BestEffort память: BestEffort Переменные среды: <нет> Нет объемов.

Откат к предыдущей версии

Выполните шаги, указанные ниже, чтобы откатить развертывание с текущей версии до предыдущей версии, то есть версии 2.

  1. Теперь вы решили отменить текущее развертывание и вернуться к предыдущей версии:

      kubectl rollout undo deployment.v1.apps / nginx-deployment
      

    Результат похож на этот:

      deployment.apps / nginx-deployment откат
      

    В качестве альтернативы вы можете выполнить откат до определенной версии, указав ее с помощью --to-revision :

      kubectl rollout undo deployment.v1.apps / nginx-deployment --to-revision = 2
      

    Результат похож на этот:

      развертывание.откат приложений / nginx-deployment
      

    Дополнительные сведения о командах, связанных с развертыванием, см. В статье kubectl rollout .

    Откат развертывания до предыдущей стабильной версии. Как видите, событие DeploymentRollback
    для отката к ревизии 2 генерируется из контроллера развертывания.

  2. Проверьте, был ли откат успешным и развертывание выполняется должным образом, выполните:

      kubectl get deployment nginx-deployment
      

    Результат выглядит примерно так:

      ИМЯ ГОТОВА АКТУАЛЬНАЯ ДАТА ДОСТУПНЫЙ ВОЗРАСТ
    nginx-развертывание 3/3 3 3 30 мес. 
      
  3. Получить описание развертывания:

      kubectl описать развертывание nginx-deployment
      

    Результат выглядит примерно так:

      Имя: nginx-deployment
    Пространство имен: по умолчанию
    CreationTimestamp: Sun, 02 Sep 2018 18:17:55 -0500
    Ярлыки: app = nginx
    Аннотации: развертывание.kubernetes.io/revision=4
                            kubernetes.io/change-cause=kubectl установить развертывание образа.v1.apps / nginx-deployment nginx = nginx: 1.16.1 --record = true
    Селектор: app = nginx
    Реплики: 3 желаемых | 3 обновлено | 3 всего | 3 доступны | 0 недоступен
    StrategyType: RollingUpdate
    MinReadySeconds: 0
    RollingUpdateStrategy: максимум 25% недоступен, максимум 25% всплеск
    Шаблон пакета:
      Ярлыки: app = nginx
      Контейнеры:
       nginx:
        Изображение: nginx: 1.16.1
        Порт: 80 / TCP
        Порт хоста: 0 / TCP
        Окружающая среда: <нет>
        Средства передвижения: <нет>
      Объемы: <нет>
    Условия:
      Тип Статус Причина
      ---- ------ ------
      Доступно Истинно Минимум Реплики Доступно
      Продвижение True NewReplicaSetAvailable
    OldReplicaSets: <нет>
    NewReplicaSet: nginx-deployment-c4747d96c (создано 3/3 реплик)
    События:
      Тип Причина Возраст из сообщения
      ---- ------ ---- ---- -------
      Нормальный ScalingReplicaSet 12-метровый контроллер развертывания Масштабированная реплика для nginx-deployment-75675f5897 установлена ​​на 3
      Нормальный ScalingReplicaSet 11m deployment-controller Масштабируемая реплика устанавливает nginx-deployment-c4747d96c на 1
      Нормальный ScalingReplicaSet 11-метровый контроллер развертывания Уменьшенная реплика задает nginx-deployment-75675f5897 равным 2
      Нормальный ScalingReplicaSet 11-метровый контроллер развертывания Увеличенная реплика для nginx-deployment-c4747d96c задает значение 2
      Нормальный ScalingReplicaSet 11-метровый контроллер развертывания Уменьшенная реплика устанавливает nginx-deployment-75675f5897 на 1
      Нормальный ScalingReplicaSet 11m deployment-controller Масштабируемая реплика для nginx-deployment-c4747d96c установлена ​​на 3
      Нормальный ScalingReplicaSet 11-метровый контроллер развертывания Уменьшенная реплика задает для nginx-deployment-75675f5897 значение 0
      Нормальный ScalingReplicaSet 11m deployment-controller Масштабируемая реплика устанавливает nginx-deployment-595696685f равным 1
      Обычное развертываниеRollback 15s deployment-controller Откат развертывания «nginx-deployment» до версии 2
      Нормальный ScalingReplicaSet 15s deployment-controller Уменьшенная копия реплики устанавливает nginx-deployment-595696685f на 0
      

Масштабирование развертывания

Развертывание можно масштабировать с помощью следующей команды:

  kubectl scale deployment. v1.apps / nginx-развертывание --replicas = 10
  

Результат выглядит примерно так:

  deployment.apps / nginx-deployment scaled
  

Предполагается, что горизонтальное автоматическое масштабирование Pod включено
в своем кластере вы можете настроить автомасштабирование для своего развертывания и выбрать минимальное и максимальное количество
Модули, которые вы хотите запускать, в зависимости от загрузки ЦП существующих модулей.

  kubectl autoscale deployment.v1.apps / nginx-deployment --min = 10 --max = 15 --cpu-percent = 80
  

Результат похож на этот:

  развертывание.масштабируемое развертывание приложений / nginx
  

Пропорциональное масштабирование

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

Например, вы запускаете развертывание с 10 репликами, maxSurge = 3 и maxUnavailable = 2.

  • Убедитесь, что 10 реплик в вашем развертывании работают.

    Результат выглядит примерно так:

      НАЗВАНИЕ ЖЕЛАЕМОЕ ТЕКУЩЕЕ АКТУАЛЬНОЕ НАЗНАЧЕНИЕ ДОСТУПНЫЙ ВОЗРАСТ
    nginx-развертывание 10 10 10 10 50 с
      
  • Вы обновляете образ, который оказывается неразрешимым изнутри кластера.

      kubectl set image deployment.v1.apps / nginx-deployment nginx = nginx: sometag
      

    Результат выглядит примерно так:

      deployment.apps / nginx-deployment image обновлен
      
  • Обновление образа начинает новое развертывание с ReplicaSet nginx-deployment-19891, но оно заблокировано из-за
    maxUnavailable , о котором вы упомянули выше. Проверьте статус развертывания:

      Результат выглядит примерно так:
      
      НАИМЕНОВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
    nginx-развертывание-19891 5 5 0 9s
    nginx-развертывание-618515232 8 8 8 1 мес. 
      
  • Затем приходит новый запрос масштабирования для развертывания.Средство автомасштабирования увеличивает реплики развертывания
    — 15. Контроллер развертывания должен решить, куда добавить эти новые 5 реплик. Если бы вы не использовали
    пропорциональное масштабирование, все 5 из них будут добавлены в новый ReplicaSet. Благодаря пропорциональному масштабированию вы
    распределите дополнительные реплики по всем ReplicaSet. Большие пропорции идут в ReplicaSets с
    большинство реплик и меньшие пропорции переходят в ReplicaSets с меньшим количеством реплик. Любые остатки добавляются в
    ReplicaSet с наибольшим количеством реплик.ReplicaSets с нулевыми репликами не масштабируются.

В нашем примере выше 3 реплики добавляются к старому ReplicaSet и 2 реплики добавляются к
новый ReplicaSet. Процесс развертывания должен в конечном итоге переместить все реплики в новый ReplicaSet, предполагая, что
новые реплики становятся здоровыми. Чтобы убедиться в этом, введите:

. Результат будет примерно таким:

  НАЗВАНИЕ ЖЕЛАЕМОЕ ТЕКУЩЕЕ АКТУАЛЬНОЕ ДЕЙСТВИЕ ДОСТУПНЫЙ ВОЗРАСТ
nginx-развертывание 15 18 7 8 7 мес.
  

Статус развертывания подтверждает, как реплики были добавлены в каждый ReplicaSet.

Результат выглядит примерно так:

  НАЗВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
nginx-развертывание-19891 7 7 0 7м
nginx-развертывание-618515232 11 11 11 7 мес.
  

Приостановка и возобновление развертывания

Вы можете приостановить развертывание перед запуском одного или нескольких обновлений, а затем возобновить его. Это позволяет вам
применить несколько исправлений между приостановкой и возобновлением, не вызывая ненужных развертываний.

  • Например, с только что созданным развертыванием:
    Получите подробную информацию о развертывании:

    Результат выглядит примерно так:

      НАЗВАНИЕ ЖЕЛАЕМЫЙ ТЕКУЩИЙ АКТУАЛЬНЫЙ ДОСТУПНЫЙ ВОЗРАСТ
    nginx 3 3 3 3 1 мес. 
      

    Получите статус развертывания:

    Результат будет примерно таким:

      НАЗВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
    nginx-2142116321 3 3 3 1м
      
  • Приостановите выполнение следующей команды:

      kubectl rollout приостановить развертывание.v1.apps / nginx-развертывание
      

    Результат выглядит примерно так:

      deployment.apps / nginx-deployment приостановлен
      
  • Затем обновите образ развертывания:

      kubectl set image deployment.v1.apps / nginx-deployment nginx = nginx: 1.16.1
      

    Результат выглядит примерно так:

      deployment.apps / nginx-deployment image обновлен
      
  • Обратите внимание, что новое развертывание не началось:

      История развертывания kubectl.v1.apps / nginx-развертывание
      

    Результат выглядит примерно так:

      развертываний «nginx»
    ПЕРЕСМОТР ИЗМЕНЕНИЕ-ПРИЧИНА
    1 <нет>
      
  • Получите статус развертывания, чтобы убедиться, что развертывание успешно обновлено:

    Результат похож на этот:

      НАЗВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
    nginx-2142116321 3 3 3 2м
      
  • Вы можете производить столько обновлений, сколько хотите, например, обновлять ресурсы, которые будут использоваться:

      kubectl set resources deployment. v1.apps / nginx-deployment -c = nginx --limits = cpu = 200m, memory = 512Mi
      

    Результат выглядит примерно так:

      deployment.apps / nginx-deployment требования к ресурсам обновлены
      

    Исходное состояние развертывания до его приостановки будет продолжать свою функцию, но новые обновления для
    Развертывание не будет иметь никакого эффекта, пока Развертывание приостановлено.

  • В конце концов, возобновите развертывание и посмотрите, как новый ReplicaSet появится со всеми новыми обновлениями:

      kubectl rollout возобновляет развертывание.v1.apps / nginx-развертывание
      

    Результат примерно такой:

      deployment.apps / nginx-deployment возобновлен
      
  • Следите за статусом развертывания, пока оно не будет завершено.

    Результат выглядит примерно так:

      НАЗВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
    nginx-2142116321 2 2 2 2м
    nginx-3926361531 2 2 0 6с
    nginx-3926361531 2 2 1 18 с
    nginx-2142116321 1 2 2 2 мес. 
    nginx-2142116321 1 2 2 2 мес.
    nginx-3926361531 3 2 1 18 с
    nginx-3926361531 3 2 1 18 с
    nginx-2142116321 1 1 1 2 мес.
    nginx-3926361531 3 3 1 18 с
    nginx-3926361531 3 3 2 19с
    nginx-2142116321 0 1 1 2м
    nginx-2142116321 0 1 1 2м
    nginx-2142116321 0 0 0 2м
    nginx-3926361531 3 3 3 20с
      
  • Получите статус последнего развертывания:

    Результат будет примерно таким:

      НАЗВАНИЕ ЖЕЛАТЕЛЬНЫЙ ТЕКУЩИЙ ВОЗРАСТ ГОТОВНОСТИ
    nginx-2142116321 0 0 0 2м
    nginx-3926361531 3 3 3 28с
      

Примечание: Вы не можете откатить приостановленное развертывание, пока не возобновите его.

Состояние развертывания

Развертывание входит в различные состояния в течение своего жизненного цикла. Это может прогрессировать, пока
развертывание нового ReplicaSet может быть завершенным или не выполняться.

Продолжающееся развертывание

Kubernetes отмечает развертывание как продолжающееся , когда выполняется одна из следующих задач:

  • Развертывание создает новый ReplicaSet.
  • Развертывание расширяет свой новейший ReplicaSet.
  • Развертывание сокращает свои старые ReplicaSet (ы).
  • Новые модули становятся готовыми или доступными (по крайней мере, через MinReadySeconds).

Вы можете отслеживать ход развертывания, используя статус развертывания kubectl .

Полное развертывание

Kubernetes отмечает развертывание как завершенное , если оно имеет следующие характеристики:

  • Все реплики, связанные с развертыванием, были обновлены до последней указанной вами версии, то есть любой
    обновления, которые вы запрашивали, были завершены.
  • Доступны все реплики, связанные с развертыванием.
  • Старые реплики для развертывания не работают.

Вы можете проверить, завершено ли развертывание, используя статус развертывания kubectl . Если развертывание завершено
успешно, статус развертывания kubectl возвращает нулевой код выхода.

  статус развертывания kubectl развертывание / nginx-deployment
  

Результат выглядит примерно так:

  Ожидание завершения развертывания: доступны 2 из 3 обновленных реплик...
развертывание "nginx-deployment" успешно развернуто
  

, а статус выхода из развертывания kubectl равен 0 (успех):

  0
  

Неудачное развертывание

Развертывание может застрять при попытке развернуть новейший ReplicaSet без завершения. Это может произойти
из-за некоторых из следующих факторов:

  • Недостаточная квота
  • Сбои зонда готовности
  • Ошибки извлечения изображения
  • Недостаточные разрешения
  • Диапазоны ограничений
  • Неправильная конфигурация времени выполнения приложения

Один из способов обнаружения этого условия — указать параметр крайнего срока в спецификации развертывания:
(.spec.progressDeadlineSeconds ). .spec.progressDeadlineSeconds обозначает
количество секунд, в течение которых контроллер развертывания ожидает, прежде чем указать (в состоянии развертывания), что
Прогресс развертывания остановился.

Следующая команда kubectl устанавливает в спецификации значение progressDeadlineSeconds для создания отчета контроллера
отсутствие прогресса для развертывания через 10 минут:

  kubectl patch deployment.v1.apps / nginx-deployment -p '{"spec": {"progressDeadlineSeconds": 600}}'
  

Результат похож на этот:

  развертывание.приложения / nginx-deployment исправлены
  

После того, как крайний срок был превышен, контроллер развертывания добавляет условие развертывания со следующим
атрибуты развертывания .status.conditions :

  • Тип = Выполняется
  • Статус = False
  • Reason = ProgressDeadlineExceeded

Дополнительные сведения об условиях состояния см. в соглашениях API Kubernetes.

Примечание. Kubernetes не предпринимает никаких действий при остановленном развертывании, кроме как сообщать о состоянии состояния с помощью
Причина = ProgressDeadlineExceeded .Оркестраторы более высокого уровня могут воспользоваться этим и действовать соответствующим образом для
Например, откатить развертывание к предыдущей версии.

Примечание: Если вы приостанавливаете развертывание, Kubernetes не проверяет ход выполнения по указанному вами сроку.
Вы можете безопасно приостановить развертывание в середине развертывания и возобновить без запуска
условие превышения срока.

Вы можете столкнуться с временными ошибками в ваших развертываниях либо из-за установленного вами малого времени ожидания, либо
из-за любой другой ошибки, которую можно рассматривать как временную.Например, предположим, что у вас есть
недостаточная квота. Если вы опишете развертывание, вы заметите следующий раздел:

  kubectl описать развертывание nginx-deployment
  

Результат выглядит примерно так:

  <. ..>
Условия:
  Тип Статус Причина
  ---- ------ ------
  Доступно Истинно Минимум Реплики Доступно
  Обновление True ReplicaSetUpdated
  ReplicaFailure True FailedCreate
<...>
  

Если вы запустите kubectl get deployment nginx-deployment -o yaml , статус развертывания будет примерно таким:

  status:
  в наличии Реплики: 2
  условия:
  - lastTransitionTime: 2016-10-04T12: 25: 39Z
    lastUpdateTime: 2016-10-04T12: 25: 39Z
    сообщение: Набор реплик «nginx-deployment-4262182780» продолжается.причина: ReplicaSetUpdated
    статус: "Верно"
    тип: Прогрессирующий
  - lastTransitionTime: 2016-10-04T12: 25: 42Z
    lastUpdateTime: 2016-10-04T12: 25: 42Z
    сообщение: Развертывание имеет минимальную доступность.
    причина: MinimumReplicasAvailable
    статус: "Верно"
    тип: Доступен
  - lastTransitionTime: 2016-10-04T12: 25: 39Z
    lastUpdateTime: 2016-10-04T12: 25: 39Z
    сообщение: 'Ошибка при создании: поды «nginx-deployment-4262182780-» запрещены: превышена квота:
      количество объектов, запрошено: pods = 1, использовано: pods = 3, ограничено: pods = 2 '
    причина: FailedCreate
    статус: "Верно"
    тип: ReplicaFailure
  наблюдаемое поколение: 3
  реплик: 2
  недоступен Реплики: 2
  

В конце концов, когда крайний срок выполнения развертывания превышен, Kubernetes обновляет статус и
причина прогрессирующего состояния:

  Условия:
  Тип Статус Причина
  ---- ------ ------
  Доступно Истинно Минимум Реплики Доступно
  Прогресс Ложного Прогресса
  ReplicaFailure True FailedCreate
  

Вы можете решить проблему недостаточной квоты, уменьшив масштаб вашего развертывания, уменьшив другие
контроллеры, которые вы можете использовать, или увеличив квоту в вашем пространстве имен. Если вы удовлетворяете квоту
условия, и контроллер развертывания завершит развертывание, вы увидите
Обновление статуса развертывания с успешным условием ( Status = True и Reason = NewReplicaSetAvailable ).

  Условия:
  Тип Статус Причина
  ---- ------ ------
  Доступно Истинно Минимум Реплики Доступно
  Продвижение True NewReplicaSetAvailable
  

Тип = Доступен с Статусом = Истина означает, что ваше развертывание имеет минимальную доступность.Требуется минимальная доступность
по параметрам, указанным в стратегии развертывания. Type = Progressing with Status = True означает, что ваше развертывание
либо находится в середине развертывания и оно продолжается, либо оно успешно завершено и минимальный
имеются требуемые новые реплики (подробности см. в Причине условия — в нашем случае
Reason = NewReplicaSetAvailable означает, что развертывание завершено).

Вы можете проверить, не удалось ли выполнить развертывание, используя статус развертывания kubectl . Статус развертывания kubectl
возвращает ненулевой код выхода, если Развертывание превысило крайний срок выполнения.

  статус развертывания kubectl развертывание / nginx-deployment
  

Результат выглядит примерно так:

  Ожидание завершения развертывания: обновлены 2 из 3 новых реплик ...
ошибка: развертывание «nginx» превысило крайний срок выполнения
  

, а статус выхода из развертывания kubectl равен 1 (указывает на ошибку):

  1
  

Работа при неудачном развертывании

Все действия, применимые к полному развертыванию, также применимы к неудачному развертыванию.Можно масштабировать вверх / вниз, откатиться
к предыдущей версии или даже приостановите ее, если вам нужно применить несколько настроек в шаблоне модуля развертывания.

Политика очистки

Можно задать поле .spec.revisionHistoryLimit в развертывании, чтобы указать, сколько старых наборов реплик для
это развертывание, которое вы хотите сохранить. Остальное будет собрано в фоновом режиме. По умолчанию,
это 10.

Примечание: Явная установка этого поля на 0 приведет к очистке всей истории вашего развертывания.
таким образом, развертывание не сможет откатиться.

Canary Deployment

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

Написание спецификации развертывания

Как и для всех других конфигураций Kubernetes, для развертывания требуются поля .apiVersion , .kind и .metadata .
Для получения общей информации о работе с файлами конфигурации см.
развертывание приложений,
настройка контейнеров и использование kubectl для управления документами ресурсов.Имя объекта развертывания должно быть допустимым.
Имя поддомена DNS.

Для развертывания также требуется раздел . spec .

Pod Template

.spec.template и .spec.selector — единственные обязательные поля в .spec .

.spec.template — это шаблон Pod. Он имеет точно такую ​​же схему, что и Pod, за исключением того, что он вложен и не имеет apiVersion или типа .

В дополнение к обязательным полям для модуля, шаблон модуля в развертывании должен указывать соответствующие
метки и соответствующую политику перезапуска.Что касается этикеток, убедитесь, что они не перекрываются с другими контроллерами. См. Селектор.

Только .spec.template.spec.restartPolicy равно Всегда
разрешено, которое используется по умолчанию, если не указано.

Replicas

.spec.replicas - необязательное поле, в котором указывается количество требуемых модулей. По умолчанию это 1.

Селектор

.spec.selector - обязательное поле, которое определяет селектор меток.
для модулей, намеченных этим развертыванием.

.spec.selector должен соответствовать .spec.template.metadata.labels , в противном случае он будет отклонен API.

В версии API apps / v1 , .spec.selector и .metadata.labels не имеют значения по умолчанию .spec.template.metadata.labels , если не задано. Значит, они должны быть установлены явно. Также обратите внимание, что .spec.selector является неизменным после создания развертывания в apps / v1 .

Развертывание может завершать поды, метки которых совпадают с селектором, если их шаблон отличается
с .spec.template или, если общее количество таких Pod превышает .spec.replicas . Это приносит новые
Модули с .spec.template , если количество модулей меньше требуемого.

Примечание: Вы не должны создавать другие модули, чьи метки соответствуют этому селектору, напрямую, путем создания
другое развертывание или создав другой контроллер, например ReplicaSet или ReplicationController. если ты
сделайте так, первое развертывание думает, что оно создало эти другие поды.Kubernetes не мешает вам это делать.

Если у вас есть несколько контроллеров, у которых есть перекрывающиеся селекторы, контроллеры будут бороться с каждым
другое и не будет вести себя правильно.

Стратегия

.spec.strategy определяет стратегию, используемую для замены старых модулей новыми.
.spec.strategy.type может иметь значение «Воссоздать» или «Повторяющееся обновление». "RollingUpdate" - это
значение по умолчанию.

Повторное развертывание

Все существующие поды уничтожаются перед созданием новых при .spec.strategy.type == Восстановить .

Примечание: Это гарантирует только завершение работы Pod перед созданием обновлений. Если вы обновляете развертывание, все модули
старой ревизии будет немедленно прекращено. Ожидается успешное удаление до появления нового модуля.
ревизия создана. Если вы удаляете Pod вручную, жизненный цикл контролируется ReplicaSet и
замена будет создана немедленно (даже если старый модуль все еще находится в состоянии завершения). Если вам нужен
"максимум" гарантии для ваших модулей, вам следует подумать об использовании
StatefulSet.

Последовательное развертывание обновлений

Развертывание обновляет модули в непрерывном обновлении
мода когда .spec.strategy.type == RollingUpdate . Вы можете указать maxUnavailable и maxSurge для управления
непрерывный процесс обновления.

Max Unavailable

.spec.strategy.rollingUpdate.maxUnavailable - необязательное поле, в котором указывается максимальное количество
модулей, которые могут быть недоступны в процессе обновления. Значение может быть абсолютным числом (например, 5).
или процент желаемых пакетов (например, 10%).Абсолютное число рассчитывается из процента по
округление в меньшую сторону. Значение не может быть 0, если . spec.strategy.rollingUpdate.maxSurge равно 0. Значение по умолчанию - 25%.

Например, когда это значение установлено на 30%, старый ReplicaSet может быть уменьшен до 70% от желаемого.
Пакеты сразу после начала непрерывного обновления. Когда новые модули готовы, старый ReplicaSet можно масштабировать.
далее вниз с последующим масштабированием нового ReplicaSet, чтобы общее количество доступных модулей
все время во время обновления находится не менее 70% желаемых подов.

Max Surge

.spec.strategy.rollingUpdate.maxSurge - необязательное поле, в котором указывается максимальное количество модулей.
которые можно создать на желаемом количестве модулей. Значение может быть абсолютным числом (например, 5) или
процент желаемых капсул (например, 10%). Значение не может быть 0, если MaxUnavailable равно 0. Абсолютное число.
рассчитывается от процента путем округления в большую сторону. Значение по умолчанию - 25%.

Например, если это значение установлено на 30%, новый ReplicaSet может быть увеличен немедленно, когда
начинается непрерывное обновление, так что общее количество старых и новых Pod'ов не превышает 130% от желаемого
Стручки. После того, как старые модули будут уничтожены, новый ReplicaSet может быть дополнительно увеличен, гарантируя, что
общее количество модулей, работающих в любой момент во время обновления, составляет не более 130% от желаемых модулей.

Progress Deadline Seconds

.spec.progressDeadlineSeconds - это необязательное поле, в котором указывается желаемое количество секунд
чтобы дождаться завершения развертывания, прежде чем система сообщит, что развертывание
ошибка выполнения - отображается как условие с Type = Progressing , Status = False Reason = ProgressDeadlineExceeded в статусе ресурса. Контроллер развертывания сохранит
повторная попытка развертывания. По умолчанию - 600. В будущем, когда будет реализован автоматический откат, развертывание
Контроллер откатит развертывание, как только обнаружит такое состояние.

Если указано, это поле должно быть больше .spec.minReadySeconds .

Мин.

Секунд готовности

.spec.minReadySeconds - необязательное поле, указывающее минимальное количество секунд, в течение которых
Созданный Pod должен быть готов без сбоев ни одного из его контейнеров, чтобы он считался доступным.По умолчанию это 0 (модуль будет считаться доступным, как только он будет готов). Чтобы узнать больше о том, когда
Pod считается готовым, см. Контейнерные зонды.

Предел истории изменений

История изменений развертывания хранится в ReplicaSets, которыми он управляет.

.spec.revisionHistoryLimit - необязательное поле, в котором указывается количество старых наборов реплик, которые необходимо сохранить.
чтобы разрешить откат. Эти старые ReplicaSet потребляют ресурсы в etcd и вытесняют вывод kubectl и получают rs.Конфигурация каждой версии развертывания хранится в ее ReplicaSets; поэтому после удаления старого ReplicaSet вы теряете возможность отката к этой версии развертывания. По умолчанию будет сохранено 10 старых наборов реплик, однако его идеальное значение зависит от частоты и стабильности новых развертываний.

В частности, установка этого поля в ноль означает, что все старые ReplicaSet с 0 репликами будут очищены.
В этом случае новое развертывание развертывания нельзя отменить, поскольку его история изменений очищена.

Приостановлено

.spec.paused - необязательное логическое поле для приостановки и возобновления развертывания. Единственная разница между
приостановленное развертывание и одно, которое не приостановлено, заключается в том, что любые изменения в PodTemplateSpec приостановленного
Развертывание не приведет к запуску новых развертываний, пока оно приостановлено. По умолчанию развертывание не приостанавливается, когда
он создан.

Последнее изменение: 4 февраля 2021 г., 16:41 по тихоокеанскому времени: очистить использование слова: просто (3fd65482e)

Загрузить приложение Square | Центр поддержки Square

Приложение Square Point of Sale доступно на совместимых устройствах Apple iOS и Android. На данный момент Square не поддерживает устройства Windows, Blackberry и Amazon Fire.

Самый быстрый способ найти и загрузить приложение Square Point of Sale - это зайти на сайт squareup.com/app в интернет-браузере своего устройства или посетить Apple App Store, Android Google Play или Amazon Appstore.

Перед загрузкой приложения убедитесь, что у вас есть информация, необходимая для начала работы с Square, и что программное обеспечение вашего устройства обновлено.

Примечание : приложение Square Point of Sale бесплатное, но вам может потребоваться настроить платежную информацию в Apple, Google или Amazon, чтобы загружать приложения из их магазинов.

Загрузите приложение Square на устройство iOS

  1. Коснитесь значка App Store на своем iPhone, iPad или iPod.

  2. Коснитесь значка поиска (лупа) на панели навигации> найдите Square Point of Sale .

  3. Нажмите Получить рядом со значком приложения Square> нажмите Установить > введите пароль Apple ID или Touch ID.

  4. После загрузки нажмите Открыть или нажмите значок квадрата на главном экране, чтобы открыть.

Примечание : приложение Square Point of Sale совместимо только с устройствами под управлением iOS 11 и более поздних версий. Узнайте, как обновить программное обеспечение на устройстве iOS.

Если вам нужна помощь с идентификатором Apple ID, обратитесь в AppleCare.

Загрузите приложение Square на устройство Android

Загрузите приложение Square с помощью Google Play

  1. Коснитесь значка Google Play на своем устройстве.

  2. Коснитесь поля поиска или значка (увеличительного стекла)> найдите Square Point of Sale .

  3. Коснитесь результата Square Point of Sale> Установить > следуйте инструкциям на экране, чтобы завершить загрузку.

  4. После загрузки приложения нажмите Открыть или найдите значок квадрата на рабочем столе> откройте приложение.

Примечание : Если вам нужна помощь в настройке учетной записи Google, обратитесь в Справку Google.

Загрузите приложение Square с помощью Amazon Appstore

  1. Коснитесь значка Amazon Appstore на своем устройстве.

  2. Коснитесь поля поиска или значка (увеличительного стекла)> найдите Square Point of Sale .

  3. Коснитесь результата Square Point of Sale> Get > следуйте инструкциям на экране, чтобы завершить загрузку.

  4. После загрузки приложения нажмите Открыть или найдите значок квадрата на главном экране> откройте приложение.

Примечание: Если вам нужна помощь в настройке учетной записи Amazon, обратитесь в службу поддержки клиентов Amazon

Примечание. Хотя вы можете загрузить приложение Square из магазина приложений Amazon, приложение Square Point of Sale не поддерживается на таких устройствах Amazon, как Fire или Kindle.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *