Kubernetes 1.17: topimaso ny fanavaozana lehibe

Omaly 9 Desambra, nitranga Famoahana manaraka ny Kubernetes - 1.17. Araka ny fomban-drazana novolavolaina ho an'ny bilaoginay, miresaka momba ny fiovana lehibe indrindra amin'ny dikan-teny vaovao izahay.

Kubernetes 1.17: topimaso ny fanavaozana lehibe

Ny fampahalalana ampiasaina hanomanana ity fitaovana ity dia nalaina tamin'ny fanambarana ofisialy, tabilao fanaraha-maso fanatsarana Kubernetes, CHANGELOG-1.17 ary ny olana mifandraika amin'izany, ny fangatahana fisarihana, ary ny tolo-kevitry ny fanatsarana ny Kubernetes (KEP). Inona àry no vaovao?..

Topology-aware routing

Efa ela no niandrasan'ny vondrom-piarahamonina Kubernetes ity endri-javatra ity - Topology-aware service routing. raha CAP izany dia avy amin'ny Oktobra 2018, ary ny ofisialy hatsarana - 2 taona lasa izay, ny olana mahazatra (tahaka ny izany) - ary taona vitsivitsy lasa izay ...

Ny hevitra ankapobeny dia ny manome fahafahana hampihatra ny lalana "eo an-toerana" ho an'ny serivisy monina ao Kubernetes. Ny "toerana" amin'ity tranga ity dia midika hoe "ambaratonga topolojika mitovy" (ambaratonga topologie), izay mety ho:

  • node mitovy amin'ny serivisy,
  • ny rack server mitovy,
  • faritra iray ihany
  • ilay mpamatsy rahona ihany,
  • ...

Ohatra amin'ny fampiasana ity endri-javatra ity:

  • fitsitsiana amin'ny fifamoivoizana amin'ny fametrahana rahona misy faritra maro azo ampiasaina (multi-AZ) - jereo. fanoharana vaovao mampiasa ny ohatry ny fifamoivoizana avy amin'ny faritra iray ihany, fa samy hafa AZ ao amin'ny AWS;
  • ambany kokoa ny fahatanterahan'ny fampandehanana/famokarana tsaratsara kokoa;
  • tolotra sharded izay manana fampahafantarana eo an-toerana momba ny node isaky ny shard;
  • fametrahana fluentd (na analogues) amin'ny node mitovy amin'ireo fampiharana izay angonina ny logs;
  • ...

Ny lalana toy izany, izay "mahafantatra" momba ny topolojia, dia antsoina koa hoe fifandraisana amin'ny tambajotra - amin'ny analogy amin'ny fifandraisana node, pod affinity/anti-affinity na niseho tsy ela izay Topology-Aware Volume Scheduling (ary Fanomezana Volume). Ambaratonga fampiharana ankehitriny ServiceTopology amin'ny Kubernetes - version alpha.

Raha mila antsipiriany momba ny fomba fiasan'ilay endri-javatra sy ny fomba ahafahanao mampiasa azy, dia vakio ity lahatsoratra ity avy amin'ny iray amin'ireo mpanoratra.

IPv4/IPv6 fanohanana roa stack

Fandrosoana lehibe raikitra amin'ny endri-tambajotra hafa: fanohanana miaraka amin'ny stacks IP roa, izay nampidirina voalohany tao K8s 1.16. Indrindra indrindra, ny famoahana vaovao dia nitondra ireto fanovana manaraka ireto:

  • amin'ny kube-proxy ampiharina ny fahafahana miasa miaraka amin'ny fomba roa (IPv4 sy IPv6);
  • в Pod.Status.PodIPs niseho fanohanana ny API midina (miaraka amin'ny in /etc/hosts ankehitriny dia mitaky ny mpampiantrano mba hanampy adiresy IPv6);
  • fanohanana roa stack AHOANA (Kubernetes IN Docker) ary kubeadm;
  • fanavaozana e2e fitsapana.

Kubernetes 1.17: topimaso ny fanavaozana lehibe
SARY mampiasa roa stack IPV4/IPv6 amin'ny KIND

Fandrosoana amin'ny CSI

Nambara ho stable fanohanana topologie ho an'ny fitahirizana mifototra amin'ny CSI, nampidirina voalohany tao K8s 1.12.

Initiative ho an'ny fifindran'ny plugins volume mankany CSI - CSI Migration - tonga amin'ny version beta. Tena ilaina io endri-javatra io mba handikana ireo plugins fitahirizana efa misy (ao anaty hazo) amin'ny interface maoderina (CSI, tsy misy hazo) tsy hitan'ny mpampiasa farany Kubernetes. Ny mpandrindra Cluster dia mila manome alalana ny CSI Migration ihany, aorian'izay dia hanohy "miasa fotsiny" ny loharanon-karena sy ny enta-mavesatry ny fanjakana efa misy... fa mampiasa ny mpamily CSI farany indrindra fa tsy ireo efa lany andro tafiditra ao amin'ny core Kubernetes.

Amin'izao fotoana izao, ny fifindra-monina ho an'ny mpamily AWS EBS dia efa vonona amin'ny version beta (kubernetes.io/aws-ebs) ary GCE PD (kubernetes.io/gce-pd). Ny vinavina ho an'ny trano fitahirizana hafa dia toy izao manaraka izao:

Kubernetes 1.17: topimaso ny fanavaozana lehibe

Niresaka momba ny fomba nahatongavan'ny fanohanana fitahirizana "traditional" tao amin'ny K8s tao amin'ny CSI izahay ity lahatsoratra ity. Ary ny fifindran'ny CSI amin'ny sata beta dia natokana ho an'ny publication misaraka ao amin'ny bilaogin'ny tetikasa.

Ho fanampin'izany, ny fiasa manan-danja iray hafa amin'ny tontolon'ny CSI, izay niainga (fampiharana alfa) ao amin'ny K1.17s 8, dia nahatratra ny sata beta (izany hoe alefa amin'ny alàlan'ny default) amin'ny famoahana Kubernetes 1.12 - mamorona snapshots ary fahasitranana avy amin'izy ireo. Anisan'ireo fanovana natao tamin'ny Kubernetes Volume Snapshot amin'ny fomba famoahana beta:

  • mizara ny CSI ivelany-snapshotter sidecar ho roa controller,
  • nampiana tsiambaratelo ho famafana (miafina famafana) ho fanamarihan'ny votoatin'ny sary an-tsary,
  • finalizer vaovao (famoahana) mba tsy ho voafafa ny zavatra snapshot API raha misy fifandraisana sisa.

Amin'ny fotoana famoahana 1.17, ny endri-javatra dia tohanan'ny mpamily CSI telo: GCE Persistent Disk CSI Driver, Portworx CSI Driver ary NetApp Trident CSI Driver. Ny antsipiriany bebe kokoa momba ny fampiharana sy ny fampiasana azy dia azo jerena ao Ity publication ity amin'ny bilaogy.

Labels Mpanome Cloud

Etikety izay mandeha ho azy voatendry ho amin'ny node sy volume noforonina miankina amin'ny mpamatsy rahona ampiasaina, efa hita ao amin'ny Kubernetes ho dikan-teny beta efa ela be - hatramin'ny nivoahan'ny K8s 1.2 (Aprily 2016!). Noho ny fampiasana azy ireo nandritra ny fotoana ela, developer Nanapa-kevitra, fa tonga ny fotoana hanambarana ny endri-javatra stable (GA).

Noho izany, nomena anarana izy rehetra (amin'ny topologie):

  • 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

... saingy mbola azo alaina amin'ny anarany taloha (ho an'ny fifanarahana mihemotra). Na izany aza, ny mpitantana rehetra dia asaina mifindra amin'ny etikety ankehitriny. Documentation mifandraika K8s dia nohavaozina.

Output voarafitra amin'ny kubeadm

Naseho voalohany tamin'ny version alpha vokatra voarafitra ho an'ny utility kubeadm. Format tohanana: JSON, YAML, Go template.

Motivation amin'ny fampiharana io endri-javatra io (araka ny CAP) dia:

Raha azo apetraka amin'ny tanana ny Kubernetes, ny fenitry ny de facto (raha tsy de jure) ho an'ity asa ity dia ny fampiasana kubeadm. Ny fitaovana fitantanana rafitra malaza toa an'i Terraform dia miankina amin'ny kubeadm amin'ny fametrahana Kubernetes. Ny fanatsarana efa nomanina ho an'ny Cluster API dia misy fonosana composable ho an'ny bootstrap Kubernetes miaraka amin'ny kubeadm sy cloud-init.

Raha tsy misy vokatra voarafitra, na dia ny fiovana tsy mampidi-doza indrindra aza raha vao jerena dia mety handrava ny Terraform, Cluster API ary rindrambaiko hafa mampiasa ny valin'ny kubeadm.

Ny drafitray avy hatrany dia misy fanohanana (amin'ny endrika vokatra voarafitra) ho an'ireto baiko kubeadm manaraka ireto:

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

Sarin'ny valin'ny JSON amin'ny baiko 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="
}

Ny fanamafisana ny fanavaozana hafa

Amin'ny ankapobeny, ny famoahana ny Kubernetes 1.17 dia natao teo ambanin'ny teny filamatra "fahamarinan-toerana" Izany dia nanamora ny fisian'ny endri-javatra maro ao anatiny (ny isan'izy ireo dia 14) nahazo sata GA. Anisan-dry zareo:

Fiovana hafa

Ny lisitra feno amin'ny fanavaozana ao amin'ny Kubernetes 1.17, mazava ho azy, dia tsy voafetra ho an'ireo voatanisa etsy ambony. Ireto misy hafa (ary raha mila lisitra feno kokoa, jereo CHANGELOG):

  • Ny endri-javatra naseho tamin'ny famoahana farany dia tonga tamin'ny version beta RunAsUserName ho an'ny varavarankely;
  • fiovana mitovy nanjo EndpointSlice API (avy amin'ny K8s 1.16 ihany koa), saingy amin'izao fotoana izao dia tsy alefa amin'ny alàlan'ny default ity vahaolana ity hanatsarana ny fahombiazan'ny Endpoint API;
  • Ny pods izao dia tena ilaina amin'ny fiasan'ny cluster azo foronina tsy amin'ny anaran'ny toerana ihany kube-system (ho an'ny antsipiriany dia jereo ny antontan-taratasy momba ny Mametra ny fanjifana kilasy laharam-pahamehana);
  • safidy vaovao ho an'ny kubelet - --reserved-cpus - mamela anao hamaritra mazava tsara ny lisitry ny CPU natokana ho an'ny rafitra;
  • ho an'ny kubectl logs aseho saina vaovao --prefix, manampy ny anaran'ny pod sy ny fitoeran'entana loharano isaky ny andalana amin'ny log;
  • в label.Selector nanampy RequiresExactMatch;
  • ny kaontenera rehetra ao amin'ny kube-dns mihazakazaka izao manana tombontsoa kely kokoa;
  • hyperkube misaraka amin'ny tahiry GitHub misaraka ary tsy ho tafiditra ao amin'ny famoahana Kubernetes intsony;
  • be fanatsarana fampisehoana kube-proxy ho an'ny seranana tsy UDP.

Fiovana miankina:

  • Ny kinova CoreDNS tafiditra ao amin'ny kubeadm dia 1.6.5;
  • crictl version nohavaozina ho v1.16.1;
  • CSI 1.2.0;
  • snsd 3.4.3;
  • Ny kinova Docker voasedra farany dia nohavaozina ho 19.03;
  • Ny dikan-teny Go kely indrindra ilaina hanamboarana Kubernetes 1.17 dia 1.13.4.

Sal

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment