ວິທີການຈັດວາງ Nginx ໃນກຸ່ມກຸ່ມ Kubernetes
ໃນບົດຂຽນສຸດທ້າຍຂອງພວກເຮົາ, ພວກເຮົາໄດ້ປຶກສາຫາລືກ່ຽວກັບວິທີການຕັ້ງແລະ ດຳ ເນີນງານກຸ່ມບໍລິສັດ Kubernetes Cluster, ໃຫ້ສົນທະນາກ່ຽວກັບວິທີທີ່ພວກເຮົາສາມາດ ນຳ ໃຊ້ບໍລິການ NGINX ໃສ່ກຸ່ມບ້ານຂອງພວກເຮົາ.
ຂ້ອຍຈະ ດຳ ເນີນການປະຕິບັດ ໜ້າ ທີ່ນີ້ຢູ່ໃນເຄື່ອງ Virtual Virtual Hosted ໂດຍຜູ້ໃຫ້ບໍລິການຟັງສາທາລະນະ. ເຊັ່ນດຽວກັບການບໍລິການຟັງສາທາລະນະຫຼາຍ, ໂດຍທົ່ວໄປແລ້ວຫຼາຍຄົນຍັງຄົງຮັກສາລະບົບ IP ຂອງລັດແລະເອກະຊົນ ສຳ ລັບ Virtual Machine ຂອງພວກເຂົາ.
Master Node - Public IP: 104.197.170.99 and Private IP: 10.128.15.195 Worker Node 1 - Public IP: 34.67.149.37 and Private IP: 10.128.15.196 Worker Node 2 - Public IP: 35.232.161.178 and Private IP: 10.128.15.197
ການ ນຳ ໃຊ້ NGINX ໃນກຸ່ມ Kubernetes Cluster
ພວກເຮົາຈະ ດຳ ເນີນການປະຕິບັດ ໜ້າ ທີ່ນີ້ຈາກ master-node.
ເລີ່ມຕົ້ນໂດຍການກວດສອບສະຖານະຂອງກຸ່ມ. ທຸກໆຂໍ້ຂອງທ່ານຄວນຈະຢູ່ໃນສະຖານະການອ່ານ.
# kubectl get nodes
ພວກເຮົາສ້າງການ ນຳ ໃຊ້ NGINX ໂດຍໃຊ້ຮູບ NGINX.
# kubectl create deployment nginx --image=nginx
ດຽວນີ້ທ່ານສາມາດເຫັນສະພາບການໃຊ້ງານຂອງທ່ານໄດ້.
# kubectl get deployments
ຖ້າທ່ານຕ້ອງການເບິ່ງລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການຈັດສົ່ງຂອງທ່ານ, ທ່ານສາມາດ ດຳ ເນີນການ ຄຳ ສັ່ງອະທິບາຍ. ຍົກຕົວຢ່າງ, ມັນເປັນໄປໄດ້ທີ່ຈະ ກຳ ນົດ ຈຳ ນວນການ ຈຳ ໜ່າຍ ທີ່ ກຳ ລັງ ດຳ ເນີນງານ. ໃນກໍລະນີຂອງພວກເຮົາ, ພວກເຮົາຄາດຫວັງວ່າຈະມີການເຮັດຊ້ ຳ ຊ້ອນຂອງ 1 ແລ່ນ (i.e 1/1 ຈຳ ລອງ).
# kubectl describe deployment nginx
ດຽວນີ້ການ ນຳ ໃຊ້ Nginx ຂອງທ່ານມີການເຄື່ອນໄຫວແລ້ວ, ທ່ານອາດຈະຕ້ອງການເປີດເຜີຍບໍລິການ NGINX ໃຫ້ກັບ IP ສາທາລະນະທີ່ສາມາດເຂົ້າເຖິງໄດ້ໃນອິນເຕີເນັດ.
Kubernetes ມີຫຼາຍທາງເລືອກໃນການເປີດເຜີຍບໍລິການຂອງທ່ານໂດຍອີງໃສ່ຄຸນລັກສະນະ ໜຶ່ງ ທີ່ເອີ້ນວ່າ Kubernetes Service-types ແລະພວກມັນແມ່ນ:
<
ປະເພດຄ່າບໍລິການແບບເດີມແມ່ນ ClusterIP.
ໃນສະຖານະການຂອງພວກເຮົາ, ພວກເຮົາຕ້ອງການໃຊ້ NodePort Service-type ເພາະວ່າພວກເຮົາມີທີ່ຢູ່ IP ທັງພາກລັດແລະເອກະຊົນແລະພວກເຮົາບໍ່ ຈຳ ເປັນຕ້ອງມີດຸ່ນດ່ຽງການໂຫຼດພາຍນອກໃນເວລານີ້. ດ້ວຍປະເພດການບໍລິການນີ້, Kubernetes ຈະມອບ ໝາຍ ບໍລິການນີ້ຢູ່ທ່າເຮືອໃນຂອບເຂດ 30000+.
# kubectl create service nodeport nginx --tcp=80:80
ດໍາເນີນການຮັບຄໍາສັ່ງ svc ເພື່ອເບິ່ງບົດສະຫຼຸບຂອງການບໍລິການແລະທ່າເຮືອທີ່ເປີດເຜີຍ.
# kubectl get svc
ຕອນນີ້ທ່ານສາມາດກວດສອບໄດ້ວ່າ ໜ້າ ເວັບໄຊທ໌ Nginx ສາມາດເຂົ້າເຖິງໄດ້ໃນທຸກໆຂໍ້ໂດຍໃຊ້ ຄຳ ສັ່ງ curl.
# curl master-node:30386 # curl node-1:30386 # curl node-2:30386
ຕາມທີ່ທ່ານສາມາດເຫັນໄດ້,“ WELCOME TO NGINX!” ສາມາດເຂົ້າເຖິງໄດ້.
ດັ່ງທີ່ທ່ານອາດຈະໄດ້ສັງເກດເຫັນ, Kubernetes ລາຍງານວ່າຂ້ອຍບໍ່ໄດ້ລົງທະບຽນ IP ສາທາລະນະຢ່າງຫ້າວຫັນ, ຫຼືແທນທີ່ຈະບໍ່ມີການລົງທະບຽນ EXTERNAL-IP.
# kubectl get svc
ກວດພິສູດເບິ່ງວ່າມັນເປັນຄວາມຈິງບໍ, ວ່າຂ້ອຍບໍ່ມີ IP ພາຍນອກຕິດກັບອິນເຕີເຟດຂອງຂ້ອຍໂດຍໃຊ້ ຄຳ ສັ່ງ IP.
# ip a
ບໍ່ມີ IP ສາທາລະນະຕາມທີ່ທ່ານເຫັນ.
ດັ່ງທີ່ໄດ້ກ່າວມາກ່ອນ ໜ້າ ນີ້, ຕອນນີ້ຂ້ອຍ ກຳ ລັງ ດຳ ເນີນການປະຕິບັດ ໜ້າ ທີ່ນີ້ຢູ່ໃນ Virtual Machine ທີ່ສະ ເໜີ ໂດຍຜູ້ໃຫ້ບໍລິການຟັງສາທາລະນະ. ດັ່ງນັ້ນ, ໃນຂະນະທີ່ບໍ່ມີການໂຕ້ຕອບໂດຍສະເພາະທີ່ຖືກມອບ ໝາຍ ໃຫ້ IP ສາທາລະນະ, ຜູ້ໃຫ້ບໍລິການ VM ໄດ້ອອກທີ່ຢູ່ IP Ephemeral ພາຍນອກ.
ທີ່ຢູ່ IP ພາຍນອກ ephemeral ແມ່ນທີ່ຢູ່ IP ຊົ່ວຄາວທີ່ຍັງຕິດຢູ່ກັບ VM ຈົນກ່ວາຕົວຢ່າງເສມືນຖືກຢຸດ. ເມື່ອຕົວຢ່າງເສມືນຖືກເລີ້ມ ໃໝ່, IP ພາຍນອກ ໃໝ່ ຈະຖືກມອບ ໝາຍ. ໂດຍພື້ນຖານແລ້ວ, ມັນເປັນວິທີທີ່ງ່າຍດາຍ ສຳ ລັບຜູ້ໃຫ້ບໍລິການເພື່ອໃຊ້ໃນ IPs ສາທາລະນະທີ່ບໍ່ເຮັດວຽກ.
ສິ່ງທ້າທາຍຢູ່ທີ່ນີ້, ນອກ ເໜືອ ຈາກຄວາມຈິງທີ່ວ່າ IP ສາທາລະນະຂອງທ່ານບໍ່ສະຖຽນລະພາບ, ແມ່ນວ່າ IP Ephemeral ສາທາລະນະແມ່ນພຽງແຕ່ການຂະຫຍາຍ (ຫລືຕົວແທນ) ຂອງ IP ສ່ວນຕົວ, ແລະດ້ວຍເຫດຜົນນັ້ນ, ການບໍລິການຈະເຂົ້າເຖິງໄດ້ທີ່ Port 30386 ເທົ່ານັ້ນ. ນັ້ນ ໝາຍ ຄວາມວ່າບໍລິການດັ່ງກ່າວຈະຖືກເຂົ້າໃຊ້ໃນ URL
, ນັ້ນແມ່ນ 104.197.170.99:30386, ເຊິ່ງຖ້າທ່ານກວດເບິ່ງໂປແກຼມທ່ອງເວັບຂອງທ່ານ, ທ່ານຄວນຈະສາມາດເບິ່ງ ໜ້າ ຍິນດີຕ້ອນຮັບ.
ດ້ວຍວ່າ, ພວກເຮົາໄດ້ ນຳ ໃຊ້ NGINX ສຳ ເລັດແລ້ວໃນກຸ່ມກຸ່ມ Kubernetes 3 ແກນຂອງພວກເຮົາ.