Kubernetes 1.17: шарҳи навовариҳои асосӣ

Дирӯз, 9 декабр, баргузор гардид Нашри навбатии Kubernetes - 1.17. Тибқи анъанае, ки барои блоги мо таҳия шудааст, мо дар бораи тағироти назаррас дар версияи нав сӯҳбат мекунем.

Kubernetes 1.17: шарҳи навовариҳои асосӣ

Маълумоте, ки барои омода кардани ин мавод истифода шудааст, аз эълони расмӣ гирифта шудааст, Ҷадвалҳои пайгирии такмилдиҳии Kubernetes, CHANGELOG-1.17 ва масъалаҳои марбут, дархостҳо ва пешниҳодҳои такмилдиҳии Kubernetes (KEP). Пас, чй нав?..

Масири аз топология огоҳ

Ҷамъияти Кубернетес муддати тӯлонӣ ин хусусиятро интизор буд - Масири хидматрасонии топология огоҳ аст. Агар КИП он дар моҳи октябри соли 2018 сарчашма мегирад, ва расмӣ такмилдиҳӣ — 2 сол пеш масъалахои мукаррарй (мисли ин) - ва боз чанд сол калонтар...

Идеяи умумӣ ин фароҳам овардани қобилияти татбиқи масири "маҳаллӣ" барои хидматрасонӣ дар Кубернетес мебошад. "Маҳаллӣ" дар ин ҳолат маънои "ҳамон сатҳи топологиро" дорад (сатҳи топология), ки метавонад:

  • гиреҳи якхела барои хидматҳо,
  • ҳамон рахи сервер,
  • ҳамон минтақа
  • ҳамон провайдери абр,
  • ...

Намунаҳои истифодаи ин хусусият:

  • сарфаи трафик дар насбҳои абрӣ бо минтақаҳои дастрасии сершумор (мулти-АЗ) - нигаред. тасвири тару тоза бо истифода аз мисоли трафик аз як минтақа, аммо AZ-ҳои гуногун дар AWS;
  • таъхири иҷрои камтар / интиқоли беҳтар;
  • хидмати тақсимшуда, ки дорои маълумоти маҳаллӣ дар бораи гиреҳ дар ҳар як пора;
  • ҷойгиркунии fluentd (ё аналогҳо) дар як гиреҳ бо замимаҳое, ки гузоришҳои онҳо ҷамъоварӣ шудаанд;
  • ...

Чунин масир, ки дар бораи топология «донист», инчунин шабоҳати шабакавӣ номида мешавад - дар муқоиса бо наздикии гиреҳ, наздикӣ / зиддиҳамбастагӣ ё пайдо шуд чанде нагузашта Банақшагирии ҳаҷми аз топология огоҳ (ва Таъмини ҳаҷм). Дарачаи хозираи ичрои ServiceTopology дар Kubernetes - версияи алфа.

Барои тафсилот дар бораи чӣ гуна кор кардани хусусият ва чӣ гуна шумо метавонед онро аллакай истифода баред, хонед ин мақола аз яке аз муаллифон.

Дастгирии дугонаи IPv4/IPv6

Пешравии назаррас сабт шудааст дар дигар хусусияти шабакавӣ: дастгирии ҳамзамон ду стек IP, ки бори аввал дар K8s 1.16. Аз ҷумла, нашри нав тағйироти зеринро овард:

  • дар кубе-прокси ба амал бароварда шуд имконияти кори ҳамзамон дар ҳарду режим (IPv4 ва IPv6);
  • в Pod.Status.PodIPs пайдо шуд дастгирии API поён (дар айни замон дар /etc/hosts ҳоло онҳо аз мизбон талаб мекунанд, ки суроғаи IPv6 илова кунад);
  • дастгирии стек дугона КИНД (Кубернетес IN Docker) ва кубеадм;
  • санҷишҳои навшудаи e2e.

Kubernetes 1.17: шарҳи навовариҳои асосӣ
Масал бо истифода аз стек дугона IPV4/IPv6 дар KIND

Пешравӣ дар CSI

устувор эълон карда шуд дастгирии топология барои нигаҳдории CSI, ки бори аввал дар K8s 1.12.

Ташаббус барои муҳоҷирати плагинҳои ҳаҷм ба CSI - Муҳоҷирати CSI - версияи бета расид. Ин хусусият барои тарҷумаи плагинҳои нигаҳдории мавҷуда муҳим аст (дар дарахт) ба интерфейси муосир (CSI, берун аз дарахт) барои корбарони ниҳоии Kubernetes ноаён. Ба маъмурони кластер танҳо лозим аст, ки Муҳоҷирати CSI-ро фаъол созанд, ки пас аз он захираҳои мавҷудаи давлатӣ ва сарбории корӣ "танҳо кор" мекунанд... аммо ба ҷои драйверҳои кӯҳна, ки ба ядрои Kubernetes дохил карда шудаанд, бо истифода аз драйверҳои охирини CSI.

Дар айни замон, муҳоҷират барои драйверҳои AWS EBS дар версияи бета омода аст (kubernetes.io/aws-ebs) ва GCE PD (kubernetes.io/gce-pd). Пешгӯиҳо барои дигар анборҳо чунинанд:

Kubernetes 1.17: шарҳи навовариҳои асосӣ

Мо дар бораи он сӯҳбат кардем, ки чӣ гуна дастгирии "анъанавии" нигоҳдорӣ дар K8s ба CSI омадааст ин мақола. Ва гузариши муҳоҷирати CSI ба ҳолати бета бахшида шудааст нашри алоҳида дар блоги лоиҳа.

Илова бар ин, боз як функсияи муҳим дар заминаи CSI, ки (амали алфа) дар K1.17s 8 сарчашма мегирад, дар версияи Kubernetes 1.12 ба ҳолати бета расид (яъне бо нобаёнӣ фаъол аст) - эҷоди аксҳо ва барқароршавӣ аз онҳо. Дар байни тағиротҳое, ки ба Kubernetes Volume Snapshot дар роҳи барориши бета ворид карда шудаанд:

  • тақсим кардани панели берунии CSI ба ду контроллер,
  • сирри иловашуда барои нест кардан (сирри ҳазф) ҳамчун эзоҳ ба мундариҷаи акси ҳаҷм,
  • ниҳоӣкунандаи нав (ниҳояткунанда) барои пешгирӣ кардани нест кардани объекти API snapshot, агар пайвастҳои боқимонда вуҷуд дошта бошанд.

Ҳангоми нашри 1.17, ин хусусият аз ҷониби се драйвери CSI дастгирӣ карда мешавад: Driver GCE Persistent Disk CSI, Driver Portworx CSI ва NetApp Trident CSI Driver. Тафсилоти бештарро дар бораи татбиқ ва истифодаи он дар зер пайдо кардан мумкин аст ин нашрия дар блог.

Нишонҳои провайдери абрӣ

Тамғакоғазҳо, ки ба таври худкор вобаста ба провайдери абри истифодашуда ба гиреҳҳо ва ҳаҷмҳои офаридашуда таъин карда мешавад, дар Кубернетес ҳамчун версияи бета муддати хеле тӯлонӣ дастрас буданд - аз замони нашри K8s 1.2 (Апрел 2016!). Бо назардошти истифодаи васеъи онҳо барои муддати тӯлонӣ, таҳиягарон тасмим гирифтанд, ки вақти он расидааст, ки хусусият устувор (GA) эълон карда шавад.

Аз ин рӯ, ҳамаи онҳо мувофиқан номгузорӣ шуданд (аз рӯи топология):

  • beta.kubernetes.io/instance-typenode.kubernetes.io/instance-type
  • failure-domain.beta.kubernetes.io/zonetopology.kubernetes.io/zone
  • failure-domain.beta.kubernetes.io/regiontopology.kubernetes.io/region

... аммо ҳоло ҳам бо номҳои пешинаи худ дастрасанд (барои мутобиқати ақиб). Бо вуҷуди ин, ба ҳамаи маъмурон тавсия дода мешавад, ки ба тамғакоғазҳои ҷорӣ гузаранд. Ҳуҷҷатҳои марбут K8s навсозӣ шудааст.

Баромади структурен кубеадм

Бори аввал дар версияи алфа пешниҳод шудааст баромади сохторӣ барои утилитаи kubeadm. Форматҳои дастгирӣшаванда: JSON, YAML, Шаблон Go.

Ҳавасмандӣ барои татбиқи ин хусусият (мувофиқи КИП) аст:

Дар ҳоле ки Kubernetes-ро дастӣ ҷойгир кардан мумкин аст, стандарти де-факто (агар де-юре набошад) барои ин амалиёт истифодаи kubeadm мебошад. Воситаҳои маъмули идоракунии системаҳо ба монанди Terraform барои ҷойгиркунии Kubernetes ба kubeadm такя мекунанд. Такмили банақшагирифташуда дар API Cluster як бастаи таркибӣ барои пурборкунии Kubernetes бо kubeadm ва cloud-init иборат аст.

Бе баромади сохторӣ, ҳатто тағироти безарартарин дар назари аввал метавонад Terraform, Cluster API ва нармафзори дигареро, ки натиҷаҳои kubeadm-ро истифода мебаранд, вайрон кунад.

Нақшаҳои фаврии мо дастгирии (дар шакли баромади сохторӣ) барои фармонҳои kubeadm зеринро дар бар мегиранд:

  • alpha certs
  • config images list
  • init
  • token create
  • token list
  • upgrade plan
  • version

Тасвири посухи JSON ба фармон kubeadm init -o json:

{
  "node0": "192.168.20.51:443",
  "caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
  "token": {
    "id":          "5ndzuu.ngie1sxkgielfpb1",
    "ttl":         "23h",
    "expires":     "2019-05-08T18:58:07Z",
    "usages":      [
      "authentication",
      "signing"
    ],
    "description": "The default bootstrap token generated by 'kubeadm init'.",
    "extraGroups": [
      "system:bootstrappers:kubeadm:default-node-token"
    ]
  },
  "raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}

Муътадил гардондани дигар навигарихо

Дар маҷмӯъ, баровардани Kubernetes 1.17 таҳти шиори "Стратегия" Ба ин далели он мусоидат кард, ки бисёр хусусиятҳо дар он (шумораи умумии онҳо аст 14) мақоми GA гирифт. Дар байни онҳо:

Тағироти дигар

Рӯйхати пурраи навовариҳо дар Kubernetes 1.17, албатта, бо онҳое, ки дар боло номбар шудаанд, маҳдуд нест. Инҳоянд баъзеи дигар (ва барои рӯйхати пурратар, нигаред ЧАНГЕЛОГ):

Тағироти вобастагӣ:

  • Версияи CoreDNS, ки ба kubeadm дохил карда шудааст, 1.6.5 аст;
  • версияи crictl ба v1.16.1 навсозӣ шудааст;
  • CSI 1.2.0;
  • ва ғайра 3.4.3;
  • Версияи охирини санҷидашудаи Docker ба 19.03 такмил дода шуд;
  • Версияи ҳадди ақали Go барои сохтани Kubernetes 1.17 1.13.4 аст.

PS

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Илова Эзоҳ