Kubernetes 1.17: Akopọ ti awọn imotuntun akọkọ

Ana, December 9, waye itusilẹ atẹle ti Kubernetes - 1.17. Gẹgẹbi aṣa ti o ti dagbasoke fun bulọọgi wa, a sọrọ nipa awọn ayipada pataki julọ ninu ẹya tuntun.

Kubernetes 1.17: Akopọ ti awọn imotuntun akọkọ

Alaye ti a lo lati mura ohun elo yii ni a mu lati ikede osise, Kubernetes awọn ilọsiwaju titele awọn tabili, CHANGELOG-1.17 ati awọn ọran ti o jọmọ, awọn ibeere fa, ati Awọn igbero Imudara Kubernetes (KEP). Nitorinaa, kini tuntun?...

Topology-mọ afisona

Agbegbe Kubernetes ti n duro de ẹya yii fun igba pipẹ - Topology-mọ afisona iṣẹ... Ti o ba ti a Bọtini o bcrc ni October 2018, ati awọn osise Imudarasi - 2 odun seyin, awọn ibùgbé oran (bii ti eyi) - ati ọdun diẹ diẹ sii ju ...

Ero gbogbogbo ni lati pese agbara lati ṣe imuse ipa-ọna “agbegbe” fun awọn iṣẹ ti ngbe Kubernetes. “Agbegbe” ninu ọran yii tumọ si “ipele topological kanna” (ipele topology)eyi ti o le jẹ:

  • apa kanna fun awọn iṣẹ,
  • agbeko olupin kanna,
  • agbegbe kanna
  • Olupese awọsanma kanna,
  • ...

Awọn apẹẹrẹ ti lilo ẹya yii:

  • ifowopamọ lori ijabọ ni awọn fifi sori ẹrọ awọsanma pẹlu ọpọlọpọ awọn agbegbe wiwa (ọpọlọpọ-AZ) - wo. alabapade àkàwé lilo apẹẹrẹ ti ijabọ lati agbegbe kanna, ṣugbọn awọn AZ oriṣiriṣi ni AWS;
  • kekere iṣẹ-ṣiṣe lairi / ti o dara ju losi;
  • iṣẹ sharded ti o ni alaye agbegbe nipa ipade ni shard kọọkan;
  • gbigbe ti fluentd (tabi awọn analogues) lori ipade kanna pẹlu awọn ohun elo ti a gba awọn akọọlẹ wọn;
  • ...

Iru ipa-ọna, eyiti o “mọ” nipa topology, ni a tun pe ni ibatan nẹtiwọki - nipasẹ afiwe pẹlu ipade ijora, podu ijora / egboogi-ijora tabi farahan ko ki gun seyin Topology-Aware Iwọn didun Iṣeto (ati Ipese iwọn didun). Ipele imuse lọwọlọwọ ServiceTopology ni Kubernetes - Alpha version.

Fun awọn alaye lori bi ẹya naa ṣe n ṣiṣẹ ati bii o ṣe le lo tẹlẹ, ka Arokọ yi lati ọkan ninu awọn onkọwe.

IPv4/IPv6 meji akopọ support

Ilọsiwaju pataki ti o wa titi ni ẹya nẹtiwọki miiran: atilẹyin igbakana fun awọn akopọ IP meji, eyiti a kọkọ ṣe sinu K8s 1.16. Ni pataki, itusilẹ tuntun mu awọn ayipada wọnyi wa:

  • ni kube-aṣoju imuse o ṣeeṣe ti iṣiṣẹ nigbakanna ni awọn ipo mejeeji (IPv4 ati IPv6);
  • в Pod.Status.PodIPs farahan atilẹyin fun API isalẹ (ni akoko kanna bi in /etc/hosts bayi wọn nilo agbalejo lati ṣafikun adirẹsi IPv6 kan);
  • meji akopọ support IRU (Kubernetes IN Docker) ati kubeadm;
  • imudojuiwọn e2e igbeyewo.

Kubernetes 1.17: Akopọ ti awọn imotuntun akọkọ
Àpèjúwe lilo meji akopọ IPV4/IPv6 ni KIND

Ilọsiwaju lori CSI

Iduroṣinṣin ti a kede topology support fun CSI-orisun ibi ipamọ, akọkọ ṣe ni K8s 1.12.

Initiative fun ijira ti awọn afikun iwọn didun si CSI - CSI Iṣilọ - de beta version. Ẹya yii ṣe pataki lati le tumọ awọn afikun ibi ipamọ to wa tẹlẹ (ninu igi) to a igbalode ni wiwo (CSI, jade-ti-igi) alaihan si awọn olumulo ipari Kubernetes. Awọn alakoso iṣupọ yoo nilo nikan lati mu Iṣilọ CSI ṣiṣẹ, lẹhin eyi awọn orisun ipinlẹ ti o wa tẹlẹ ati awọn ẹru iṣẹ yoo tẹsiwaju lati “ṣiṣẹ nikan”… ṣugbọn lilo awọn awakọ CSI tuntun dipo awọn ti igba atijọ ti o wa ninu ipilẹ Kubernetes.

Ni akoko yii, iṣiwa fun awọn awakọ AWS EBS ti ṣetan ni ẹya beta (kubernetes.io/aws-ebsati GCE PD (kubernetes.io/gce-pd). Awọn asọtẹlẹ fun awọn ohun elo ibi ipamọ miiran jẹ bi atẹle:

Kubernetes 1.17: Akopọ ti awọn imotuntun akọkọ

A sọrọ nipa bii atilẹyin ibi ipamọ “ibile” ni K8 ṣe wa si CSI ni Arokọ yi. Ati iyipada ti ijira CSI si ipo beta jẹ igbẹhin si lọtọ atejade lori bulọọgi ise agbese.

Ni afikun, iṣẹ ṣiṣe pataki miiran ni aaye ti CSI, eyiti o bẹrẹ (imuse alpha) ni K1.17s 8, ti de ipo beta (ie ṣiṣẹ nipasẹ aiyipada) ni idasilẹ Kubernetes 1.12 - ṣiṣẹda snapshots ati gbigba lati ọdọ wọn. Lara awọn ayipada ti a ṣe si Iwọn didun Iwọn didun Kubernetes lori ọna lati ṣe idasilẹ beta:

  • pipin CSI ita-snapshotter sidecar si awọn oludari meji,
  • kun ikoko fun piparẹ (aṣiri piparẹ) bi asọye si awọn akoonu ti aworan iwọn didun kan,
  • titun finalizer (ipari) lati ṣe idiwọ ohun elo API lati paarẹ ti awọn asopọ ti o ku ba wa.

Ni akoko itusilẹ 1.17, ẹya naa ni atilẹyin nipasẹ awọn awakọ CSI mẹta: GCE Persistent Disk CSI Driver, Portworx CSI Driver ati NetApp Trident CSI Driver. Awọn alaye diẹ sii nipa imuse ati lilo rẹ ni a le rii ni atejade yii lori bulọọgi.

Awọsanma Olupese Labels

Awọn aami ti o laifọwọyi sọtọ si awọn apa ti a ṣẹda ati awọn ipele ti o da lori olupese awọsanma ti a lo, ti wa ni Kubernetes bi ẹya beta fun igba pipẹ - lati itusilẹ ti K8s 1.2 (Oṣu Kẹrin ọdun 2016!). Fi fun wọn ni ibigbogbo lilo fun ki gun, kóòdù pinnu, pe o to akoko lati kede ẹya iduroṣinṣin (GA).

Nitorinaa, gbogbo wọn tun lorukọ ni ibamu (nipasẹ topology):

  • 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

ṣugbọn tun wa labẹ awọn orukọ atijọ wọn (fun ibaramu sẹhin). Sibẹsibẹ, gbogbo awọn alakoso ni a gbaniyanju lati yipada si awọn akole lọwọlọwọ. Iwe ti o jọmọ K8s ti ni imudojuiwọn.

Ti eleto o wu ti kubeadm

Ti gbekalẹ ni ẹya alpha fun igba akọkọ ti eleto o wu fun kubeadm IwUlO. Awọn ọna kika atilẹyin: JSON, YAML, Go awoṣe.

Iwuri fun imuse ẹya yii (ni ibamu si Bọtini) ni:

Lakoko ti Kubernetes le wa ni ransogun pẹlu ọwọ, awọn de facto (ti o ba ko de jure) boṣewa fun isẹ yi ni lati lo kubeadm. Awọn irinṣẹ iṣakoso awọn ọna ṣiṣe olokiki bii Terraform gbarale kubeadm fun imuṣiṣẹ Kubernetes. Awọn ilọsiwaju ti a gbero si Cluster API pẹlu akojọpọ akojọpọ fun Kubernetes bootstrapping pẹlu kubeadm ati awọsanma-init.

Laisi iṣelọpọ iṣeto, paapaa awọn ayipada aibikita julọ ni iwo akọkọ le fọ Terraform, Cluster API ati sọfitiwia miiran ti o nlo awọn abajade ti kubeadm.

Awọn ero lẹsẹkẹsẹ wa pẹlu atilẹyin (ni irisi igbejade ti a ṣeto) fun awọn aṣẹ kubeadm wọnyi:

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

Apejuwe ti idahun JSON si aṣẹ kan 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="
}

Iduroṣinṣin ti awọn imotuntun miiran

Ni gbogbogbo, itusilẹ ti Kubernetes 1.17 waye labẹ ọrọ-ọrọ “Iduroṣinṣin" Eyi jẹ irọrun nipasẹ otitọ pe ọpọlọpọ awọn ẹya ninu rẹ (nọmba lapapọ wọn jẹ 14) gba ipo GA. Lára wọn:

Awọn iyipada miiran

Akojọ kikun ti awọn imotuntun ni Kubernetes 1.17, dajudaju, ko ni opin si awọn ti a ṣe akojọ loke. Eyi ni diẹ ninu awọn miiran (ati fun atokọ pipe diẹ sii, wo CHANGELOG):

  • Ẹya ti a gbekalẹ ni idasilẹ kẹhin ti de ẹya beta RunAsUserName fun awọn ferese;
  • iru ayipada ṣubu EndpointSlice API (tun lati K8s 1.16), sibẹsibẹ fun bayi ojutu yii lati mu ilọsiwaju iṣẹ / iwọn ti Endpoint API ko ṣiṣẹ nipasẹ aiyipada;
  • pods jẹ pataki ni bayi fun iṣẹ iṣupọ le ṣẹda kii ṣe ni awọn aaye orukọ nikan kube-system (fun awọn alaye, wo iwe fun Idiwọn ayo Kilasi agbara);
  • aṣayan titun fun kubelet - --reserved-cpus - gba ọ laaye lati ṣalaye ni gbangba atokọ ti awọn Sipiyu ti o wa ni ipamọ fun eto naa;
  • fun kubectl logs gbekalẹ titun flag --prefix, fifi orukọ podu ati apoti orisun si laini kọọkan ti log;
  • в label.Selector fi kun RequiresExactMatch;
  • gbogbo awọn apoti ni kube-dns ti wa ni bayi nṣiṣẹ pẹlu awọn anfani kekere;
  • hyperkube yapa si ibi ipamọ GitHub lọtọ ati pe kii yoo wa ninu awọn idasilẹ Kubernetes mọ;
  • pataki dara si išẹ kube-aṣoju fun ti kii-UDP ebute oko.

Awọn iyipada igbẹkẹle:

  • Ẹya CoreDNS ti o wa ninu kubeadm jẹ 1.6.5;
  • crctl version imudojuiwọn to v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • Titun ni idanwo Docker version igbegasoke si 19.03;
  • Ẹya Go ti o kere ju ti o nilo lati kọ Kubernetes 1.17 jẹ 1.13.4.

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun