Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Ni ọdun yii, apejọ European Kubernetes akọkọ - KubeCon + CloudNativeCon Europe 2020 - jẹ foju. Sibẹsibẹ, iru iyipada ni ọna kika ko ṣe idiwọ fun wa lati jiṣẹ ijabọ ti a ti pinnu gigun wa “Lọ? Bash! Pade Shell-operator” ti a ṣe igbẹhin si iṣẹ akanṣe Orisun Orisun wa ikarahun-onišẹ.

Nkan yii, atilẹyin nipasẹ ọrọ naa, ṣafihan ọna kan lati ṣe irọrun ilana ti ṣiṣẹda awọn oniṣẹ fun Kubernetes ati ṣafihan bi o ṣe le ṣe tirẹ pẹlu igbiyanju kekere nipa lilo oniṣẹ ikarahun kan.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Iṣafihan fidio iroyin (~ iṣẹju 23 ni Gẹẹsi, akiyesi alaye diẹ sii ju nkan naa lọ) ati jade akọkọ lati inu rẹ ni fọọmu ọrọ. Lọ!

Ni Flant a ṣe iṣapeye nigbagbogbo ati adaṣe ohun gbogbo. Loni a yoo sọrọ nipa imọran moriwu miiran. Pade: awọsanma-abinibi ikarahun akosile!

Sibẹsibẹ, jẹ ki a bẹrẹ pẹlu ọrọ-ọrọ ninu eyiti gbogbo eyi ṣẹlẹ: Kubernetes.

Kubernetes API ati awọn oludari

API ni Kubernetes le jẹ aṣoju bi iru olupin faili pẹlu awọn ilana fun iru ohun kọọkan. Awọn nkan (awọn orisun) lori olupin yii jẹ aṣoju nipasẹ awọn faili YAML. Ni afikun, olupin naa ni API ipilẹ ti o fun ọ laaye lati ṣe awọn nkan mẹta:

  • gba awọn oluşewadi nipasẹ iru ati orukọ rẹ;
  • ayipada awọn orisun (ninu ọran yii, olupin naa tọju awọn nkan “tọ” nikan - gbogbo awọn ti a ṣẹda ti ko tọ tabi ti a pinnu fun awọn ilana miiran jẹ asonu);
  • orin fun awọn oluşewadi (ninu apere yi, olumulo lẹsẹkẹsẹ gba awọn oniwe-lọwọlọwọ / imudojuiwọn version).

Nitorinaa, Kubernetes ṣiṣẹ bi iru olupin faili (fun awọn ifihan YAML) pẹlu awọn ọna ipilẹ mẹta (bẹẹni, nitootọ awọn miiran wa, ṣugbọn a yoo fi wọn silẹ fun bayi).

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Iṣoro naa ni pe olupin le fipamọ alaye nikan. Lati mu ṣiṣẹ o nilo adarí - keji pataki julọ ati imọran ipilẹ ni agbaye ti Kubernetes.

Nibẹ ni o wa meji akọkọ orisi ti oludari. Ni igba akọkọ ti gba alaye lati Kubernetes, ilana ti o ni ibamu si oni iteeye kannaa, ati ki o pada si awọn K8s. Ekeji gba alaye lati Kubernetes, ṣugbọn, ko dabi iru akọkọ, iyipada ipo ti diẹ ninu awọn orisun ita.

Jẹ ki a ṣe akiyesi diẹ si ilana ti ṣiṣẹda Imuṣiṣẹ ni Kubernetes:

  • Alakoso imuṣiṣẹ (pẹlu ninu kube-controller-manager) gba alaye nipa imuṣiṣẹ ati ṣẹda ReplicaSet.
  • ReplicaSet ṣẹda awọn ẹda meji (awọn adarọ-ese meji) ti o da lori alaye yii, ṣugbọn awọn adarọ-ese wọnyi ko ti ṣeto sibẹsibẹ.
  • Oluṣeto iṣeto awọn adarọ-ese ati ṣafikun alaye ipade si awọn YAML wọn.
  • Kubelets ṣe awọn ayipada si ohun elo ita (sọ, Docker).

Lẹhinna gbogbo ọkọọkan yii ni a tun ṣe ni ọna yiyipada: kubelet ṣayẹwo awọn apoti, ṣe iṣiro ipo podu ati firanṣẹ pada. Adarí ReplicaSet gba ipo naa o si ṣe imudojuiwọn ipo ti ṣeto ajọra. Ohun kanna ni o ṣẹlẹ pẹlu Oluṣakoso Imuṣiṣẹ ati olumulo nipari gba ipo imudojuiwọn (lọwọlọwọ).

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Ikarahun-onišẹ

O wa ni pe Kubernetes da lori iṣẹ apapọ ti awọn olutona pupọ (awọn oniṣẹ Kubernetes tun jẹ awọn oludari). Ibeere naa waye, bawo ni a ṣe le ṣẹda oniṣẹ ẹrọ tirẹ pẹlu ipa diẹ? Ati pe nibi ọkan ti a ni idagbasoke wa si igbala ikarahun-onišẹ. O gba awọn alakoso eto laaye lati ṣẹda awọn alaye tiwọn nipa lilo awọn ọna ti o faramọ.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Apeere ti o rọrun: didakọ awọn asiri

Jẹ ki a wo apẹẹrẹ ti o rọrun.

Jẹ ki a sọ pe a ni iṣupọ Kubernetes kan. O ni aaye orukọ kan default pẹlu diẹ ninu awọn Secret mysecret. Ni afikun, awọn aaye orukọ miiran wa ninu iṣupọ. Diẹ ninu wọn ni aami kan pato ti a so mọ wọn. Ibi-afẹde wa ni lati daakọ Aṣiri sinu awọn aye orukọ pẹlu aami kan.

Iṣẹ naa jẹ idiju nipasẹ otitọ pe awọn aaye orukọ tuntun le han ninu iṣupọ, ati diẹ ninu wọn le ni aami yii. Ni apa keji, nigbati aami ba paarẹ, Aṣiri yẹ ki o tun paarẹ. Ni afikun si eyi, Aṣiri funrararẹ tun le yipada: ninu ọran yii, Aṣiri tuntun gbọdọ jẹ daakọ si gbogbo awọn aaye orukọ pẹlu awọn aami. Ti Aṣiri ba paarẹ lairotẹlẹ ni aaye orukọ eyikeyi, oniṣẹ wa yẹ ki o mu pada lẹsẹkẹsẹ.

Ni bayi ti a ti ṣe agbekalẹ iṣẹ-ṣiṣe naa, o to akoko lati bẹrẹ imuse rẹ nipa lilo oniṣẹ ikarahun. Ṣugbọn akọkọ o tọ lati sọ awọn ọrọ diẹ nipa ikarahun-oṣiṣẹ funrararẹ.

Bawo ni ikarahun-onišẹ ṣiṣẹ

Bii awọn ẹru iṣẹ miiran ni Kubernetes, oniṣẹ ẹrọ ikarahun n ṣiṣẹ ni adarọ ese tirẹ. Ni yi podu ni liana /hooks executable awọn faili ti wa ni ipamọ. Iwọnyi le jẹ awọn iwe afọwọkọ ni Bash, Python, Ruby, ati bẹbẹ lọ. A pe iru awọn faili ti o le ṣiṣẹ ni kio (awọn titiipa).

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Shell-operator ṣe alabapin si awọn iṣẹlẹ Kubernetes ati ṣiṣe awọn kio wọnyi ni idahun si awọn iṣẹlẹ wọnyẹn ti a nilo.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Bawo ni oniṣẹ ẹrọ ikarahun ṣe mọ iru kio lati ṣiṣẹ ati nigbawo? Oro naa ni pe gbogbo kio ni awọn ipele meji. Lakoko ibẹrẹ, oniṣẹ ẹrọ ikarahun nṣiṣẹ gbogbo awọn kio pẹlu ariyanjiyan --config Eyi ni ipele iṣeto. Ati lẹhin rẹ, awọn kio ti wa ni ifilọlẹ ni ọna deede - ni idahun si awọn iṣẹlẹ ti wọn so mọ. Ninu ọran ti o kẹhin, kio naa gba ipo-ọna abuda (abuda o tọ) - data ni ọna kika JSON, eyiti a yoo sọrọ nipa ni alaye diẹ sii ni isalẹ.

Ṣiṣe oniṣẹ ẹrọ ni Bash

Bayi a ti ṣetan fun imuse. Lati ṣe eyi, a nilo lati kọ awọn iṣẹ meji (nipasẹ ọna, a ṣe iṣeduro ìkàwé shell_lib, eyi ti o mu ki awọn kikọ kikọ rọrun pupọ ni Bash):

  • akọkọ ni a nilo fun ipele iṣeto - o ṣe afihan ipo-ọna abuda;
  • awọn keji ni awọn ifilelẹ ti awọn kannaa ti awọn kio.

#!/bin/bash

source /shell_lib.sh

function __config__() {
  cat << EOF
    configVersion: v1
    # BINDING CONFIGURATION
EOF
}

function __main__() {
  # THE LOGIC
}

hook::run "$@"

Igbesẹ ti o tẹle ni lati pinnu kini awọn nkan ti a nilo. Ninu ọran wa, a nilo lati ṣe atẹle:

  • orisun ikoko fun ayipada;
  • gbogbo awọn aaye orukọ ninu iṣupọ, ki o le mọ ewo ninu wọn ti o ni aami ti a so mọ wọn;
  • awọn aṣiri ibi-afẹde lati rii daju pe gbogbo wọn wa ni imuṣiṣẹpọ pẹlu aṣiri orisun.

Alabapin si awọn ìkọkọ orisun

Asopọmọra iṣeto ni fun o jẹ ohun rọrun. A fihan pe a nifẹ si Aṣiri pẹlu orukọ naa mysecret ni aaye orukọ default:

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

function __config__() {
  cat << EOF
    configVersion: v1
    kubernetes:
    - name: src_secret
      apiVersion: v1
      kind: Secret
      nameSelector:
        matchNames:
        - mysecret
      namespace:
        nameSelector:
          matchNames: ["default"]
      group: main
EOF

Bi abajade, kio naa yoo jẹ okunfa nigbati aṣiri orisun ba yipada (src_secret) ati gba ọrọ-ọrọ abuda wọnyi:

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Bi o ti le rii, o ni orukọ ati gbogbo nkan naa ninu.

Mimu abala awọn aaye orukọ

Bayi o nilo lati ṣe alabapin si awọn aaye orukọ. Lati ṣe eyi, a pato awọn wọnyi iṣeto ni abuda:

- name: namespaces
  group: main
  apiVersion: v1
  kind: Namespace
  jqFilter: |
    {
      namespace: .metadata.name,
      hasLabel: (
       .metadata.labels // {} |  
         contains({"secret": "yes"})
      )
    }
  group: main
  keepFullObjectsInMemory: false

Bi o ti le rii, aaye tuntun ti han ninu iṣeto pẹlu orukọ jqFilter. Gẹgẹbi orukọ rẹ ṣe daba, jqFilter Ajọ jade gbogbo kobojumu alaye ati ki o ṣẹda titun kan JSON ohun pẹlu awọn aaye ti o jẹ ti awọn anfani si wa. Kio kan pẹlu iṣeto ti o jọra yoo gba ọrọ-ọrọ abuda atẹle yii:

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

O ni ohun orun filterResults fun aaye orukọ kọọkan ninu iṣupọ. Bolianu oniyipada hasLabel tọkasi boya aami kan ti so mọ aaye orukọ ti a fun. Ayanfẹ keepFullObjectsInMemory: false tọkasi pe ko si iwulo lati tọju awọn nkan pipe ni iranti.

Ipasẹ awọn asiri afojusun

A ṣe alabapin si gbogbo awọn Aṣiri ti o ni alaye asọye pato managed-secret: "yes" (awọn wọnyi ni ibi-afẹde wa dst_secrets):

- name: dst_secrets
  apiVersion: v1
  kind: Secret
  labelSelector:
    matchLabels:
      managed-secret: "yes"
  jqFilter: |
    {
      "namespace":
        .metadata.namespace,
      "resourceVersion":
        .metadata.annotations.resourceVersion
    }
  group: main
  keepFullObjectsInMemory: false

Fun idi eyi jqFilter Ajọ jade gbogbo alaye ayafi awọn namespace ati paramita resourceVersion. Paramita ti o kẹhin ti kọja si asọye nigbati o ṣẹda aṣiri: o fun ọ laaye lati ṣe afiwe awọn ẹya ti awọn aṣiri ati tọju wọn ni imudojuiwọn.

Kio kan ti a tunto ni ọna yii yoo, nigbati o ba ṣiṣẹ, gba awọn ipo abuda mẹta ti a ṣalaye loke. Wọn le ronu bi iru aworan aworan (foto kamera) iṣupọ.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Da lori gbogbo alaye yii, alugoridimu ipilẹ le ni idagbasoke. O ṣe atunṣe lori gbogbo awọn aaye orukọ ati:

  • ti o ba ti hasLabel ni itumo true fun aaye orukọ lọwọlọwọ:
    • ṣe afiwe aṣiri agbaye pẹlu ti agbegbe:
      • ti wọn ba jẹ kanna, ko ṣe ohunkohun;
      • ti o ba ti nwọn yato - executes kubectl replace tabi create;
  • ti o ba ti hasLabel ni itumo false fun aaye orukọ lọwọlọwọ:
    • rii daju pe Aṣiri ko si ni aaye orukọ ti a fun:
      • ti Aṣiri agbegbe ba wa, paarẹ lilo rẹ kubectl delete;
      • ti a ko ba ri Aṣiri agbegbe, ko ṣe nkankan.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Imuse ti alugoridimu ni Bash o le ṣe igbasilẹ ninu wa awọn ibi ipamọ pẹlu apẹẹrẹ.

Iyẹn ni bii a ṣe le ṣẹda oludari Kubernetes ti o rọrun nipa lilo awọn laini 35 ti atunto YAML ati nipa iye kanna ti koodu Bash! Iṣẹ ikarahun-onišẹ ni lati so wọn pọ.

Sibẹsibẹ, didakọ awọn aṣiri kii ṣe agbegbe nikan ti ohun elo ti ohun elo naa. Eyi ni awọn apẹẹrẹ diẹ diẹ sii lati fi ohun ti o lagbara han han.

Apẹẹrẹ 1: Ṣiṣe awọn ayipada si ConfigMap

Jẹ ká wo ni imuṣiṣẹ, eyi ti oriširiši meta pods. Pods lo ConfigMap lati tọju iṣeto ni diẹ. Nigbati awọn adarọ-ese ti ṣe ifilọlẹ, ConfigMap wa ni ipo kan (jẹ ki a pe v.1). Nitorinaa, gbogbo awọn adarọ-ese lo ẹya pato ti ConfigMap yii.

Bayi jẹ ki a ro pe ConfigMap ti yipada (v.2). Sibẹsibẹ, awọn adarọ-ese yoo lo ẹya iṣaaju ti ConfigMap (v.1):

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Bawo ni MO ṣe le gba wọn lati yipada si ConfigMap tuntun (v.2)? Idahun si jẹ rọrun: lo awoṣe kan. Jẹ ki a ṣafikun asọye checksum si apakan naa template Awọn atunto imuṣiṣẹ:

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Bi abajade, checksum yii yoo forukọsilẹ ni gbogbo awọn podu, ati pe yoo jẹ kanna bi ti Imuṣiṣẹ. Bayi o kan nilo lati ṣe imudojuiwọn akọsilẹ nigbati ConfigMap ba yipada. Ati pe oniṣẹ ẹrọ ikarahun wa ni ọwọ ninu ọran yii. Gbogbo ohun ti o nilo lati ṣe ni eto ìkọ kan ti yoo ṣe alabapin si ConfigMap ki o ṣe imudojuiwọn checksum.

Ti olumulo ba ṣe awọn ayipada si ConfigMap, oniṣẹ ẹrọ ikarahun yoo ṣe akiyesi wọn yoo tun ṣe iṣiro sọwedowo naa. Lẹhin eyiti idan Kubernetes yoo wa sinu ere: akọrin yoo pa adarọ ese naa, ṣẹda tuntun kan, duro fun o lati di. Ready, ati ki o tẹsiwaju si tókàn. Bi abajade, Imuṣiṣẹ yoo muṣiṣẹpọ ati yipada si ẹya tuntun ti ConfigMap.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Apẹẹrẹ 2: Nṣiṣẹ pẹlu Awọn Itumọ Awọn orisun Aṣa

Bi o ṣe mọ, Kubernetes gba ọ laaye lati ṣẹda awọn iru aṣa ti awọn nkan. Fun apẹẹrẹ, o le ṣẹda iru MysqlDatabase. Jẹ ki a sọ pe iru yii ni awọn paramita metadata meji: name и namespace.

apiVersion: example.com/v1alpha1
kind: MysqlDatabase
metadata:
  name: foo
  namespace: bar

A ni iṣupọ Kubernetes pẹlu oriṣiriṣi awọn aaye orukọ ninu eyiti a le ṣẹda awọn apoti isura data MySQL. Ninu apere yi ikarahun-onišẹ le ṣee lo lati tọpa awọn oro MysqlDatabase, sisopọ wọn si olupin MySQL ati mimuuṣiṣẹpọ awọn ipo ti o fẹ ati akiyesi ti iṣupọ.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Apẹẹrẹ 3: Abojuto Nẹtiwọọki iṣupọ

Bi o ṣe mọ, lilo ping jẹ ọna ti o rọrun julọ lati ṣe atẹle nẹtiwọọki kan. Ninu apẹẹrẹ yii a yoo ṣafihan bi a ṣe le ṣe iru ibojuwo ni lilo oluṣe-ikarahun.

Ni akọkọ, iwọ yoo nilo lati ṣe alabapin si awọn apa. Oṣiṣẹ ikarahun nilo orukọ ati adiresi IP ti ipade kọọkan. Pẹlu iranlọwọ wọn, oun yoo pin awọn apa wọnyi.

configVersion: v1
kubernetes:
- name: nodes
  apiVersion: v1
  kind: Node
  jqFilter: |
    {
      name: .metadata.name,
      ip: (
       .status.addresses[] |  
        select(.type == "InternalIP") |
        .address
      )
    }
  group: main
  keepFullObjectsInMemory: false
  executeHookOnEvent: []
schedule:
- name: every_minute
  group: main
  crontab: "* * * * *"

Apaadi executeHookOnEvent: [] ṣe idilọwọ kio lati ṣiṣẹ ni idahun si eyikeyi iṣẹlẹ (iyẹn ni, ni idahun si iyipada, fifi kun, piparẹ awọn apa). Sibẹsibẹ, o yoo ṣiṣe (ati imudojuiwọn atokọ ti awọn apa) Eto - ni gbogbo iṣẹju, bi a ti paṣẹ nipasẹ aaye schedule.

Bayi ibeere naa waye, bawo ni a ṣe mọ gangan nipa awọn iṣoro bii pipadanu soso? Jẹ ki a wo koodu naa:

function __main__() {
  for i in $(seq 0 "$(context::jq -r '(.snapshots.nodes | length) - 1')"); do
    node_name="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.name')"
    node_ip="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.ip')"
    packets_lost=0
    if ! ping -c 1 "$node_ip" -t 1 ; then
      packets_lost=1
    fi
    cat >> "$METRICS_PATH" <<END
      {
        "name": "node_packets_lost",
        "add": $packets_lost,
        "labels": {
          "node": "$node_name"
        }
      }
END
  done
}

A ṣe atunwo nipasẹ atokọ ti awọn apa, gba awọn orukọ wọn ati adirẹsi IP, ping wọn ati firanṣẹ awọn abajade si Prometheus. Shell-operator le gbejade awọn metiriki si Prometheus, fifipamọ wọn si faili kan ti o wa ni ibamu si ọna ti a sọ ni oniyipada ayika $METRICS_PATH.

Bi eleyi o le ṣe oniṣẹ ẹrọ kan fun ibojuwo nẹtiwọọki ti o rọrun ninu iṣupọ kan.

queuing siseto

Nkan yii yoo pe lai ṣe apejuwe siseto pataki miiran ti a ṣe sinu oniṣẹ ikarahun. Fojuinu pe o ṣiṣẹ iru kio kan ni idahun si iṣẹlẹ kan ninu iṣupọ naa.

  • Kini yoo ṣẹlẹ ti, ni akoko kanna, ohun kan ṣẹlẹ ninu iṣupọ? ọkan diẹ sii iṣẹlẹ?
  • Yoo ikarahun-onišẹ ṣiṣe miiran apeere ti awọn kio?
  • Kini ti, sọ, awọn iṣẹlẹ marun ṣẹlẹ ninu iṣupọ ni ẹẹkan?
  • Njẹ oniṣẹ ẹrọ ikarahun yoo ṣe ilana wọn ni afiwe bi?
  • Kini nipa awọn orisun ti o jẹ bi iranti ati Sipiyu?

O da, oniṣẹ ẹrọ ikarahun ni ẹrọ isinyi ti a ṣe sinu. Gbogbo awọn iṣẹlẹ ti wa ni ila ati ni ilọsiwaju lẹsẹsẹ.

Jẹ ki a ṣe apejuwe eyi pẹlu awọn apẹẹrẹ. Jẹ ká sọ pé a ni meji ìkọ. Iṣẹlẹ akọkọ lọ si kio akọkọ. Ni kete ti ilana rẹ ba ti pari, isinyi naa nlọ siwaju. Awọn iṣẹlẹ mẹta ti o tẹle ni a darí si kio keji - wọn yọ kuro lati isinyi ati wọ inu rẹ ni “lapapo”. Ti o jẹ kio gba ohun orun ti awọn iṣẹlẹ - tabi, ni deede diẹ sii, titobi ti awọn ọrọ-ọrọ abuda.

Awọn wọnyi tun Awọn iṣẹlẹ le ni idapo sinu nla kan. Awọn paramita jẹ lodidi fun yi group ni abuda iṣeto ni.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

O le ṣẹda nọmba eyikeyi ti awọn isinyi / awọn kio ati awọn akojọpọ oriṣiriṣi wọn. Fun apẹẹrẹ, isinyi kan le ṣiṣẹ pẹlu awọn kio meji, tabi ni idakeji.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Gbogbo ohun ti o nilo lati ṣe ni tunto aaye ni ibamu queue ni abuda iṣeto ni. Ti orukọ isinyi ko ba sọ pato, kio naa nṣiṣẹ lori isinyi aiyipada (default). Ẹrọ isinyi yii ngbanilaaye lati yanju gbogbo awọn iṣoro iṣakoso awọn orisun nigba ṣiṣẹ pẹlu awọn kio.

ipari

A ṣe alaye kini oluṣe ikarahun jẹ, fihan bi o ṣe le lo lati ṣẹda awọn oniṣẹ Kubernetes ni iyara ati lainidi, ati fun ọpọlọpọ awọn apẹẹrẹ ti lilo rẹ.

Alaye ni kikun nipa oniṣẹ ẹrọ ikarahun, bakanna bi ikẹkọ iyara lori bi o ṣe le lo, wa ninu ibaramu awọn ibi ipamọ lori GitHub. Ma ṣe ṣiyemeji lati kan si wa pẹlu awọn ibeere: o le jiroro wọn ni pataki kan Ẹgbẹ Telegram (ni Russian) tabi ni yi forum (ni ede Gẹẹsi).

Ati pe ti o ba fẹran rẹ, a ni idunnu nigbagbogbo lati rii awọn ọran tuntun / PR / awọn irawọ lori GitHub, nibiti, nipasẹ ọna, o le wa awọn miiran awon ise agbese. Lara wọn o tọ lati ṣe afihan addoni-onišẹ, eyi ti o jẹ arakunrin nla ti ikarahun-onišẹ. IwUlO yii nlo awọn shatti Helm lati fi awọn afikun sii, o le fi awọn imudojuiwọn ranṣẹ ati ṣe atẹle ọpọlọpọ awọn aye aworan apẹrẹ / awọn idiyele, ṣakoso ilana fifi sori ẹrọ ti awọn shatti, ati tun le yipada ni idahun si awọn iṣẹlẹ ninu iṣupọ.

Lọ? Bash! Pade oniṣẹ ẹrọ ikarahun (ayẹwo ati ijabọ fidio lati KubeCon EU'2020)

Awọn fidio ati awọn kikọja

Fidio lati iṣẹ (~ iṣẹju 23):


Igbejade ijabọ naa:

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun