De popularitate crescente Kubernetes

Heus Habr!

In fine aestatis admonere te volumus quod in re laborare pergo Kubernetes decrevit evulgare articulum ex Stackoverflow demonstrans statum rei in hoc incepto ineunte Iunio.

De popularitate crescente Kubernetes

Legendi frui!

Ad tempus huius articuli scribendo, aetas Kubernetarum proxime est. sex annosac per biennium tantum popularis increvit ut inter se constanter interponeretur maxime ventus pulpita. Tertio hoc anno Kubernetes ferta. Ad recap: Kubernetes suggestum est dispositum ad currendum et orchestrandum in laboribus continentis.

Vasa incohata speciale consilium processuum in Linux segregandi; continentia includi ab MMVII cgroupset cum 2002 spatiis nominalibus. Vasa magis a 2008 designata sunt, cum praesto facta sunt LXC triangulum, et Google proprium corpus internum, quod mechanismum vocant Borgubi "omne opus fit in vasis." Hinc celeriter ad 2013 progredimur, cum prima emissio Docker facta est, et continentia tandem solutionem missae popularis facta est. Eo tempore instrumentum principale orchestrationis continens erat Mesosetsi non popularis. Kubernetes primum anno 2015 emissus est, post quem hoc instrumentum factus est vexillum de facto in agro orchestrationis continentis.

Conetur ad intellegendum cur Kubernetes tam populare sit, paucis quaestionibus respondere conemur. Cum ultimum tempus tincidunt erat concordare potuerunt quomodo applicationes ad productionem explicandam? Quot tincidunt scis qui instrumentis utuntur ut ex cista provisa sunt? Quot nubes administratores hodie sunt qui non intelligunt quot applicationes operantur? Responsiones harum quaestionum in hoc articulo videbimus.

Infrastructure ut YAML

In mundo, qui a Puppet et Chef ad Kubernetes profectus est, unus ex maximis mutationibus motus fuit ab "infrastructure ut codice" ad "infrastructuram ut data" -specifically, like YAML. Omnes opes in Kubernetes, quae siliquas, configurationes, instantias, volumina, etc. explicant, in tabula YAML facile describi possunt. Exempli gratia:

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

Haec sententia faciliorem reddit doctorum DevOps vel SRE ut suas labores plene exprimant sine codice scribendo in linguis sicut Python vel Javascript.

Aliae commoda infrastructurae ordinandi sicut notitia comprehendunt:

  • GitOps or Git Operations Version Control. Hic aditus permittit tibi ut omnes lima Kubernetes YAML in git repositoria custodias, ut prorsus indagare potes cum mutatio facta est, qui fecit, et quid prorsus mutatum est. Hoc perlucentia operationum per ordinem auget atque efficaciam perficiendi auget ambiguitatem eliminando, praesertim ubi operarii quaerendi facultates quas egent. Eodem tempore, facilior fit ut ab ipso facto Kubernetes facultates mutationibus solum petentibus trahendum mergat.
  • Scalability. Cum facultates ut YAML definiuntur, perfacile est botri operario ut unum aut alterum numerum in subsidio Kubernetes mutet, ita mutato quomodo librat. Kubernetes mechanismum praebet pro horizontali autoscaling siliquarum, quae commode adhiberi potest quid minimum et maximus numerus siliquae requirantur in certa instruere conformatione ad humiles et excelsos gradus negotiationis tractandum. Exempli gratia, si figuram explicasti quae facultatem additionalem desiderat ob subitam clavum in negotiatione, tunc maxReplicas mutari potest ab 10 ad 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

  • Securitas ac dolor. YAML magna est aestimatio quomodo res in Kubernetes explicantur. Exempli causa, maior securitas curatur an operae tuae currant ut user non-admin. In hoc casu instrumenta necessaria sunt ut conftest, YAML/JSON validator, plus Open Policy Agent, consilium validator ut contextus SecurityContext in laboribus tuis non permittit vas currere cum privilegiis administratorum. Si hoc requiritur, utentes simplicem consilium adhibere possunt precorut hoc;

package main

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

  • Optiones integrationis cum provisore nubilo. Una ex notissimis trends in alta technologia hodie est, ut in laboribus publicis nubes provisoribus currunt. Using the component nubes-provisor Kubernetes permittit utcunque glomerulum cum provisore nubis in quo incurrit integrare. Exempli gratia, si user application in Kubernetes in AWS decurrit et applicationem illam per ministerium exponere vult, nubes provisor adiuvat statim ministerium creare LoadBalancerquae sponte providebit onus librari Amazon elastica Lond Balancerad redirigere applicationem siliquae negotiationis.

Expandability

Kubernetes valde extensum ac tincidunt amant. Est copia copiarum opum ut siliquae, instruere; StatefulSetssecreta; ConfigMaps, etc. Verum, utentes et tincidunt possunt alias facultates in forma addere consuetudo resource definitiones.

Exempli gratia, si resource definire velimus CronTabergo posses facere aliquid simile;

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

Postea CronTab resource aliquid simile creare possumus:

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

Alia optio extensionis in Kubernetes est ut elit sua dicta scribere possit. operator processus specialis est in botro Kubernetes qui secundum " operatur "imperium circuitu" Auxilio operante, user potest automate administrationem CRDs (rearum definitionum) conferendo cum Kubernetibus API.

Plura instrumenta communitatis sunt quae facile tincidunt suos operarios creare possunt. Inter eos - Operator Framework quod Operator SDK. Hoc SDK fundamentum praebet e quo elit operantem creare cito potest. Ab imperio lineae aliquid tale incipias dicere potes:

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

Hoc totum codicem boilerplate creat pro operante tuo, incluso imagini YAML et in codice 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

Tunc APIs ac moderatorem requisitum addere potes, hoc modo:

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

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

Tum demum convoca operatorem et mitte in registro vasis tui;

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

Si elit vel imperium plus cupit, boilerplatum signum in Go files mutari potest. Exempli gratia, specialia moderatoris mutare, mutare tabellam potes controller.go.

Aliud consilium UBIQUE', permittit te creare constitutiones utentes lima tantum declarativa YAML. Exempli gratia, auctor pro Apache Kafka proxime definiretur ita. Cum ea, tu botrum Kafka instituere potes in summitate Kubernetarum cum iugo iugo tantum;

$ kubectl kudo install zookeeper
$ kubectl kudo install kafka

Et tunc configurare illud cum alio mandato;

$ 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

innovations

Super praeteritum paucos annos maiores Kubernetes emissiones singulis mensibus paucis egressi sunt - hoc est tres ad quattuor maiores emissiones per annum. Numerus notarum novarum in unaquaque earum introductarum non decrescit. Praeterea nulla signa tarditatis etiam in his arduis temporibus sunt - vide quid se habeat Kubernetes actionem in Github.

Novae facultates permittunt te ad operationes glomeras mollius per diversa incommoda. Praeterea programmatores maiore potestate gaudent cum applicationes directe ad productionem disponunt.

civitas

Alia maior pars popularis Kubernetes est vis communitatis eius. Anno 2015, cum versione 1.0 pervenisset, Kubernetes sub patrocinio est Arx nubes Computing Foundation.

Sunt etiam variae communitates SIG (Special Interest Groups) laboratum in diversis locis Kubernetorum ut consilium evolvit. Hi coetus continenter novas notas addunt, operando Kubernetes magis opportunum et opportunum.

The Cloud Native Foundation etiam Virtutes CloudNativeCon/KubeCon, quae, scribendo tempore, est maximum fontem apertum in mundo colloquii. Typice ter in anno tenuit, milia doctorum colligit qui Kubernetes eiusque ecosystematum emendare volunt, ac novas lineas quae singulis tribus mensibus apparent.

Praeterea, Cloud Fundamentum Nativum habet Technical Supervision Committeequae una cum Sigs recenset nova et existentia projects pecunia in nubes ecosystem feruntur. Pleraque ex his inceptis adiuvant Kubernetes vires emendare.

Denique credo Kubernetes non tam prosperum fore quam sine conscio totius communitatis nisu, ubi homines cohaerent sed simul advenis in ovile excipiuntur.

in posterum

Unus e praecipuis provocationibus quas in futurum tincidunt agere debebit est facultas intendere in singulis ipsius codicis, non in infrastructura in quo incurrit. Occurrit haec trends serverless architecti paradigmaquae una ex principibus. Tabulae explicatae iam exstant, v.g. kative ΠΈ OpenFaasquae utuntur Kubernetes infrastructuram ab elit abstrahere.

In hoc articulo tantum superficiem hodiernae civitatis Kubernetes impingimus β€” re vera sicut extremum glaciei est. Utentes Kubernetes multae aliae facultates, facultates et figurationes in promptu habent.

Source: www.habr.com