LeaseCandidate v1alpha1
apiVersion: coordination.k8s.io/v1alpha1
import "k8s.io/api/coordination/v1alpha1"
LeaseCandidate
LeaseCandidate визначає кандидата для обʼєкта Lease. Кандидати створюються таким чином, щоб координований вибір лідера вибрав найкращого лідера з переліку кандидатів.
apiVersion: coordination.k8s.io/v1alpha1
kind: LeaseCandidate
metadata (ObjectMeta)
Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (LeaseCandidateSpec)
spec містить специфікацію Lease. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
LeaseCandidateSpec
LeaseCandidateSpec є специфікацією Lease.
leaseName (string), обовʼязково
LeaseName — це імʼя Lease, за який цей кандидат змагається. Це поле є незмінним.
preferredStrategies ([]string), обовʼязково
Atomic: буде замінено під час злиття
PreferredStrategies вказує на список стратегій для вибору лідера у координованому виборі лідера. Список упорядкований, і перша стратегія переважає всі інші стратегії. Цей список використовується координованим вибором лідера для прийняття рішення про остаточну стратегію виборів. Це передбачає:
- Якщо всі клієнти мають стратегію X як перший елемент у цьому списку, буде використана стратегія X.
- Якщо кандидат має стратегію [X], а інший кандидат має стратегію [Y, X], Y переважає X, і буде використана стратегія Y.
- Якщо кандидат має стратегію [X, Y], а інший кандидат має стратегію [Y, X], це є помилкою користувача, і вибір лідера не буде здійснюватися до вирішення проблеми.
(Альфа) Для використання цього поля потрібно увімкнути функціональну можливість CoordinatedLeaderElection.
binaryVersion (string)
BinaryVersion — це бінарна версія. Вона повинна бути у форматі semver без початкової
v
. Це поле є обовʼязковим, коли стратегія "OldestEmulationVersion".emulationVersion (string)
EmulationVersion —це версія емуляції. Вона повинна бути у форматі semver без початкової
v
. EmulationVersion повинна бути менше або дорівнювати BinaryVersion. Це поле є обовʼязковим, коли стратегія є "OldestEmulationVersion".pingTime (MicroTime)
PingTime — це останній час, коли сервер запитував LeaseCandidate на продовження. Це виконується лише під час вибору лідера, щоб перевірити, чи стали якісь LeaseCandidates недійсними. Коли PingTime оновлюється, LeaseCandidate відповідає, оновлюючи RenewTime.
renewTime (MicroTime)
RenewTime — це час, коли LeaseCandidate був востаннє оновлений. Щоразу, коли Lease потребує вибору лідера, поле PingTime оновлюється, щоб сигналізувати LeaseCandidate про необхідність оновлення RenewTime. Старі обʼєкти LeaseCandidate також видаляються, якщо пройшло кілька годин з моменту останнього оновлення. Поле PingTime регулярно оновлюється, щоб запобігти видаленню ще активних LeaseCandidates.
LeaseCandidateList
LeaseCandidateList — перелік обʼєктів Lease.
apiVersion: coordination.k8s.io/v1alpha1
kind: LeaseCandidateList
metadata (ListMeta)
Стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]LeaseCandidate), обовʼязково
items — список обʼєктів схеми.
Operations
get
отримати вказаного LeaseCandidate
HTTP запит
GET /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя LeaseCandidate
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (LeaseCandidate): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу LeaseCandidate
HTTP запит
GET /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates
Параметри
namespace (в шляху): string, обовʼязково
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (LeaseCandidateList): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу LeaseCandidate
HTTP запит
GET /apis/coordination.k8s.io/v1alpha1/leasecandidates
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (LeaseCandidateList): OK
401: Unauthorized
create
створення LeaseCandidate
HTTP запит
POST /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates
Параметри
namespace (в шляху): string, обовʼязково
body: LeaseCandidate, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (LeaseCandidate): OK
201 (LeaseCandidate): Created
202 (LeaseCandidate): Accepted
401: Unauthorized
update
заміна вказаного LeaseCandidate
HTTP запит
PUT /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}
Параметри
name (в шляху): string, обовʼязково
name of the LeaseCandidate
namespace (в шляху): string, обовʼязково
body: LeaseCandidate, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (LeaseCandidate): OK
201 (LeaseCandidate): Created
401: Unauthorized
patch
часткове оновлення вказаного LeaseCandidate
HTTP запит
PATCH /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}
Параметри
name (в шляху): string, обовʼязково
name of the LeaseCandidate
namespace (в шляху): string, обовʼязково
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (LeaseCandidate): OK
201 (LeaseCandidate): Created
401: Unauthorized
delete
видалення LeaseCandidate
HTTP запит
DELETE /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}
Параметри
name (в шляху): string, обовʼязково
name of the LeaseCandidate
namespace (в шляху): string, обовʼязково
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції LeaseCandidate
HTTP запит
DELETE /apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates
Параметри
namespace (в шляху): string, обовʼязково
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
Відповідь
200 (Status): OK
401: Unauthorized