Google-ийн дагуу савыг ашиглах шилдэг 7 туршлага

Анхаарна уу. орчуулга.: Анхны нийтлэлийн зохиогч нь Google Cloud Solutions Architect-ийн Тео Чамли юм. Google Cloud блогт зориулсан энэ нийтлэлд тэрээр өөрийн компаний "гэж нэрлэсэн дэлгэрэнгүй гарын авлагын хураангуйг өгдөг.Контейнер ажиллуулах шилдэг туршлага" Үүнд Google-ийн мэргэжилтнүүд Google Kubernetes Engine болон бусад зүйлийг ашиглах контекстийг ашиглах шилдэг туршлагуудыг цуглуулж, аюулгүй байдал, хяналт, бүртгэл зэрэг өргөн хүрээний сэдвийг хөндсөн. Тэгэхээр Google-ийн дагуу хамгийн чухал чингэлэг дадлага юу вэ?

Google-ийн дагуу савыг ашиглах шилдэг 7 туршлага

Kubernetes хөдөлгүүр (Google Cloud дээр контейнержүүлсэн програмуудыг ажиллуулах Кубернетес-д суурилсан үйлчилгээ - ойролцоогоор. орчуулга) хэмжээсийг нэмэгдүүлэх шаардлагатай ажлын ачааллыг ажиллуулах шилдэг аргуудын нэг юм. Kubernetes ихэнх програмуудыг саванд хийсэн тохиолдолд жигд ажиллах болно. Гэхдээ хэрэв та програмаа удирдахад хялбар, Kubernetes-ийн давуу талыг бүрэн ашиглахыг хүсч байвал шилдэг туршлагыг дагах хэрэгтэй. Тэд програмын ажиллагаа, хяналт, дибаг хийх ажлыг хялбарчилж, аюулгүй байдлыг нэмэгдүүлэх болно.

Энэ нийтлэлд бид Кубернетес дээр савыг үр дүнтэй ажиллуулахын тулд таны мэдэж байх ёстой зүйлсийн жагсаалтыг авч үзэх болно. Нарийвчилсан мэдээлэл авахыг хүсч буй хүмүүс материалыг унших хэрэгтэй Контейнер ажиллуулах шилдэг туршлага, мөн манайд анхаарлаа хандуулаарай өмнөх нийтлэл савыг угсрах тухай.

1. Төрөлхийн чингэлэг мод бэлтгэх механизмыг ашиглах

Хэрэв програм нь Kubernetes кластер дээр ажиллаж байгаа бол бүртгэлд тийм ч их зүйл хэрэггүй. Төвлөрсөн бүртгэлийн систем нь таны ашиглаж буй кластерт аль хэдийн суурилагдсан байх магадлалтай. Kubernetes Engine ашиглах тохиолдолд энэ нь хариуцлага хүлээх болно Stackdriver Logging. (Анхаарна уу. орчуулга.: Хэрэв та өөрийн Kubernetes суулгацыг ашигладаг бол манай Нээлттэй эхийн шийдлийг сайтар судлахыг зөвлөж байна - модон байшин.) Амьдралаа энгийн байлгаж, төрөлх чингэлэг бүртгэлийн механизмыг ашигла. Логуудыг stdout болон stderr руу бичээрэй - тэдгээрийг автоматаар хүлээн авч, хадгалж, индексжүүлэх болно.

Хэрэв хүсвэл лог бичиж болно JSON формат. Энэ арга нь тэдгээрт мета өгөгдлийг нэмэхэд хялбар болгоно. Тэдэнтэй хамт Stackdriver Logging нь энэхүү мета өгөгдлийг ашиглан логуудыг хайх чадвартай байх болно.

2. Контейнер нь харьяалалгүй, өөрчлөгдөх боломжгүй эсэхийг шалгаарай

Кубернетес кластерт контейнерууд зөв ажиллахын тулд тэдгээр нь харьяалалгүй, өөрчлөгдөх боломжгүй байх ёстой. Эдгээр нөхцөл хангагдсаны дараа Кубернетес ажлаа хийж, шаардлагатай үед, шаардлагатай үед програмын нэгжүүдийг үүсгэж устгах боломжтой.

Харьяалалгүй аливаа төлөв (ямар ч төрлийн байнгын өгөгдөл) нь савнаас гадуур хадгалагдана гэсэн үг. Үүний тулд хэрэгцээ шаардлагаас хамааран өөр өөр төрлийн гадаад санах ойг ашиглаж болно. Үүл хадгалах, Байнгын диск, Redis, Cloud SQL эсвэл бусад удирддаг мэдээллийн сан. (Анхаарна уу. орчуулга.: Энэ талаар манай нийтлэлээс дэлгэрэнгүй уншина ууKubernetes-д зориулсан операторууд: төлөвтэй програмуудыг хэрхэн ажиллуулах вэ".)

Хувиршгүй Энэ нь ашиглалтын хугацаанд савыг өөрчлөхгүй гэсэн үг юм: шинэчлэлт, засвар, тохиргооны өөрчлөлт байхгүй. Хэрэв та програмын кодыг шинэчлэх эсвэл засвар хийх шаардлагатай бол шинэ зураг үүсгээд байрлуулна уу. Контейнерийн тохиргоог (сонсох порт, ажиллах цагийн орчны сонголтууд гэх мэт) гаднаас шилжүүлэхийг зөвлөж байна. нууц и ConfigMaps. Тэдгээрийг шинэ контейнерийн дүрсийг бүтээх шаардлагагүйгээр шинэчлэх боломжтой. Зургийн угсралтын тусламжтайгаар дамжуулах хоолойг хялбархан үүсгэхийн тулд та ашиглаж болно Cloud Build. (Анхаарна уу. орчуулга.: Бид эдгээр зорилгоор Нээлттэй эхийн хэрэгслийг ашигладаг дап.)

Google-ийн дагуу савыг ашиглах шилдэг 7 туршлага
Pod-д тохиргоо болгон суурилуулсан ConfigMap ашиглан Kubernetes-ийн Байршуулах тохиргоог шинэчлэх жишээ

3. Давуу эрхтэй савнаас зайлсхий

Та сервер дээрээ програмуудыг root хэлбэрээр ажиллуулдаггүй, тийм үү? Хэрэв халдагч програм руу орвол root хандалт авах болно. Давуу эрхтэй чингэлэг ажиллуулахгүй байх асуудалд мөн адил анхаарал хандуулдаг. Хэрэв та хост дээрх тохиргоог өөрчлөх шаардлагатай бол тухайн контейнерийг зааж өгч болно Боломжууд сонголтыг ашиглан securityContext Кубернетес хотод. Хэрэв та өөрчлөх шаардлагатай бол системүүд, Kubernetes байна тусдаа хийсвэр үүний төлөө. Ерөнхийдөө хамгийн их зүйлийг ашиглахыг хичээ үүн дотор- үүнтэй төстэй давуу эрх бүхий үйлдлүүдийг гүйцэтгэх хажуугийн сав. Тэд дотоод болон гадаад урсгалын аль алинд нь нэвтрэх боломжтой байх шаардлагагүй.

Хэрэв та кластер удирдаж байгаа бол ашиглаж болно Pod аюулгүй байдлын бодлого давуу эрхтэй савыг ашиглах хязгаарлалтын хувьд.

4. Root байдлаар ажиллахаас зайлсхий

Давуу эрхтэй контейнеруудыг аль хэдийн хэлэлцсэн боловч үүнээс гадна та контейнер доторх програмуудыг root хэлбэрээр ажиллуулахгүй бол илүү дээр байх болно. Хэрэв халдагчид код гүйцэтгэх боломжийг олгодог root эрхтэй программаас алсаас эмзэг байдлыг олсон бөгөөд үүний дараа тэр хараахан тодорхойгүй байгаа эмзэг байдлаас дамжин контейнерийг орхих боломжтой бол тэр хост дээр үндэслэгдэх болно.

Үүнээс зайлсхийх хамгийн сайн арга бол юуг ч эхэнд root болгон ажиллуулахгүй байх явдал юм. Үүнийг хийхийн тулд та удирдамжийг ашиглаж болно USER в Dockerfile буюу runAsUser Кубернетес хотод. Кластерын администратор мөн ашиглан хэрэгжүүлэх үйлдлийг тохируулах боломжтой Pod аюулгүй байдлын бодлого.

5. Програмыг хянахад хялбар болгох

Бүртгэлийн нэгэн адил хяналт нь програмын удирдлагын салшгүй хэсэг юм. Кубернетес нийгэмлэгт түгээмэл хэрэглэгддэг хяналтын шийдэл юм Prometheus - хяналт шаарддаг pods болон үйлчилгээг автоматаар илрүүлдэг систем. (Анхаарна уу. орчуулга.: Мөн манайхыг үзнэ үү дэлгэрэнгүй тайлан Prometheus болон Kubernetes ашиглан мониторинг хийх сэдвээр.) Stackdriver нь Kubernetes кластеруудыг хянах чадвартай бөгөөд програмын хяналтанд зориулсан Prometheus-ийн өөрийн хувилбарыг агуулдаг.

Google-ийн дагуу савыг ашиглах шилдэг 7 туршлага
Stackdriver дээрх Kubernetes хяналтын самбар

Prometheus програм нь хэмжигдэхүүнийг HTTP төгсгөлийн цэг рүү дамжуулахыг хүлээж байна. Үүний тулд ашиглах боломжтой Prometheus үйлчлүүлэгчийн номын сангууд. Үүнтэй ижил форматыг бусад хэрэгслүүд ашигладаг Нээлттэй тооллого и Истио.

6. Програмын эрүүл мэндийн байдлыг боломжтой болгох

Үйлдвэрлэл дэх хэрэглээний менежмент нь түүний төлөв байдлыг бүхэлд нь системд дамжуулах чадвараар тусалдаг. Аппликейшн ажиллаж байна уу? Зүгээр үү? Та замын хөдөлгөөнийг хүлээн авахад бэлэн үү? Тэр яаж биеэ авч яваа вэ? Энэ асуудлыг шийдэх хамгийн түгээмэл арга бол эрүүл мэндийн үзлэгт хамрагдах явдал юм (эрүүл мэндийн үзлэг). Kubernetes хоёр төрөлтэй: амьд байдал, бэлэн байдлын шалгалт.

Амьдрах датчикийн хувьд (амьдрах чадварыг шалгах) Програм нь ажиллагаатай бөгөөд үндсэн хамаарлууд нь хангагдсан тохиолдолд "200 OK" хариултыг буцаадаг HTTP төгсгөлийн цэгтэй байх ёстой. Бэлэн байдлыг шалгах зорилгоор (үйлчилгээний бэлэн байдлыг шалгах) Програм нь эрүүл төлөвт байгаа, эхлүүлэх алхмууд дууссан ба аливаа хүчинтэй хүсэлт алдаа гаргахгүй бол "200 OK" хариултыг буцаадаг өөр HTTP төгсгөлийн цэгтэй байх ёстой. Кубернетес эдгээр шалгалтын дагуу програм бэлэн болсон тохиолдолд л контейнер руу урсгалыг чиглүүлнэ. Амьдрах болон бэлэн байдлын төлөвийн хооронд ялгаа байхгүй бол хоёр төгсгөлийн цэгийг нэгтгэж болно.

Та энэ талаар Google-ийн хөгжүүлэгчийн өмгөөлөгч Сандип Динешийн холбогдох нийтлэлээс уншиж болно: "Kubernetes шилдэг туршлагууд: Эрүүл мэндийн үзлэгийг бэлэн байдал, амьд байдлын шалгалтын тусламжтайгаар тохируулах".

7. Зургийн хувилбараа анхааралтай сонгох хэрэгтэй

Ихэнх нийтийн болон хувийн зургууд дээр тайлбарласантай төстэй шошгын системийг ашигладаг Контейнер барих шилдэг туршлагууд. Хэрэв зураг нь ойролцоо системийг ашигладаг бол семантик хувилбар, шошгоны онцлогийг харгалзан үзэх шаардлагатай. Жишээлбэл, шошго latest зурагнаас зураг руу ойр ойрхон шилжих боломжтой - хэрэв танд урьдчилан таамаглах боломжтой, давтагдах боломжтой бүтээц, суурилуулалт шаардлагатай бол найдах боломжгүй.

Та шошгыг ашиглаж болно X.Y.Z (тэдгээр нь бараг үргэлж өөрчлөгддөггүй), гэхдээ энэ тохиолдолд зурган дээрх бүх засварууд болон шинэчлэлтүүдийг хянаж байгаарай. Хэрэв таны хэрэглэж буй зураг шошготой бол X.Y, энэ нь алтан дунджийн хувьд сайн сонголт юм. Үүнийг сонгосноор та засваруудыг автоматаар хүлээн авах бөгөөд нэгэн зэрэг програмын тогтвортой хувилбарт найдаж болно.

Орчуулагчийн жич

Мөн манай блог дээрээс уншина уу:

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх