<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.cless.pro/index.php?action=history&amp;feed=atom&amp;title=Kubernetes._ReplicaSet._%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C_Pods</id>
	<title>Kubernetes. ReplicaSet. Отказоустойчивость Pods - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cless.pro/index.php?action=history&amp;feed=atom&amp;title=Kubernetes._ReplicaSet._%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C_Pods"/>
	<link rel="alternate" type="text/html" href="https://wiki.cless.pro/index.php?title=Kubernetes._ReplicaSet._%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C_Pods&amp;action=history"/>
	<updated>2026-10-22T22:47:09Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://wiki.cless.pro/index.php?title=Kubernetes._ReplicaSet._%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C_Pods&amp;diff=972&amp;oldid=prev</id>
		<title>Cless: Новая страница: «== Описание == Создадим несколько подов с nginx. Для этого нужно использовать другую абстрак...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.cless.pro/index.php?title=Kubernetes._ReplicaSet._%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C_Pods&amp;diff=972&amp;oldid=prev"/>
		<updated>2022-08-05T07:03:27Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Описание == Создадим несколько подов с nginx. Для этого нужно использовать другую абстрак...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Описание ==&lt;br /&gt;
Создадим несколько подов с nginx. Для этого нужно использовать другую абстракцию Kubernetes. ReplicaSet следит за количеством подов по шаблону, который мы указываем. В этом шаблоне мы можем указать метку нашего приложения, в моем примере это my-nginx, и количество запущенных реплик.&lt;br /&gt;
&lt;br /&gt;
== Настройка ==&lt;br /&gt;
&amp;lt;code&amp;gt;nano ./replicaset-nginx.yaml&amp;lt;/code&amp;gt;&lt;br /&gt;
 apiVersion: apps/v1&lt;br /&gt;
 kind: ReplicaSet&lt;br /&gt;
 metadata:&lt;br /&gt;
   name: replicaset-nginx&lt;br /&gt;
 spec:&lt;br /&gt;
   replicas: 2&lt;br /&gt;
   selector:&lt;br /&gt;
     matchLabels:&lt;br /&gt;
       app: my-nginx&lt;br /&gt;
   template:&lt;br /&gt;
     metadata:&lt;br /&gt;
       labels:&lt;br /&gt;
         app: my-nginx&lt;br /&gt;
     spec:&lt;br /&gt;
       containers:&lt;br /&gt;
       - image: nginx:1.16&lt;br /&gt;
         name: nginx&lt;br /&gt;
         ports:&lt;br /&gt;
         - containerPort: 80&lt;br /&gt;
&amp;lt;code&amp;gt;Запускаем replicaset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl apply -f replicaset-nginx.yaml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем, что получилось&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get replicaset&amp;lt;/code&amp;gt;&lt;br /&gt;
 NAME               DESIRED   CURRENT   READY   AGE&lt;br /&gt;
 replicaset-nginx   2         2         2       18m&lt;br /&gt;
Нам нужно было 2 реплики и мы их получили. С помощью edit мы можем на ходу редактировать replicaset, к примеру, добавляя количество реплик&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl edit replicaset replicaset-nginx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Репликасет сама следит за количеством запущенных подов. Если один из них по какой-то причине упадет или будет удален, она поднимет его заново. Можете проверить это сами, вручную удалив один из подов. Спустя некоторое время он появится снова.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get pod&amp;lt;/code&amp;gt;&lt;br /&gt;
 NAME                     READY   STATUS    RESTARTS   AGE&lt;br /&gt;
 pod-nginx                1/1     Running   0          15m&lt;br /&gt;
 replicaset-nginx-f87qf   1/1     Running   0          22m&lt;br /&gt;
 replicaset-nginx-mr4kw   1/1     Running   0          22m&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl delete pod replicaset-nginx-f87qf&amp;lt;/code&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 pod &amp;quot;replicaset-nginx-f87qf&amp;quot; deleted&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get replicaset&amp;lt;/code&amp;gt;&lt;br /&gt;
 NAME               DESIRED   CURRENT   READY   AGE&lt;br /&gt;
 replicaset-nginx   2         2         2       23m&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get pod&amp;lt;/code&amp;gt;&lt;br /&gt;
 NAME                     READY   STATUS    RESTARTS   AGE&lt;br /&gt;
 pod-nginx                1/1     Running   0          16m&lt;br /&gt;
 replicaset-nginx-g4l58   1/1     Running   0          14s&lt;br /&gt;
 replicaset-nginx-mr4kw   1/1     Running   0          23m&lt;br /&gt;
Я удалил replicaset-nginx-f87qf, вместо него тут же был запущен новый replicaset-nginx-g4l58. Наглядный пример одного из механизмов отказоустойчивости в кластере kubernetes на уровне подов. Кубернетис будет следить за количеством реплик на основе их label. Если вы через replicaset указали запустить 2 реплики приложения с меткой my-nginx, ни меньше, ни больше подов с этой меткой вы запустить не сможете. Если вы вручную запустите pod с меткой my-nginx, он будет тут же завершен, если у вас уже есть 2 пода с такими метками от replicaset.&lt;br /&gt;
&lt;br /&gt;
Replicaset запускает поды на разных нодах. Проверить это можно, посмотрев расширенную информацию о подах.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get pod -o wide&amp;lt;/code&amp;gt;&lt;br /&gt;
 NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES&lt;br /&gt;
 replicaset-nginx-cmfnh   1/1     Running   0          2m26s    10.233.67.6   kub-node-1   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;&lt;br /&gt;
 replicaset-nginx-vgxfl   1/1     Running   0          2m26s    10.233.68.4   kub-node-2   &amp;lt;none&amp;gt;           &amp;lt;none&amp;gt;&lt;br /&gt;
Таким образом, если у вас одна нода выйдет из строя, кластер автоматически запустит умершие поды на новых нодах. При этом, если нода вернется обратно с запущенными подами на ней, kubernetes автоматически прибьет лишние поды, чтобы их максимальное количество соответствовало информации из шаблона replicaset.&lt;br /&gt;
&lt;br /&gt;
Удаляются replicaset так же как и поды.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl delete rs replicaset-nginx&amp;lt;/code&amp;gt;&lt;br /&gt;
 replicaset.extensions &amp;quot;replicaset-nginx&amp;quot; deleted&lt;br /&gt;
Вместо длинного replicaset я использовал сокращение rs. Это бывает удобно для абстракций с длинными названиями. Для всех них кубернетис поддерживает сокращения.&lt;br /&gt;
[[Категория:Kubernetes]]&lt;br /&gt;
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__&lt;/div&gt;</summary>
		<author><name>Cless</name></author>
	</entry>
</feed>