Разница между развертыванием Kubernetes и StatefulSet [дубликат]

[Д2] 1. Разделить URL-адрес на структурные части. Для этого используйте java.net.URL.

2. Кодируйте каждую структурную часть правильно!

3. Использовать IDN.toASCII(putDomainNameHere) - Punycode кодировать имя хоста!

4. Используйте java.net.URI.toASCIIString() для процентного кодирования, кодированного в кодировке NFC unicode - (лучше было бы NFKC!). Для получения дополнительной информации см.: Как правильно закодировать этот URL

URL url= new URL("http://example.com/query?q=random word £500 bank $");
URI uri = new URI(url.getProtocol(), url.getUserInfo(), IDN.toASCII(url.getHost()), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
String correctEncodedURL=uri.toASCIIString(); 
System.out.println(correctEncodedURL);

Печать

http://example.com/query?q=random%20word%20%C2%A3500%20bank%20$

22
задан SS781 11 January 2017 в 06:57
поделиться

2 ответа

Развертывания и ReplicationControllers предназначены для использования без гражданства и являются довольно легкими. StatefulSets используются, когда состояние должно сохраняться. Поэтому последние используют volumeClaimTemplates / претензий к постоянным томам, чтобы гарантировать, что они смогут сохранить состояние через перезагрузки компонентов.

Итак, если ваше приложение имеет статус stateful или если вы хотите развернуть хранилище с сохранением состояния поверх Kubernetes, используйте StatefulSet.

Если ваше приложение не имеет статуса или если состояние может быть создано из бэкэнд-систем во время старта, используйте Deployments.

Более подробную информацию можно найти здесь и здесь .

22
ответ дан Dan 19 August 2018 в 04:14
поделиться
  • 1
    Я также могу подключить контейнеры для развертывания с постоянными требованиями к объемам и быть в безопасности. – Torsten Bronger 30 June 2017 в 17:27
  • 2
    @TorstenBronger Я согласен - в какой момент мы вернемся к первоначальному вопросу о том, что является пунктом StatefulSets? – HDave 25 September 2017 в 20:08
  • 3
    @HDave С динамическими постоянными томами и быстроразвивающимися поставщиками хранилищ (такими как Portworx, OpenEBS) проблема сохранения данных может быть решена, но порядок именования и запуска / обновления по-прежнему отличается от StatefulSets, что позволяет приложениям, которым требуется мастер / ведомый или другая настройка для правильно сформировать кластер. Хотя я согласен с тем, что, возможно, все это может быть сложено в одну конфигурацию deployment с простой спецификацией для установки 1-на-узел (daemonset), реплики или упорядочение по состоянию. – Mani Gandham 2 October 2017 в 18:52
  • 4
    Важно реализовать «порядок запуска / обновления», (например, 1, 2, 3 ...) - не разные стручки (т. е. web, srv, db и т. д.). Иными словами, это не замена для зависимостей между докерерами. – HDave 6 October 2017 в 20:35

Используйте «StatefulSet» с распределенным приложением, которое требует, чтобы каждый узел имел постоянное состояние и возможность настраивать произвольное количество узлов через конфигурацию (replicas = 'X').

Все узлы в конфигурации мастер-мастер и подчиненные узлы в конфигурации ведущий-ведомый может использовать StatefulSet вместе с Сервисом. Главные узлы (например, master, master-secondary) могут представлять собой Pod с некоторым постоянным объемом вместе с Сервисом, поскольку эти узлы не нуждаются в масштабировании вверх или вниз. Они также могут быть StatefulSet с репликами = 1.

Примеры StatefulSet: - Datanodes (slaves) в кластере Hadoop (master-slave) - узлы базы данных (мастер-мастер) в кластере Cassandra

Каждая Pod (копия) в StatefulSet имеет - Уникальное и стабильное сетевое удостоверение - Kubernetes создает один PersistentVolume для каждого VolumeClaimTemplate https://kubernetes.io/docs/concepts/workloads/controllers/ statefulset /

«Развертывание», с другой стороны, подходит для приложений и служб без состояния, где узлы не требуют какой-либо специальной идентификации (балансировщик нагрузки может достигать любого выбранного узла) и число узлов может быть произвольным числом.

4
ответ дан Anurag 19 August 2018 в 04:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: