Kubernetes 1.18-ի թողարկում՝ մեկուսացված բեռնարկղերի կլաստերի կառավարման համակարգ

հրապարակված կոնտեյներային նվագախմբային հարթակի թողարկում Կուբերնեթ 1.18, որը թույլ է տալիս կառավարել մեկուսացված բեռնարկղերի կլաստերը որպես ամբողջություն և ապահովում է կոնտեյներներում աշխատող հավելվածների տեղակայման, պահպանման և մասշտաբավորման մեխանիզմներ: Նախագիծն ի սկզբանե ստեղծվել է Google-ի կողմից, սակայն այնուհետև տեղափոխվել է անկախ կայք, որը վերահսկվում է Linux հիմնադրամի կողմից: Պլատֆորմը դիրքավորվում է որպես համայնքի կողմից մշակված ունիվերսալ լուծում, որը կապված չէ առանձին համակարգերի հետ և ունակ է աշխատել ցանկացած հավելվածի հետ ցանկացած ամպային միջավայրում: Kubernetes կոդը գրված է Go և տարածվում է լիցենզավորված Apache 2.0-ի համաձայն:

Ապահովում է ենթակառուցվածքների տեղակայման և կառավարման գործառույթներ, ինչպիսիք են DNS տվյալների բազայի պահպանումը, բեռի հավասարակշռումը,
բեռնարկղերի բաշխում կլաստերային հանգույցների միջև (կոնտեյների միգրացիա՝ կախված բեռի և սպասարկման կարիքներից), առողջության ստուգումներ հավելվածի մակարդակում, հաշվի կառավարում, գործող կլաստերի թարմացում և դինամիկ մասշտաբում՝ առանց դրա դադարեցման։ Հնարավոր է տեղակայել կոնտեյներների խմբեր ամբողջ խմբի համար միանգամից թարմացնելու և չեղարկելու գործողություններով, ինչպես նաև կլաստերի տրամաբանական բաժանումը՝ ռեսուրսների բաժանմամբ: Աջակցություն կա հավելվածների դինամիկ միգրացիայի համար, որոնց տվյալների պահպանման համար կարող են օգտագործվել ինչպես տեղական, այնպես էլ ցանցային պահեստավորման համակարգեր:

Kubernetes 1.18 թողարկումը ներառում է 38 փոփոխություն և բարելավում, որոնցից 15-ը տեղափոխվել են կայուն, իսկ 11-ը՝ բետա: Ալֆա կարգավիճակում առաջարկվում է 12 նոր փոփոխություն։ Նոր տարբերակը պատրաստելիս հավասար ջանքեր են գործադրվել ինչպես տարբեր գործառույթների կատարելագործման, այնպես էլ փորձարարական հնարավորությունների կայունացման, ինչպես նաև նոր զարգացումների ավելացման ուղղությամբ: Հիմնական փոփոխությունները.

  • Կուբեկտլ
    • Ավելացված է «kubectl debug» հրամանի ալֆա տարբերակը, որը թույլ է տալիս պարզեցնել վրիպազերծումը pods-ում՝ գործարկելով ժամանակավոր բեռնարկղեր վրիպազերծման գործիքներով:
    • Հայտարարվել է կայուն «kubectl diff» հրամանը, որը թույլ է տալիս տեսնել, թե ինչ կփոխվի կլաստերում, եթե կիրառեք մանիֆեստը:
    • Հեռացված «kubectl run» հրամանի բոլոր գեներատորները, բացառությամբ գեներատորի, որը նախատեսված է մեկ pod գործարկման համար:
    • Փոխվել է դրոշ «--dry-run», կախված դրա արժեքից (հաճախորդ, սերվեր և ոչ մեկը), հրամանի փորձնական կատարումը կատարվում է հաճախորդի կամ սերվերի կողմից:
    • kubectl կոդը ընդգծված առանձին պահոց: Սա թույլ տվեց kubectl-ին անջատվել ներքին kubernetes-ի կախվածություններից և հեշտացրեց ծածկագրի ներմուծումը երրորդ կողմի նախագծեր:
  • Մուտք
    • Սկսվեց փոխելով API խումբը Ingress-ի համար networking.v1beta1:
    • Ավելացված է նոր դաշտեր.
      • pathType, որը թույլ է տալիս նշել, թե ինչպես է համեմատվելու հարցումի ուղին
      • IngressClassName-ը փոխարինում է kubernetes.io/ingress.class ծանոթագրությանը, որը հայտարարված է հնացած: Այս դաշտում նշվում է InressClass հատուկ օբյեկտի անունը
    • Ավելացված է IngressClass օբյեկտ, որը ցույց է տալիս մուտքի վերահսկիչի անունը, նրա լրացուցիչ պարամետրերը և այն լռելյայն օգտագործելու նշանը
  • Ծառայությունների
    • Ավելացված է AppProtocol դաշտը, որտեղ կարող եք նշել, թե որ արձանագրությունն է օգտագործում հավելվածը
    • Թարգմանված բետա կարգավիճակում և լռելյայն միացված է EndpointSlicesAPI-ն, որն ավելի ֆունկցիոնալ փոխարինում է սովորական վերջնակետերին:
  • Сеть
  • Մշտական ​​սկավառակներ. Հետևյալ ֆունկցիոնալությունը հայտարարվել է կայուն.
  • Հավելվածի կազմաձևում
    • Դեպի ConfigMap և Secret օբյեկտներ ավելացրել է նոր դաշտ «անփոփոխելի». Դաշտի արժեքը ճշմարիտ սահմանելը կանխում է օբյեկտի փոփոխությունը:
  • Ժամանակացույց
    • Ավելացված է kube-scheduler-ի համար լրացուցիչ պրոֆիլներ ստեղծելու ունակություն: Եթե ​​նախկինում անհրաժեշտ էր գործարկել լրացուցիչ առանձին ժամանակացույցներ՝ ոչ ստանդարտ pod բաշխման ալգորիթմներ իրականացնելու համար, ապա այժմ հնարավոր է ստեղծել լրացուցիչ պարամետրեր ստանդարտ ժամանակացույցի համար և նշել դրա անունը նույն pod դաշտում «.spec.schedulerName»: Կարգավիճակ - ալֆա:
    • Տաքացման վրա հիմնված վտարում հայտարարվել է կայուն
  • Scaling
    • Ավելացված է HPA-ում նշելու ունակությունը ագրեսիվության աստիճանի դրսևորում է, երբ փոխվում է վազող բլոկների քանակը, այսինքն, երբ ծանրաբեռնվածությունը մեծանում է, գործարկում է N անգամ ավելի շատ դեպք:
  • Կուբելետ
    • Տոպոլոգիայի մենեջեր ստացել է բետա կարգավիճակ: Հատկանիշը հնարավորություն է տալիս հատկացնել NUMA-ն, որը խուսափում է արդյունավետության վատթարացումից բազմաբնակարան համակարգերում:
    • Բետա կարգավիճակ ստացել PodOverhead ֆունկցիան, որը թույլ է տալիս RuntimeClass-ում նշել լրացուցիչ ռեսուրսների քանակը, որոնք պահանջվում են pod-ը գործարկելու համար:
    • Ընդլայնված աջակցություն HugePages-ին, ալֆա կարգավիճակում ավելացվել է կոնտեյների մակարդակի մեկուսացում և բազմաթիվ հսկայական էջերի չափերի աջակցություն:
    • Ջնջված է վերջնակետը չափումների համար /metrics/resource/v1alpha1, փոխարենն օգտագործվում է /metrics/resource
  • API
    • Վերջապես Հեռացվել է հնացած API խմբի հավելվածները/v1beta1 և ընդլայնումներ/v1beta1 օգտագործելու հնարավորությունը:
    • ServerSide Դիմել բարելավվել է բետա2 կարգավիճակի: Այս բարելավումը տեղափոխում է օբյեկտների մանիպուլյացիա kubectl-ից դեպի API սերվեր: Բարելավման հեղինակները պնդում են, որ դրանով կուղղվեն առկա բազմաթիվ սխալներ, որոնք հնարավոր չէ շտկել ներկա իրավիճակում։ Նրանք նաև ավելացրել են «.metadata.managedFields» բաժինը, որտեղ առաջարկում են պահպանել օբյեկտների փոփոխությունների պատմությունը՝ նշելով, թե ով, երբ և ինչ է փոխվել:
    • Հայտարարվել է կայուն CertificateSigningRequest API:
  • Windows պլատֆորմի աջակցություն:

Source: opennet.ru

Добавить комментарий