Kubernetes 1.14: va'aiga lautele o mea fou fou

Kubernetes 1.14: va'aiga lautele o mea fou fou

O lenei po o le a tupu le isi fa'asalalauga o Kubernetes - 1.14. E tusa ai ma tu ma aga na atiaʻe mo la tatou blog, o loʻo matou talanoa e uiga i suiga autu i le lomiga fou o lenei oloa Open Source matagofie.

O fa'amatalaga e fa'aaoga e saunia ai lenei mea e maua mai Kubernetes fa'aleleia laulau su'ega, SUIGA-1.14 ma mataupu fa'atatau, toso talosaga, Kubernetes Enhancement Proposals (KEP).

Tatou amata i se folasaga taua mai le SIG cluster-lifecycle: fuifui failover malosi Kubernetes (poʻo le sili atu ona saʻo, faʻapipiʻi HA faʻafeiloaʻi e le tagata lava ia) ua i ai nei e mafai ona faia fa'aoga masani (i le tulaga o fuifui node tasi) poloaiga kubeadm (init и join). I se faapuupuuga, mo lenei:

  • tusi faamaonia faʻaaogaina e le fuifui ua tuʻuina atu i mea lilo;
  • mo le avanoa e faʻaaoga ai le isi vaega i totonu o le K8s cluster (e pei o le faʻateʻaina o le faʻalagolago i fafo o loʻo i ai muamua) etcd-operator;
  • Fa'amaumau fa'atonuga fa'atonu mo se fa'asoa fa'asoa i fafo e maua ai se fa'atonuga fa'aletonu (i le lumana'i o lo'o fuafua e fa'aumatia lenei fa'alagolago, ae le o le taimi nei).

Kubernetes 1.14: va'aiga lautele o mea fou fou
Fausiaina o se fuifui Kubernetes HA na faia i le kubeadm

O faʻamatalaga o le faʻatinoga e mafai ona maua ile fuafuaga fuafuaina. O lenei faʻaaliga sa umi ona faʻatali: o le alpha alpha na faʻamoemoeina i tua i le K8s 1.9, ae na o le taimi nei na faʻaalia.

API

au apply ma le tautala lautele fa'atonuga fa'atino pasia mai kubectl i apiserver. O le au atiaʻe lava latou e faʻamatala faʻapuupuu a latou faʻaiuga e ala i le fai mai o lena mea kubectl apply - o se vaega taua o le galulue faatasi ma faʻasalalauga i Kubernetes, peitaʻi, "e tumu i faʻamaʻi ma faigata ona faʻaleleia," ma o lea e manaʻomia ai ona toe faʻafoʻi mai lenei gaioiga i le masani ma faʻafeiloaʻi i le vaalele pulea. Fa'ata'ita'iga faigofie ma manino o fa'afitauli o lo'o iai i aso nei:

Kubernetes 1.14: va'aiga lautele o mea fou fou

O faʻamatalaga e uiga i le faʻatinoga o loʻo i totonu MATA. O le sauniuni o loʻo iai nei o le alpha (faʻalauiloa i le beta ua fuafuaina mo le isi faʻasalalauga Kubernetes).

Ua maua i le alpha version avanoa fa'aaoga le polokalame OpenAPI v3 mo fatuina ma lolomiina pepa OpenAPI mo CustomResources (CR) faʻaaogaina e faʻamaonia ai (ituaiga-server) K8s tagata faʻamalamalamaina punaoa (CustomResourceDefinition, CRD). O le fa'asalalauina o le OpenAPI mo le CRD e fa'atagaina ai tagata fa'atau (fa'ata'ita'iga. kubectl) faia faʻamaoniga i lou itu (i totonu kubectl create и kubectl apply) ma tuʻuina atu faʻamaumauga e tusa ai ma le polokalame (kubectl explain). Fa'amatalaga - i MATA.

Ogalaau sa iai muamua ua tatala nei ma le fu'a O_APPEND (ae leai O_TRUNC) ina ia aloese mai le leiloa o ogalaau i nisi tulaga ma mo le faafaigofieina o le tipiina o ogalaau ma mea aoga fafo mo le taamilosaga.

I le tulaga foi o le Kubernetes API, e mafai ona maitauina i totonu PodSandbox и PodSandboxStatus faaopoopo le fanua runtime_handler e faamaumau faamatalaga e uiga i RuntimeClass i le pod (faitau atili e uiga i ai i le tusitusiga e uiga i Kubernetes 1.12 faʻamalolo, lea na fa'aalia ai lenei vasega o se fa'ailoga alpha), ma i le Admission Webhooks faatinoina mafai ona iloa po'o fea fa'aliliuga AdmissionReview latou te lagolagoina. Mulimuli ane, ua i ai nei tulafono Admission Webhooks e mafai ona faatapulaaina le tele o lo latou fa'aogaina e igoa va'aiga ma fa'ava'a fa'apipi'i.

Vaises

PersistentLocalVolumes, lea sa i ai le tulaga beta talu mai le tatalaina K8s 1.10, fofogaina fale mautu (GA): o lenei faitotoa foliga e le o toe faʻaletonu ma o le a aveesea i le Kubernetes 1.17.

Avanoa fa'aaogaina fesuiaiga o le siosiomaga ua ta'ua I lalo API (mo se fa'ata'ita'iga, le igoa pod) mo igoa o fa'atonuga fa'apipi'i pei subPath, na atiina ae - i foliga o se fanua fou subPathExpr, lea ua fa'aaogaina nei e fa'ailoa ai le igoa o le fa'atonuga. O le ata muamua na aliali mai i le Kubernetes 1.11, ae mo le 1.14 na tumau pea i le tulaga o le alpha version.

E pei o le faʻasalalauga muamua a Kubernetes, e tele suiga taua o loʻo faʻalauiloaina mo le atinaʻeina o le CSI (Container Storage Interface):

CSI

Ua avanoa (o se vaega o le alpha version) lagolago toe fa'aleleia mo voluma CSI. Ina ia faʻaaogaina e te manaʻomia le faʻaogaina o le faitotoa faʻapitoa e taʻua ExpandCSIVolumes, faʻapea foʻi ma le iai o le lagolago mo lenei faʻagaioiga i totonu o se avetaavale CSI faapitoa.

O le isi vaega mo le CSI i le alpha version - avanoa fa'asino sa'o (e aunoa ma le fa'aogaina o le PV/PVC) i voluma CSI i totonu ole fa'amatalaga pod. Lenei aveese le faʻatapulaʻaina o le faʻaogaina o le CSI e naʻo le teuina o faʻamatalaga mamao, tatala faitotoa i le lalolagi mo i latou voluma ephemeral i le lotoifale. Mo le fa'aaogaina (fa'ata'ita'iga mai fa'amaumauga) e tatau ona mafai CSIInlineVolume faitotoa foliga.

Ua i ai foi le alualu i luma i le "internals" o Kubernetes e fesoʻotaʻi ma le CSI, lea e le o vaʻaia e tagata faʻamutaina (pulepulega faʻaoga) ... I le taimi nei, e faʻamalosia e le au atinaʻe e lagolagoina ni faʻaliliuga se lua o mea faʻapipiʻi taʻitasi: tasi - "i le auala tuai", i totonu o le K8s codebase (in -tree), ma le lona lua - o se vaega o le CSI fou (faitau atili e uiga i ai, mo se faʻataʻitaʻiga, i iinei). O lenei mea e mafua ai faʻalavelave malamalama e manaʻomia ona foʻia aʻo faʻamautu le CSI lava ia. E le mafai ona na'o le fa'ate'aina o le API o totonu (in-tree) plugins ona o faiga faavae Kubernetes talafeagai.

O nei mea uma na mafua ai le mea moni na oʻo i le alpha version faiga o femalagaiga tulafono fa'apipi'i totonu, faʻatinoina e pei o totonu-laau, i le CSI plugins, faʻafetai o le a faʻaitiitia ai popolega o le au atinaʻe i le lagolagoina o se tasi o latou faʻapipiʻi, ma le fetaui ma API tuai o le a tumau ma e mafai ona faʻaalia ua le toe aoga i le tulaga masani. O loʻo faʻamoemoeina e oʻo mai i le isi faʻasalalauga o Kubernetes (1.15) o le a faʻafeiloaʻi uma faʻapipiʻi ao tuʻuina atu, o le faʻatinoga o le a maua le tulaga beta ma o le a faʻagaoioia i K8s faʻapipiʻi ona o le faaletonu. Mo fa'amatalaga, va'ai fuafuaga fuafuaina. O lenei femalagaiga foi na iu i toilalo mai le tele o tapulaʻa faʻamatalaina e faʻapitoa ao tuʻuina atu (AWS, Azure, GCE, Cinder).

E le gata i lea, lagolago mo poloka poloka ma CSI (CSIBlockVolume) siitia i le lomiga beta.

Nodes/Kubelet

Fa'aaliga Alpha pito fou i Kubelet, fuafuaina mo fa'afo'i fua fa'atatau i punaoa autu. I se tulaga masani, afai na maua muamua e Kubelet fuainumera i luga o le faʻaaogaina o pusa mai le cAdvisor, o lea la o nei faʻamatalaga e sau mai le koneteina taimi taʻavale siosiomaga e ala i le CRI (Container Runtime Interface), ae o le fesoʻotaʻiga mo le galulue ma lomiga tuai o Docker o loʻo faʻasaoina foi. I le taimi muamua, o fuainumera na aoina i Kubelet na auina atu e ala i le REST API, ae o lea ua i ai le pito i luga /metrics/resource/v1alpha1. Fuafuaga umi a tagata atiaʻe o o le fa'aiti'itia o le seti o metric na saunia e Kubelet. I le auala, o nei metrics latou lava o lea ua latou valaau e le o "fuafuaga autu", ae o "fuainumera punaoa", ma ua faamatalaina o "mea muamua-vasega, e pei o le cpu, ma le manatua".

O se mea e sili ona manaia: e ui lava i le manino o le faʻatinoga o le faʻaogaina o le gRPC pito i tua pe a faʻatusatusa i mataupu eseese o le faʻaaogaina o le Prometheus format. (vaai i le i'uga o se tasi o fa'ailoga o lo'o i lalo), na sili ona fiafia le au tusitala i le faatulagaga o tusitusiga a Prometheus ona o le taʻitaʻiga manino o lenei faiga mataʻituina i totonu o le alalafaga.

“E le fetaui le gRPC ma laina paipa mata'ituina. Fa'ai'uga o le a na'o le aoga mo le tu'uina atu o metrics i le Metrics Server po'o le mata'ituina o vaega e tu'u sa'o i ai. Prometheus fa'asologa fa'asologa o tusitusiga pe a fa'aogaina le fa'aoga i le Metrics Server lava lelei mo i matou e sili atu le Prometheus nai lo le gRPC ona o le lautele o le vaetamaina o Prometheus i totonu o le nuu. O le taimi lava e sili atu ai le mautu o le OpenMetrics format, o le a mafai ona matou faʻalatalata atu i le gRPC faʻatinoga ma se faʻavae faʻavae.

Kubernetes 1.14: va'aiga lautele o mea fou fou
O se tasi o su'ega fa'atusatusaga o fa'atinoga o le fa'aogaina o le gRPC ma le Prometheus i le pito fou Kubelet mo metrics. E mafai ona maua nisi kalafa ma isi fa'amatalaga i totonu MATA.

Faatasi ai ma isi suiga:

  • Kubelet nei (tasi taimi) taumafai e taofi koneteina i se tulaga le iloa ae leʻi toe amata ma tape galuega.
  • Faʻaaogaina PodPresets nei i le koneteina init ua faaopoopo o faʻamatalaga tutusa e pei o se pusa masani.
  • kubelet amata faʻaaoga usageNanoCores mai le CRI e tu'uina atu fuainumera, ma mo nodes ma pusa i luga o Windows faaopoopo fuainumera o feso'ota'iga.
  • O lo'o fa'amaumau nei fa'amatalaga o faiga fa'agaioiga ma fa'ata'ita'iga i fa'ailoga kubernetes.io/os и kubernetes.io/arch Node mea (siitia mai le beta i le GA).
  • Malosiaga e faʻamaonia ai se vaega faʻaoga faʻapitoa mo pusa i totonu o se pod (RunAsGroup, na aliali mai i totonu K8s 1.11) alualu i luma a'o le'i beta (fa'agaoioi e ala i le faaletonu).
  • du ma suʻe faʻaaoga i le cAdvisor, suia i le Go fa'atinoga.

CLI

I le cli-runtime ma kubectl faʻaopoopo -k fuʻa mo le tuʻufaʻatasia ma fa'apitoa (i le ala, o lona atinaʻe o loʻo faʻatinoina nei i se fale teu oloa), i.e. e fa'agasolo faila YAML fa'aopoopo mai fa'atonuga fa'apitoa fa'apitoa (mo fa'amatalaga i le fa'aaogaina, va'ai MATA):

Kubernetes 1.14: va'aiga lautele o mea fou fou
Fa'ata'ita'iga o fa'aoga faigofie faila aganu'u (O se faʻaoga sili atu ona faigata o kustomize e mafai i totonu Togi)

E le gata i lea:

  • Faaopoopo 'au fou kubectl create cronjob, o lona igoa e tautala mo ia lava.
  • В kubectl logs o lea e te mafaia tuʻufaʻatasia fu'a -f (--follow mo le tafeina o ogalaau) ma -l (--selector mo fesili fa'ailoga).
  • kubectl aoao atu kopi faila filifilia e wild card.
  • I le au kubectl wait faʻaopoopo fuʻa --all e filifili uma punaoa i le igoa avanoa o le ituaiga punaoa faʻamaonia.

Isi

O agava'a nei ua maua le tulaga mautu (GA):

O isi suiga na faʻaalia i le Kubernetes 1.14:

  • O faiga fa'avae a le RBAC ua le toe fa'atagaina le avanoa API discovery и access-review tagata fa'aoga e aunoa ma le fa'amaoni (le fa'amaonia).
  • Lagolago aloaia CoreDNS mautinoa Na'o Linux, o lea a fa'aaoga le kubeadm e fa'apipi'i ai (CoreDNS) i totonu o se fuifui, e na'o Linux e tatau ona ta'e nodes (nodeSelectors e fa'aoga mo lenei tapula'a).
  • Ole fa'atonuga ole CoreDNS ole taimi nei faʻaaoga fa'apipi'i i luma nai lo le sui. E le gata i lea, ile CoreDNS faaopoopo ReadinessProbe, lea e taofia ai le faapaleniina o uta i pusa talafeagai (e le'i sauni mo le tautua).
  • I le kubeadm, i luga o vaega init poʻo upload-certs, na mafai uta tusi faamaonia e mana'omia e fa'afeso'ota'i ai le va'alele fa'atonutonu fou ile mealilo kubeadm-certs (fa'aoga le fu'a. --experimental-upload-certs).
  • Ua aliali mai se fa'asologa o le alpha mo fa'apipi'i Windows lagolago gMSA (Group Managed Service Account) - faʻamatalaga faʻapitoa i Active Directory e mafai foʻi ona faʻaogaina e pusa.
  • Mo le G.C.E. fa'agaoioia mTLS fa'ailoga i le va etcd ma le kube-apiserver.
  • Fa'afouga i polokalama fa'aoga/fa'alagolago: Alu 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 lagolago i le kubeadm, ma o le la'ititi la'ititi la'ititi la'ititi la'u lagolago le Docker API ua 1.26 nei.

SALA

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga