Ця стаття була опублікована більше року тому. Старіші статті можуть містити застарілу інформацію. Перевірте, чи інформація на цій сторінці не втратила актуальності з моменту її публікації.
Kubernetes v1.34: Налаштування користувача (kuberc) доступні для тестування в kubectl 1.34
Чи хотіли ви коли-небудь мати типово увімкнене інтерактивне видалення у kubectl? Або, можливо, ви хочете визначити власні псевдоніми, але не обовʼязково генерувати сотні з них вручну? Більше не шукайте. SIG-CLI наполегливо працює над додаванням налаштувань користувача до kubectl, і ми раді оголосити, що ця функціональність досягає бета-версії в рамках випуску Kubernetes v1.34.
Як це працює
Повний опис цієї функціональності доступний в нашій офіційній документації, але в цьому дописі ми відповімо на обидва питання з початку цієї статті.
Перед тим, як зануритися в деталі, давайте швидко розглянемо, як виглядає файл налаштувань користувача та де його розмістити. Типово kubectl буде шукати файл kuberc у вашій типовій теці kubeconfig, яка знаходиться за адресою $HOME/.kube. Або ж ви можете вказати це місце за допомогою параметра --kuberc або змінної середовища KUBERC.
Як і кожен маніфест Kubernetes, файл kuberc почнеться з apiVersion та kind:
apiVersion: kubectl.config.k8s.io/v1beta1
kind: Preference
# тут будуть відображатися налаштування користувача
Типові значення
Почнемо з налаштування типових значень для параметрів команд kubectl. Наша мета — завжди використовувати інтерактивне видалення, що означає, що ми хочемо, щоб параметр --interactive для kubectl delete завжди був встановлений на true. Це можна досягти, додавши такий фрагмент до нашого файлу kuberc:
defaults:
- command: delete
options:
- name: interactive
default: "true"
У наведеному прикладі я додаю розділ defaults, який дозволяє користувачам визначати типові значення для параметрів kubectl. У цьому випадку ми типово встановлюємо параметр інтерактивності для kubectl delete на true. Це значення можна перевизначити, якщо користувач явно надає інше значення, наприклад, kubectl delete --interactive=false, в цьому випадку явний параметр має пріоритет.
Ще одне дуже рекомендоване типове значення від SIG-CLI — це використання Server-Side Apply. Щоб це зробити, ви можете додати такий фрагмент до ваших налаштувань:
# продовження розділу defaults
- command: apply
options:
- name: server-side
default: "true"
Псевдоніми
Можливість визначати псевдоніми дозволяє нам заощаджувати дорогоцінні секунди під час введення команд. Я впевнений, що ви, напевно, маєте один визначений для kubectl, оскільки введення семи літер безумовно займає більше часу, ніж просто натискання k.
З цієї причини можливість визначати псевдоніми була обовʼязковою, коли ми вирішили реалізувати налаштування користувача, поряд із типовими значеннями. Щоб визначити псевдонім для будь-якої з вбудованих команд, розширте свій файл kuberc таким чином:
aliases:
- name: gns
command: get
prependArgs:
- namespace
options:
- name: output
default: json
Там багато чого відбувається, тому давайте розберемо це по черзі. По-перше, ми вводимо новий розділ: aliases. Тут ми визначаємо новий псевдонім gns, який відображається на команду get. Далі ми визначаємо аргументи (ресурс namespace), які будуть вставлені відразу після назви команди. Крім того, ми встановлюємо опцію --output=json для цього псевдоніма. Структура блоку options ідентична тій, що в розділі defaults.
Ви, напевно, помітили, що ми представили механізм для попереднього додавання аргументів, і ви можете запитати, чи є відповідне налаштування для їх додавання в кінці (іншими словами, додавання в кінець команди, після аргументів, наданих користувачем). Це можна досягти за допомогою блоку appendArgs, який представлений нижче:
# продовження розділу aliases
- name: runx
command: run
options:
- name: image
default: busybox
- name: namespace
default: test-ns
appendArgs:
- --
- custom-arg
Тут ми вводимо ще один псевдонім: runx, який викликає команду kubectl run, передаючи параметри --image і --namespace з попередньо визначеними значеннями, а також додаючи -- і custom-arg в кінці виклику.
Відлагодження
Ми сподіваємося, що налаштування користувача kubectl відкриє нові можливості для наших користувачів. Коли у вас виникають сумніви, не соромтеся запускати kubectl з підвищеною докладністю виводу. При -v=5 ви повинні отримати всю можливу інформацію для відлагодження з цієї можливості, що буде важливо при повідомленні про проблеми.
Щоб дізнатися більше, я закликаю вас ознайомитися з нашою офіційною документацією та фактичною пропозицією.
Долучайтесь
Можливість налаштувань користувача kubectl досягла бета-версії, і ми дуже зацікавлені у ваших відгуках. Нам хотілося б почути, що вам подобається в ній і які проблеми ви хотіли б, щоб вона розвʼязувала. Не соромтеся приєднуватися до каналу SIG-CLI slack, або відкривати тікети в репозиторії kubectl. Ви також можете приєднатися до наших зустрічей спільноти, які відбуваються кожну другу середу, і поділитися своїми історіями з нами.