Kubernetes 1.17: Mga highlight sa kung unsa ang bag-o

Kagahapon, Disyembre 9, nahitabo sunod nga pagpagawas sa Kubernetes - 1.17. Sumala sa tradisyon nga naugmad alang sa among blog, naghisgot kami bahin sa labing hinungdanon nga mga pagbag-o sa bag-ong bersyon.

Kubernetes 1.17: Mga highlight sa kung unsa ang bag-o

Ang impormasyon nga gigamit sa pag-andam niini nga materyal gikuha gikan sa opisyal nga pahibalo, Mga lamesa sa pagsubay sa mga pagpaayo sa Kubernetes, CHANGELOG-1.17 ug may kalabutan nga mga isyu, pull request, ug Kubernetes Enhancement Proposals (KEP). Busa, unsa ang bag-o? ..

Topology-aware nga ruta

Ang komunidad sa Kubernetes dugay nang naghulat alang niini nga bahin - Topology-aware nga serbisyo routing. Kon GIPANGITA ni KEP kini naggikan sa Oktubre 2018, ug ang opisyal gipanindot β€” 2 ka tuig na ang milabay, ang naandan nga mga isyu (sama sa kini) - ug pila pa ka tuig ang edad ...

Ang kinatibuk-ang ideya mao ang paghatag ug katakus sa pagpatuman sa "lokal" nga ruta para sa mga serbisyo nga nagpuyo sa Kubernetes. Ang "Lokalidad" niini nga kaso nagpasabut nga "parehas nga lebel sa topological" (topology nga lebel), nga mahimong:

  • node parehas alang sa mga serbisyo,
  • parehas nga rack sa server,
  • parehas nga rehiyon
  • parehas nga cloud provider,
  • ...

Mga pananglitan sa paggamit niini nga feature:

  • pagtipig sa trapiko sa mga pag-install sa panganod nga adunay daghang mga sona nga magamit (multi-AZ) - tan-awa. bag-ong ilustrasyon gamit ang panig-ingnan sa trapiko gikan sa samang rehiyon, apan lain-laing mga AZ sa AWS;
  • ubos nga performance latency / mas maayo nga throughput;
  • usa ka sharded nga serbisyo nga adunay lokal nga kasayuran bahin sa node sa matag shard;
  • pagbutang sa fluentd (o mga analogue) sa parehas nga node sa mga aplikasyon kansang mga troso gikolekta;
  • ...

Ang ingon nga ruta, nga "nahibal-an" bahin sa topology, gitawag usab nga network affinity - pinaagi sa analohiya sa pagkadugtong sa node, pod affinity/anti-affinity o nagpakita dili pa lang dugay Topology-Aware Volume Scheduling (ug Pagtagana sa Volume). Kasamtangang lebel sa pagpatuman ServiceTopology sa Kubernetes - alpha nga bersyon.

Para sa mga detalye kung giunsa ang paggana sa feature ug kung giunsa nimo kini magamit, basaha kini nga artikulo gikan sa usa sa mga tagsulat.

IPv4/IPv6 dual stack nga suporta

Mahinungdanon nga pag-uswag naayo sa laing bahin sa network: dungan nga suporta alang sa duha ka IP stacks, nga unang gipaila sa K8s 1.16. Sa partikular, ang bag-ong pagpagawas nagdala sa mosunod nga mga pagbag-o:

  • sa kube-proxy gipatuman posibilidad sa dungan nga operasyon sa duha ka mga mode (IPv4 ug IPv6);
  • Π² Pod.Status.PodIPs nagpakita suporta alang sa ubos nga API (sa parehas nga oras sama sa /etc/hosts karon gikinahanglan nila ang host nga magdugang ug IPv6 address);
  • dual stack nga suporta KIND (Kubernetes SA Docker) ug kubeadm;
  • gi-update nga e2e nga mga pagsulay.

Kubernetes 1.17: Mga highlight sa kung unsa ang bag-o
Ilustrasyon gamit ang dual stack IPV4/IPv6 sa KIND

Pag-uswag sa CSI

Gideklarar nga stable suporta sa topology alang sa CSI-based storage, unang gipaila sa K8s 1.12.

Inisyatibo para sa paglalin sa volume plugins ngadto sa CSI - CSI Paglalin - nakaabot sa beta nga bersyon. Kini nga bahin hinungdanon aron mahubad ang naglungtad nga mga plugin sa pagtipig (sa-kahoy) sa usa ka modernong interface (CSI, wala sa punoan) dili makita sa mga end user sa Kubernetes. Ang mga administrador sa pundok kinahanglan lamang nga makahimo sa CSI Migration, nga human niini ang kasamtangan nga stateful nga mga kapanguhaan ug mga workloads magpadayon sa "pagtrabaho lang" ... apan ang paggamit sa pinakabag-o nga mga drayber sa CSI imbes sa mga wala na sa panahon nga gilakip sa Kubernetes core.

Sa pagkakaron, ang paglalin para sa AWS EBS drivers andam na sa beta version (kubernetes.io/aws-ebs) ug GCE PD (kubernetes.io/gce-pd). Ang mga panagna alang sa ubang mga pasilidad sa pagtipig mao ang mosunod:

Kubernetes 1.17: Mga highlight sa kung unsa ang bag-o

Naghisgot kami kung giunsa ang "tradisyonal" nga suporta sa pagtipig sa K8s miabot sa CSI kini nga artikulo. Ug ang transisyon sa CSI migration ngadto sa beta status gipahinungod sa lahi nga publikasyon sa blog sa proyekto.

Dugang pa, usa pa ka hinungdanon nga pag-andar sa konteksto sa CSI, nga nagsugod (implementasyon sa alpha) sa K1.17s 8, nakaabot sa status sa beta (ie gi-enable pinaagi sa default) sa pagpagawas sa Kubernetes 1.12 - paghimo og mga snapshot ug pagkaayo gikan kanila. Lakip sa mga pagbag-o nga gihimo sa Kubernetes Volume Snapshot sa dalan sa pagpagawas sa beta:

  • pagbahin sa CSI external-snapshotter sidecar ngadto sa duha ka controllers,
  • gidugang sekreto para sa pagtangtang (sekreto sa pagtangtang) isip annotation sa sulod sa volume snapshot,
  • bag-ong finalizer (finalizer) aron mapugngan ang snapshot API object nga matangtang kung adunay nahabilin nga mga koneksyon.

Sa panahon sa pagpagawas sa 1.17, ang feature gisuportahan sa tulo ka CSI drivers: GCE Persistent Disk CSI Driver, Portworx CSI Driver ug NetApp Trident CSI Driver. Ang dugang nga mga detalye bahin sa pagpatuman ug paggamit niini makita sa niini nga publikasyon sa blog.

Mga Label sa Cloud Provider

Mga label nga awtomatiko gi-assign sa gibuhat nga mga node ug volume depende sa cloud provider nga gigamit, anaa na sa Kubernetes isip beta nga bersyon sa dugay kaayong panahon - sukad sa pagpagawas sa K8s 1.2 (Abril 2016!). Tungod sa ilang kaylap nga paggamit sa dugay nga panahon, ang mga developers nakahukom, nga panahon na nga ideklara ang feature stable (GA).

Busa, silang tanan giilisan sumala sa ngalan (pinaagi sa topology):

  • beta.kubernetes.io/instance-type β†’ node.kubernetes.io/instance-type
  • failure-domain.beta.kubernetes.io/zone β†’ topology.kubernetes.io/zone
  • failure-domain.beta.kubernetes.io/region β†’ topology.kubernetes.io/region

... apan anaa gihapon ubos sa ilang daan nga mga ngalan (alang sa paatras nga pagkaangay). Bisan pa, girekomenda ang tanan nga mga administrador nga magbalhin sa mga karon nga label. May Kalabutan nga Dokumentasyon Gi-update ang K8s.

Structured nga output sa kubeadm

Gipresentar sa alpha nga bersyon sa unang higayon structured nga output para sa kubeadm utility. Gisuportahan nga mga format: JSON, YAML, Go template.

Pagdasig sa pagpatuman niini nga bahin (sumala sa GIPANGITA ni KEP) mao ang:

Samtang ang Kubernetes mahimong i-deploy sa mano-mano, ang de facto (kon dili de jure) nga sumbanan alang niini nga operasyon mao ang paggamit sa kubeadm. Ang popular nga mga himan sa pagdumala sa sistema sama sa Terraform nagsalig sa kubeadm alang sa pag-deploy sa Kubernetes. Ang giplano nga mga pagpaayo sa Cluster API naglakip sa usa ka composable package para sa Kubernetes bootstrap nga adunay kubeadm ug cloud-init.

Kung wala’y istruktura nga output, bisan ang labing dili makadaot nga mga pagbag-o sa una nga pagtan-aw mahimong makaguba sa Terraform, Cluster API ug uban pang software nga naggamit sa mga resulta sa kubeadm.

Ang among hinanaling mga plano naglakip sa suporta (sa porma sa structured output) para sa mosunod nga mga kubeadm commands:

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

Ilustrasyon sa tubag sa JSON sa usa ka sugo 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="
}

Pagpalig-on sa ubang mga inobasyon

Sa kinatibuk-an, ang pagpagawas sa Kubernetes 1.17 nahitabo ubos sa motto "Kalig-on" Gipadali kini sa kamatuoran nga daghang mga bahin niini (ang ilang kinatibuk-ang gidaghanon mao ang 14) nakadawat sa status sa GA. Lakip kanila:

Uban pang mga pagbag-o

Ang bug-os nga listahan sa mga inobasyon sa Kubernetes 1.17, siyempre, dili limitado sa mga nalista sa ibabaw. Ania ang uban pa (ug alang sa mas kompleto nga lista, tan-awa PAGBAG-O):

  • Ang bahin nga gipresentar sa katapusang pagpagawas nakaabot sa beta nga bersyon RunAsUserName alang sa mga bintana;
  • susama nga pagbag-o nahitabo EndpointSlice API (gikan usab sa K8s 1.16), apan sa pagkakaron kini nga solusyon aron mapausbaw ang performance/scalability sa Endpoint API wala ma-enable pinaagi sa default;
  • Ang mga pod kritikal na karon alang sa operasyon sa cluster mahimong mabuhat dili lang sa namespaces kube-system (alang sa mga detalye, tan-awa ang dokumentasyon para sa Limitahi ang konsumo sa Priority Class);
  • bag-ong kapilian alang sa kubelet - --reserved-cpus β€” nagtugot kanimo sa dayag nga paghubit sa lista sa mga CPU nga gitagana alang sa sistema;
  • alang sa kubectl logs gipresentar bag-ong bandila --prefix, pagdugang sa ngalan sa pod ug tinubdan nga sudlanan sa matag linya sa log;
  • Π² label.Selector gidugang RequiresExactMatch;
  • tanang sudlanan sa kube-dns nagdagan karon nga adunay gamay nga mga pribilehiyo;
  • hyperkube gibulag sa usa ka bulag nga GitHub repository ug dili na iapil sa mga pagpagawas sa Kubernetes;
  • kamahinungdanon mas maayo nga performance kube-proxy para sa dili UDP nga mga pantalan.

Mga pagbag-o sa pagsalig:

  • Ang bersyon sa CoreDNS nga gilakip sa kubeadm mao ang 1.6.5;
  • crictl nga bersyon gi-update sa v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • Pinakabag-o nga gisulayan nga bersyon sa Docker nga gi-upgrade sa 19.03;
  • Ang minimum nga bersyon sa Go nga gikinahanglan sa pagtukod sa Kubernetes 1.17 mao ang 1.13.4.

PS

Basaha usab sa among blog:

Source: www.habr.com

Idugang sa usa ka comment