Maidir leis an éileamh atá ag fás ar Kubernetes

Hey Habr!

Ag deireadh an tsamhraidh, ba mhaith linn a mheabhrú duit go leanaimid ag obair ar an ábhar Kubernetes agus chinn siad alt a fhoilsiú ó Stackoverflow ag léiriú staid chúrsaí an tionscadail seo ag tús mhí an Mheithimh.

Maidir leis an éileamh atá ag fás ar Kubernetes

Bíodh léamh deas agat!

Agus an t-alt seo á scríobh, tá aois Kubernetes thart ar. sé bliana d'aois, agus le dhá bhliain anuas tá méadú tagtha ar an éileamh atá air go bhfuil sé rangaithe go seasta i measc is fearr leat ardáin. Tá Kubernetes sa tríú háit i mbliana. Achoimre: Is ardán é Kubernetes atá deartha chun ualaí oibre coimeádán a rith agus a eagrú.

Thosaigh coimeádáin mar dhearadh speisialta do phróisis aonrú i Linux; tá coimeádáin san áireamh ó 2007 i leith cgroups, agus ó 2002 – spásanna ainmneacha. Dearadh coimeádáin níos fearr fós faoi 2008, nuair a bhí sé ar fáil LXC, agus d'fhorbair Google a mheicníocht chorparáideach inmheánach féin ar a dtugtar Borg, áit a “déantar an obair go léir i gcoimeádáin.” Ón áit seo táimid ar aghaidh go tapa go dtí 2013, nuair a tharla an chéad scaoileadh Docker, agus tháinig coimeádáin ina réiteach mais tóir ar deireadh. Ag an am sin, ba é an príomh-uirlis le haghaidh orchestration coimeádán Mesos, cé nach raibh tóir fiáin air. Scaoileadh Kubernetes den chéad uair in 2015, agus ina dhiaidh sin tháinig an uirlis seo chun bheith ina caighdeán de facto i réimse na n-ionstraimiú coimeádáin.

Chun iarracht a thuiscint cén fáth go bhfuil an oiread sin tóir ar Kubernetes, déanaimis iarracht cúpla ceist a fhreagairt. Cén uair dheireanach a bhí forbróirí in ann teacht ar chomhaontú maidir le conas feidhmchláir a imscaradh chuig táirgeadh? Cé mhéad forbróir a bhfuil a fhios agat a úsáideann na huirlisí mar a chuirtear ar fáil iad as an mbosca? Cé mhéad riarthóir scamall atá ann inniu nach dtuigeann conas a oibríonn feidhmchláir? Breathnóimid ar na freagraí ar na ceisteanna seo san Airteagal seo.

Bonneagar mar YAML

Sa domhan a chuaigh ó Phuipéad agus Chef go Kubernetes, bhí an t-aistriú ó “bonneagar mar chód” go “bonneagar mar shonraí” ar cheann de na hathruithe is mó—go sonrach, cosúil le YAML. Is féidir cur síos a dhéanamh go héasca i gcomhad YAML ar na hacmhainní go léir in Kubernetes, lena n-áirítear pods, cumraíochtaí, cásanna imlonnaithe, toirteanna, etc. Mar shampla:

apiVersion: v1
kind: Pod
metadata:
  name: site
  labels:
    app: web
spec:
  containers:
    - name: front-end
      image: nginx
      ports:
        - containerPort: 80

Déanann an dearcadh seo é níos éasca do ghairmithe DevOps nó SRE a n-ualaí oibre a chur in iúl go hiomlán gan a bheith orthu cód a scríobh i dteangacha cosúil le Python nó Javascript.

I measc na mbuntáistí eile a bhaineann le bonneagar a eagrú mar shonraí tá:

  • Rialú Leagan GitOps nó Oibríochtaí Git. Ligeann an cur chuige seo duit gach comhad Kubernetes YAML a choinneáil i stórtha git, ionas gur féidir leat a rianú go díreach nuair a rinneadh athrú, cé a rinne é, agus cad a d'athraigh go díreach. Méadaíonn sé seo trédhearcacht na n-oibríochtaí ar fud na heagraíochta agus feabhsaíonn sé éifeachtúlacht oibriúcháin trí dheireadh a chur le débhríocht, go háirithe i gcás inar cheart d’fhostaithe na hacmhainní a theastaíonn uathu a lorg. Ag an am céanna, bíonn sé níos éasca athruithe a dhéanamh go huathoibríoch ar acmhainní Kubernetes trí iarratas tarraingthe a chumasc.
  • Inscálaitheacht. Nuair a shainmhínítear acmhainní mar YAML, bíonn sé thar a bheith éasca d’oibreoirí braisle uimhir nó dhó a athrú in acmhainn Kubernetes, rud a athróidh conas a scálaíonn sé. Soláthraíonn Kubernetes meicníocht chun pods a uathscálú go cothrománach, ar féidir é a úsáid chun a chinneadh go háisiúil cad é an t-íosmhéid agus an t-uaslíon pods atá ag teastáil i gcumraíocht imlonnaithe áirithe chun leibhéil ísle agus ard tráchta a láimhseáil. Mar shampla, má tá cumraíocht imlonnaithe agat a éilíonn acmhainn bhreise mar gheall ar spíc tobann sa trácht, is féidir maxReplicas a athrú ó 10 go 20:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp-deployment
  minReplicas: 1
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

  • Slándáil agus bainistíocht. Tá YAML iontach chun meastóireacht a dhéanamh ar an gcaoi a n-imlonnaítear rudaí i Kubernetes. Mar shampla, baineann imní mhór slándála le cibé an bhfuil d’ualaí oibre ag rith mar úsáideoir neamh-riaracháin. Sa chás seo, b'fhéidir go mbeadh uirlisí cosúil le chomórtais, bailíochtóir YAML/JSON, móide Gníomhaire Beartais Oscailte, bailíochtóir polasaí chun a chinntiú go bhfuil an comhthéacs Comhthéacs Slándála ní cheadaíonn do ualaí oibre an coimeádán a rith le pribhléidí riarthóra. Má tá sé seo ag teastáil, is féidir le húsáideoirí polasaí simplí a chur i bhfeidhm trinse, mar seo:

package main

deny[msg] {
  input.kind = "Deployment"
  not input.spec.template.spec.securityContext.runAsNonRoot = true
  msg = "Containers must not run as root"
}

  • Roghanna maidir le comhtháthú le soláthraí scamall. Ceann de na treochtaí is suntasaí in ardteicneolaíocht an lae inniu ná ualaí oibre a reáchtáil ar sholáthraithe scamall poiblí. Ag baint úsáide as an chomhpháirt scamall-soláthraí Ceadaíonn Kubernetes aon bhraisle a chomhtháthú leis an soláthraí scamall ar a ritheann sé. Mar shampla, má ritheann úsáideoir feidhmchlár i Kubernetes ar AWS agus gur mian leis an feidhmchlár sin a nochtadh trí sheirbhís, cabhraíonn an soláthraí scamall leis an tseirbhís a chruthú go huathoibríoch LoadBalancera sholáthróidh an cothromóir ualaigh go huathoibríoch Cothromóir Luchtaithe Leaisteacha Amazonchun trácht a atreorú chuig pods feidhmchlár.

Expandability

Tá Kubernetes an-sínte agus is breá le forbróirí é. Tá sraith acmhainní ar fáil ar nós pods, imscaradh, StatefulSets, rúin, ConfigMaps, etc. Fíor, is féidir le húsáideoirí agus le forbróirí acmhainní eile a chur leis an bhfoirm sainmhínithe acmhainní saincheaptha.

Mar shampla, más mian linn acmhainn a shainiú CronTab, ansin d'fhéadfá rud éigin mar seo a dhéanamh:

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: crontabs.my.org
spec:
  group: my.org
  versions:
    - name: v1
      served: true
      storage: true
      Schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                cronSpec:
                  type: string
                  pattern: '^(d+|*)(/d+)?(s+(d+|*)(/d+)?){4}$'
                replicas:
                  type: integer
                  minimum: 1
                  maximum: 10
  scope: Namespaced
  names:
    plural: crontabs
    singular: crontab
    kind: CronTab
    shortNames:
    - ct

Níos déanaí is féidir linn acmhainn CronTab a chruthú mar seo:

apiVersion: "my.org/v1"
kind: CronTab
metadata:
  name: my-cron-object
spec:
  cronSpec: "* * * * */5"
  image: my-cron-image
  replicas: 5

Rogha eile le haghaidh síneadh i Kubernetes ná gur féidir leis an bhforbróir a ráitis féin a scríobh. Oibreoir Is próiseas speisialta é i mbraisle Kubernetes a oibríonn de réir an “ciorcad rialaithe" Le cabhair ó oibreoir, is féidir leis an úsáideoir bainistiú CRDanna (sainmhínithe acmhainní saincheaptha) a uathoibriú trí fhaisnéis a mhalartú le Kubernetes API.

Tá roinnt uirlisí sa phobal a fhágann go bhfuil sé éasca d'fhorbróirí a n-oibreoirí féin a chruthú. Ina measc - Creat Oibreoir agus Tiománaí SDK. Soláthraíonn an SDK seo bunús ónar féidir le forbróir tosú go tapa ar oibreoir a chruthú. Ligean le rá gur féidir leat tosú ón líne ordaithe rud éigin mar seo:

$ operator-sdk new my-operator --repo github.com/myuser/my-operator

Cruthaíonn sé seo an cód coire go léir do d'oibreoir, lena n-áirítear comhaid YAML agus cód Golang:

.
|____cmd
| |____manager
| | |____main.go
|____go.mod
|____deploy
| |____role.yaml
| |____role_binding.yaml
| |____service_account.yaml
| |____operator.yaml
|____tools.go
|____go.sum
|____.gitignore
|____version
| |____version.go
|____build
| |____bin
| | |____user_setup
| | |____entrypoint
| |____Dockerfile
|____pkg
| |____apis
| | |____apis.go
| |____controller
| | |____controller.go

Ansin is féidir leat na APInna agus an rialtóir riachtanach a chur leis, mar seo:

$ operator-sdk add api --api-version=myapp.com/v1alpha1 --kind=MyAppService

$ operator-sdk add controller --api-version=myapp.com/v1alpha1 --kind=MyAppService

Ansin, ar deireadh, cuir an t-oibreoir le chéile agus seol chuig clárlann do choimeádáin é:

$ operator-sdk build your.container.registry/youruser/myapp-operator

Más mian leis an bhforbróir níos mó rialaithe fós, is féidir an cód boilerplate i gcomhaid Go a athrú. Mar shampla, chun sonraí an rialaitheora a mhodhnú, is féidir leat athruithe a dhéanamh ar an gcomhad controller.go.

Tionscadal eile ngach áit, ligeann duit ráitis a chruthú ag baint úsáide as comhaid YAML dearbhaithe amháin. Mar shampla, shainmhínítear thart ar oibreoir do Apache Kafka mar sin. Leis, is féidir leat braisle Kafka a shuiteáil ar bharr Kubernetes gan ach cúpla ordú:

$ kubectl kudo install zookeeper
$ kubectl kudo install kafka

Agus ansin é a chumrú le hordú eile:

$ kubectl kudo install kafka --instance=my-kafka-name 
            -p ZOOKEEPER_URI=zk-zookeeper-0.zk-hs:2181 
            -p ZOOKEEPER_PATH=/my-path -p BROKER_CPUS=3000m 
            -p BROKER_COUNT=5 -p BROKER_MEM=4096m 
            -p DISK_SIZE=40Gi -p MIN_INSYNC_REPLICAS=3 
            -p NUM_NETWORK_THREADS=10 -p NUM_IO_THREADS=20

Nuálaíocht

Le blianta beaga anuas, tá eisiúintí móra Kubernetes ag teacht amach gach cúpla mí - is é sin, trí nó ceithre mhóreisiúint in aghaidh na bliana. Ní thagann laghdú ar líon na ngnéithe nua a thugtar isteach i ngach ceann acu. Ina theannta sin, níl aon chomharthaí ann go bhfuil siad ag moilliú fiú sna hamanna deacra seo - féach ar an scéal anois Gníomhaíocht tionscadail Kubernetes ar Github.

Ligeann cumais nua duit oibríochtaí a bhraisliú ar bhealach níos solúbtha thar ualaí oibre éagsúla. Ina theannta sin, bíonn smacht níos fearr ag ríomhchláraitheoirí agus iad ag imscaradh feidhmchláir go díreach chuig táirgeadh.

Pobail

Gné mhór eile den éileamh atá ag Kubernetes ná neart a phobail. In 2015, tar éis dó leagan 1.0 a bhaint amach, bhí Kubernetes urraithe ag Fondúireacht Ríomhaireachta Dúchasach Cloud.

Tá pobail éagsúla ann freisin GCS (Grúpaí Sainspéise) dírithe ar oibriú ar réimsí éagsúla de Kubernetes de réir mar a thagann an tionscadal chun cinn. Tá gnéithe nua á gcur leis na grúpaí seo i gcónaí, rud a fhágann go bhfuil oibriú le Kubernetes níos áisiúla agus níos áisiúla.

Déanann an Cloud Native Foundation óstáil freisin ar CloudNativeCon/KubeCon, arb í an chomhdháil foinse oscailte is mó ar domhan tráth scríofa na tuarascála seo. De ghnáth ar siúl trí huaire sa bhliain, tugann sé le chéile na mílte gairmithe atá ag iarraidh feabhas a chur ar Kubernetes agus a éiceachóras, chomh maith le foghlaim gnéithe nua le feiceáil gach trí mhí.

Thairis sin, tá Cloud Native Foundation An Coiste Maoirseachta Teicniúla, a dhéanann athbhreithniú, in éineacht le SIGanna, nua agus reatha Tionscadail cistí atá dírithe ar an éiceachóras scamall. Cuidíonn an chuid is mó de na tionscadail seo le feabhas a chur ar láidreachtaí Kubernetes.

Mar fhocal scoir, creidim nach mbeadh Kubernetes chomh rathúil agus atá sé gan iarrachtaí comhfhiosacha an phobail ar fad, áit a gcloíonn daoine le chéile ach ag an am céanna fáilte a chur roimh dhaoine nua sa bhuaile.

An todhchaí

Ceann de na príomhdhúshláin a mbeidh ar fhorbróirí déileáil leo sa todhchaí ná an cumas díriú ar shonraí an chóid féin, agus ní ar an mbonneagar ina ritheann sé. Buaileann sé leis na treochtaí seo paradigm ailtireachta gan fhreastalaí, atá ar cheann de na cinn is mó le rá sa lá atá inniu ann. Tá ardchreatanna ann cheana féin, e.g. sceana и OscailFaas, a úsáideann Kubernetes chun an bonneagar a bhaint ón bhforbróir.

San Airteagal seo, níl ach dromchla staid reatha Kubernetes scríobtha againn - i ndáiríre, níl ann ach barr an chnoic oighir. Tá go leor acmhainní, cumais agus cumraíochtaí eile ar fáil d'úsáideoirí Kubernetes.

Foinse: will.com

Add a comment