ການກຳນົດຄ່າ kubelet ທີ່ຢືດຢຸ່ນ

Bradley G Smith, Version F39,F40,F41 Last review: 2024-07-28

ໜ້ານີ້ອະທິບາຍກ່ຽວກັບແຫຼ່ງຊອບແວຈາກພາກສ່ວນທີສາມ ທີ່ບໍ່ມີສ່ວນກ່ຽວຂ້ອງ ຫຼື ໄດ້ຮັບການຮັບຮອງຢ່າງເປັນທາງການຈາກໂຄງການ Fedora.ກະລຸນານຳໃຊ້ດ້ວຍການຕັດສິນໃຈຂອງທ່ານເອງ.Fedora ແນະນຳໃຫ້ໃຊ້ຊອບແວເສລີ ແລະ ໂອເພນຊອດ ແລະ ໃຫ້ຫຼີກເວັ້ນຊອບແວທີ່ມີຂໍ້ຈຳກັດດ້ານສິດທິບັດ.

ພາບລວມຂອງ kubelet

ໃນເວີຊັນຫຼ້າສຸດຂອງ ```kubelet```, ແຟລັກເຫຼົ່ານີ້ແມ່ນບໍ່ຖືກແນະນຳໃຫ້ນຳໃຊ້ (deprecated) ເພື່ອປ່ຽນມາໃຊ້ link:https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/[ໄຟລ໌ການກຳນົດຄ່າ] ທີ່ໃຊ້ຮູບແບບ JSON ຫຼື YAML ສຳລັບໄວຍາກອນການກຳນົດຄ່າ.

ໄຟລ໌ rpm ແບບເກົ່າທີ່ບໍ່ມີການລະບຸເວີຊັນ ຈະໃຊ້ແຟລັກເພື່ອການກຳນົດຄ່າ ```kubelet``` ໂດຍຄ່າເລີ່ມຕົ້ນ. ສ່ວນ rpm ທີ່ມີເວີຊັນ ຈະໃຊ້ວິທີການກຳນົດຄ່າຜ່ານໄຟລ໌.

ທັງ rpm ແບບທີ່ມີເວີຊັນ ແລະ ບໍ່ມີເວີຊັນ, ໄຟລ໌ທັງໝົດ ລວມທັງໄຟລ໌ທີ່ກ່ຽວຂ້ອງກັບ systemd, ອາດຈະຖືກລຶບອອກ ໃນລະຫວ່າງການອັບເດດເວີຊັນ (_ຕົວຢ່າງ_ ຈາກ kubernetes1.29 ເປັນ kubernetes1.30 - ການອັບເດດເວີຊັນຍ່ອຍ). ຖ້າໄຟລ໌ເຫຼົ່ານີ້ຖືກແກ້ໄຂໂດຍຜູ້ໃຊ້, ມັນກໍ່ມີຄວາມສ່ຽງທີ່ການປ່ຽນແປງທີ່ມີປະໂຫຍດ ຫຼື ສຳຄັນຈະສູນຫາຍໄປ. Systemd ມີຕົວເລືອກທີ່ຊ່ວຍປ້ອງກັນການສູນຫາຍຂອງການກຳນົດຄ່າສະເພາະຂອງແຕ່ລະໂນດ.

[[systemd]]
== ຄຳແນະນຳໃນການກຳນົດຄ່າ Systemd

ແຟລັກສຳລັບ ```kubelet``` ທີ່ເຮັດວຽກຢູ່ໃນໂນດ ແມ່ນຖືກຕັ້ງໄວ້ໃນໄຟລ໌ unit ຂອງ systemd ໂດຍທີ່ໄຟລ໌ທີ່ກ່ຽວຂ້ອງນັ້ນຈະຂຶ້ນກັບວ່າ rpm ໃດຖືກຕິດຕັ້ງໄວ້.

kubernetes rpm (_ຕົວຢ່າງ_ kubernetes1.30 ສຳລັບເວີຊັນ 1.30) ຈະຕິດຕັ້ງໄຟລ໌ systemd ຂອງ ```kubelet``` ໄວ້ທີ່:

[source, bash]
----
/usr/lib/systemd/system/kubelet.service
----

kubernetes-kubeadm rpm ຈະຕິດຕັ້ງໄຟລ໌ unit ຂອງ ```kubelet``` ທີ່ເປັນການຂຽນທັບ (overriding) ໄວ້ທີ່:

[source, bash]
----
/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
----

ພວກເຮົາຂໍແນະນຳຢ່າງເດັດຂາດວ່າ *ບໍ່ຄວນ* ແກ້ໄຂໄຟລ໌ໃດໜຶ່ງ ເພາະການປ່ຽນແປງຕ່າງໆອາດຈະສູນຫາຍໃນລະຫວ່າງການອັບເດດ.

ຕາມທີ່ໄດ້ລະບຸໄວ້ໃນເອກະສານໂດຍທີມງານ Kubernetes (link:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/kubelet-integration/#the-kubelet-drop-in-file-for-systemd)[https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/kubelet-integration/#the-kubelet-drop-in-file-for-systemd]), ໃຫ້ສ້າງໄດເຣັກທໍຣີຕໍ່ໄປນີ້ ສຳລັບການຂຽນທັບ (overrides) ```kubelet``` ຂອງ systemd ໃນລະດັບລະບົບທີ່ຈັດການໂດຍຜູ້ໃຊ້:

[source, bash]
----
$ sudo mkdir -p /etc/systemd/system/kubelet.service.d/
----

ຈາກນັ້ນໃຫ້ສ້າງໄຟລ໌ unit (ຕ້ອງມີນາມສະກຸນ ```.conf```) ແລະ ສຳເນົາໄຟລ໌ນັ້ນໄປຍັງໄດເຣັກທໍຣີທີ່ລະບຸໄວ້ຂ້າງເທິງ. ການຕັ້ງຄ່າໃນໄຟລ໌ນີ້ຈະຂຽນທັບການຕັ້ງຄ່າຈາກໄຟລ໌ systemd ເລີ່ມຕົ້ນທັງສອງ ຫຼື ໄຟລ໌ໃດໜຶ່ງ.

ໄຟລ໌ນີ້ບໍ່ໄດ້ຖືກຈັດການໂດຍຕົວຈັດການແພັກເກດຂອງລະບົບ ແລະ ຈະບໍ່ມີການປ່ຽນແປງເມື່ອມີການອັບເດດເວີຊັນຂອງ kubernetes. ໃຫ້ແນ່ໃຈວ່າມີການຄວບຄຸມເວີຊັນຂອງຊອບແວ ແລະ/ຫຼື ມີແຜນການສຳຮອງຂໍ້ມູນໄວ້ ເພື່ອຫຼີກເວັ້ນການສູນຫາຍໃນລະຫວ່າງການອັບເກຣດລະບົບ Fedora ຫຼື ເມື່ອລະບົບຂັດຂ້ອງ.

[[configfile]]
== ຄຳແນະນຳກ່ຽວກັບໄຟລ໌ການກຳນົດຄ່າ

ທຸກໆ kubernetes rpm ແບບທີ່ມີເວີຊັນ ຈະໃຊ້ໄຟລ໌ການກຳນົດຄ່າ ```kubelet``` ໂດຍຄ່າເລີ່ມຕົ້ນ. ຖ້າໄຟລ໌ນີ້ບໍ່ມີຢູ່, ມັນຈະຖືກສ້າງຂຶ້ນໃນລະຫວ່າງຂະບວນການເລີ່ມຕົ້ນຂອງກຸ່ມເຄື່ອງ (cluster instantiation). ສະຖານທີ່ເກັບໄຟລ໌ການກຳນົດຄ່າເລີ່ມຕົ້ນແມ່ນ:

[source, bash]
----
# ໄຟລ໌ການກຳນົດຄ່າເລີ່ມຕົ້ນ
$ /var/lib/kubelet/config.yaml
----

ໄຟລ໌ນີ້ແມ່ນ *ບໍ່ໄດ້* ຖືກຈັດການໂດຍ rpm ດັ່ງນັ້ນມັນຈະຍັງຄົງຢູ່ເຖິງແມ່ນວ່າຈະມີການອັບເກຣດ kubernetes.

[[configfile-dropin]]
=== ໄຟລ໌ການກຳນົດຄ່າແບບ Drop-in

Kubernetes 1.30 ແລະ ເວີຊັນທີ່ໃໝ່ກວ່າ ມີຕົວເລືອກໄຟລ໌ການກຳນົດຄ່າແບບ drop-in ເຊິ່ງ *ບໍ່ໄດ້* ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ. ໃນໄຟລ໌ systemd ໃຫ້ກຳນົດເສັ້ນທາງ (path) ໂດຍໃຊ້ຕົວເລືອກ ```--config-dir```:

[source, bash]
----
# ກຳນົດ configdir
--config-dir=/etc/kubernetes/kubelet.conf.d
----

ເບິ່ງ link:https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/#kubelet-conf-d[ເອກະສານອອນໄລນ໌] ສຳລັບຂໍ້ມູນປັດຈຸບັນ ລວມທັງຕົວເລືອກໃນການເປີດໃຊ້ຄຸນສົມບັດນີ້ສຳລັບ v1.28 ຫຼື v1.29.

[[configfile-merge-order]]
=== ລຳດັບການຮວມໄຟລ໌ການກຳນົດຄ່າ

ເມື່ອ ```kubelet``` ເລີ່ມເຮັດວຽກ, ການຕັ້ງຄ່າຕ່າງໆຈະຖືກຮວມເຂົ້າກັນຕາມລຳດັບຕໍ່ໄປນີ້ (link:https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/#kubelet-configuration-merging-order[ເອກະສານກ່ຽວກັບລຳດັບການຮວມ]):

. Feature gates ທີ່ຖືກລະບຸຜ່ານຄຳສັ່ງ (command line) (ມີລຳດັບຄວາມສຳຄັນຕ່ຳສຸດ).
. ການກຳນົດຄ່າ kubelet.
. ໄຟລ໌ການກຳນົດຄ່າແບບ Drop-in, ຕາມລຳດັບການຈັດລຽງ.
. ອາຄິວເມັນຂອງຄຳສັ່ງ (command line arguments) ທີ່ບໍ່ລວມ feature gates (ມີລຳດັບຄວາມສຳຄັນສູງສຸດ).