Рафтан? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Имсол конфронси асосии аврупоии Kubernetes - KubeCon + CloudNativeCon Europe 2020 - виртуалӣ буд. Аммо чунин тагйири формат ба мо монеъ нашуд, ки гузориши деринаи ба наќша гирифтаамон «Рав? Бош! Вохӯред бо Shell-оператор» бахшида ба лоиҳаи кушодаи мо оператори снаряд.

Ин мақола, ки аз сӯҳбат илҳом гирифта шудааст, равиши содда кардани раванди эҷоди операторҳоро барои Kubernetes пешниҳод мекунад ва нишон медиҳад, ки чӣ гуна шумо метавонед бо кӯшиши ҳадди ақал бо истифода аз shell-оператор худатонро созед.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Муаррифӣ видеои гузориш (~23 дақиқа дар забони англисӣ, ба таври назаррас бештар аз мақола) ва иқтибос аз он дар шакли матн. Бирав!

Дар Flant мо ҳама чизро доимо оптимизатсия ва автоматӣ мекунем. Имрӯз мо дар бораи консепсияи дигари ҷолиб сӯҳбат хоҳем кард. Вохӯрӣ: скрипти қабати абрӣ!

Аммо, биёед аз контекст, ки дар он ҳамаи ин рӯй медиҳад, оғоз кунем: Кубернетес.

API Kubernetes ва контроллерҳо

API дар Kubernetes метавонад ҳамчун як намуди сервери файл бо директорияҳо барои ҳар як намуди объект муаррифӣ карда шавад. Объектҳо (манбаъҳо) дар ин сервер бо файлҳои YAML муаррифӣ мешаванд. Илова бар ин, сервер дорои API-и асосӣ мебошад, ки ба шумо имкон медиҳад, ки се чизро иҷро кунед:

  • гирифтан манбаъ аз рӯи намуд ва номаш;
  • тағир додан захира (дар ин ҳолат, сервер танҳо объектҳои "дуруст" -ро нигоҳ медорад - ҳама объектҳои нодуруст сохташуда ё барои директорияҳои дигар пешбинишуда партофта мешаванд);
  • пайгирӣ кунед барои захира (дар ин ҳолат, корбар фавран версияи ҷорӣ/навшудаи худро мегирад).

Ҳамин тариқ, Kubernetes ҳамчун як намуди сервери файлӣ (барои манифестҳои YAML) бо се усули асосӣ амал мекунад (бале, дар асл дигарон ҳастанд, аммо мо ҳоло онҳоро сарфи назар мекунем).

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Мушкилот дар он аст, ки сервер метавонад танҳо маълумотро нигоҳ дорад. Барои кор кардан ба шумо лозим аст назоратчӣ - дуюмин консепсияи муҳимтарин ва бунёдӣ дар ҷаҳони Кубернетес.

Ду намуди асосии контроллерҳо мавҷуданд. Аввалин маълумот аз Kubernetes мегирад, онро мувофиқи мантиқи лона коркард мекунад ва онро ба K8s бармегардонад. Дуюмаш аз Кубернетес маълумот мегирад, аммо бар хилофи навъи якум, ҳолати баъзе захираҳои берунаро тағйир медиҳад.

Биёед ба раванди эҷоди ҷойгиркунӣ дар Кубернетес бодиққат назар кунем:

  • Назоратчии ҷойгиркунӣ (дар kube-controller-manager) маълумотро дар бораи Ҷойгиркунӣ қабул мекунад ва ReplicaSet эҷод мекунад.
  • ReplicaSet дар асоси ин маълумот ду реплика (ду под) эҷод мекунад, аммо ин подкҳо ҳанӯз ба нақша гирифта нашудаанд.
  • Нақшасоз подкҳоро ба нақша мегирад ва маълумоти гиреҳро ба YAML-ҳои худ илова мекунад.
  • Кубелец ба манбаи беруна тағирот ворид мекунад (бигӯед Docker).

Пас аз он тамоми ин пайдарпай бо тартиби баръакс такрор карда мешавад: кубелет контейнерҳоро тафтиш мекунад, ҳолати поддонро ҳисоб мекунад ва онро бармегардонад. Назоратчии ReplicaSet ҳолатро қабул мекунад ва ҳолати маҷмӯи репликаро навсозӣ мекунад. Ҳамин чиз бо Нозири Ҷойгиркунӣ рӯй медиҳад ва корбар ниҳоят мақоми навшуда (ҷори) мегирад.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Шелл-оператор

Маълум мешавад, ки Кубернетес ба кори муштараки контроллерҳои гуногун асос ёфтааст (операторҳои Кубернетес низ контроллер мебошанд). Саволе ба миён меояд, ки чӣ гуна оператори шахсии худро бо кӯшиши ҳадди аққал эҷод кардан мумкин аст? Ва дар ин ҷо он чизе, ки мо таҳия кардем, ба наҷот меояд оператори снаряд. Он ба маъмурони система имкон медиҳад, ки бо истифода аз усулҳои шинос изҳороти худро эҷод кунанд.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Мисоли оддӣ: нусхабардории асрор

Биёед як мисоли оддиро дида бароем.

Фарз мекунем, ки мо кластери Кубернетес дорем. Он фазои ном дорад default бо ягон сир mysecret. Илова бар ин, дар кластер дигар фазоҳои ном вуҷуд доранд. Баъзеи онҳо тамғаи махсус доранд. Ҳадафи мо ин аст, ки Secret -ро ба фазои номҳо бо нишона нусхабардорӣ кунем.

Вазифа аз он сабаб душвор аст, ки дар кластер фазои номҳои нав пайдо мешаванд ва баъзеи онҳо метавонанд ин нишона дошта бошанд. Аз тарафи дигар, вақте ки нишона нест карда мешавад, Сир низ бояд нест карда шавад. Илова бар ин, худи Сир низ метавонад тағир ёбад: дар ин ҳолат, Сирри нав бояд ба ҳама фазои номҳо бо нишонаҳо нусхабардорӣ карда шавад. Агар Сир дар ягон фазои ном тасодуфан нест карда шавад, оператори мо бояд онро фавран барқарор кунад.

Акнун, ки вазифа тартиб дода шудааст, вақти он расидааст, ки онро бо истифода аз shell-оператор оғоз кунем. Аммо аввал дар бораи худи снаряд-оператор чанд сухан гуфтан лозим аст.

Чӣ тавр shell-оператор кор мекунад

Мисли дигар сарбории корӣ дар Кубернетес, shell-оператор дар подкоҳи худ кор мекунад. Дар ин папка дар директория /hooks файлҳои иҷрошаванда нигоҳ дошта мешаванд. Инҳо метавонанд скриптҳо дар Bash, Python, Ruby ва ғайра бошанд. Мо чунин файлҳои иҷрошавандаро қалмоқҳо меномем (чапҳо).

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Оператори Shell ба рӯйдодҳои Kubernetes обуна мешавад ва ин қалмоқҳоро дар посух ба рӯйдодҳое, ки ба мо лозиманд, иҷро мекунад.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Оператор аз куҷо медонад, ки кадом қалмоқро кай ва кай иҷро кардан лозим аст? Гап дар сари он аст, ки ҳар як қалмоқ ду марҳила дорад. Ҳангоми оғозёбӣ, оператори shell ҳамаи қалмоқҳоро бо аргумент иҷро мекунад --config Ин марҳилаи конфигуратсия аст. Ва пас аз он, қалмоқҳо ба таври муқаррарӣ оғоз карда мешаванд - дар посух ба рӯйдодҳое, ки онҳо ба онҳо пайваст мешаванд. Дар ҳолати охирин, қалмоқ контексти ҳатмиро мегирад (контексти ҳатмӣ) - маълумот дар формати JSON, ки мо дар бораи он дар зер муфассалтар сӯҳбат хоҳем кард.

Сохтани оператор дар Bash

Ҳоло мо барои татбиқ омодаем. Барои ин ба мо лозим аст, ки ду функсия нависем (дар омади гап, тавсия медиҳем китобхона shell_lib, ки қалмоқҳои навиштанро дар Bash хеле осон мекунад):

  • якум барои марҳилаи конфигуратсия лозим аст - он контексти ҳатмиро нишон медиҳад;
  • дуюм мантиқи асосии қалмоқро дар бар мегирад.

#!/bin/bash

source /shell_lib.sh

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

function __main__() {
  # THE LOGIC
}

hook::run "$@"

Қадами навбатӣ муайян кардани он аст, ки кадом объектҳо ба мо лозиманд. Дар ҳолати мо, мо бояд пайгирӣ кунем:

  • сирри сарчашма барои тағирот;
  • ҳамаи фазоҳои номҳо дар кластер, то бидонед, ки кадоме аз онҳо нишонае доранд;
  • сирри мақсаднок, то боварӣ ҳосил кунед, ки ҳамаашон бо сирри сарчашма мувофиқат мекунанд.

Ба манбаи махфӣ обуна шавед

Конфигуратсияи ҳатмӣ барои он хеле содда аст. Мо нишон медиҳем, ки мо ба Сирри бо ном таваҷҷӯҳ дорем mysecret дар фазои ном default:

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз 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

Дар натиҷа, вақте ки сирри манбаъ тағир меёбад, қалмоқ ба кор андохта мешавад (src_secret) ва контексти зерини ҳатмиро гиред:

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Тавре ки шумо мебинед, он ном ва тамоми объектро дар бар мегирад.

Нигоҳ доштани фазоҳои номҳо

Акнун шумо бояд ба фазоҳои ном обуна шавед. Барои ин, мо конфигуратсияи зерини ҳатмиро муайян мекунем:

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

Тавре ки шумо мебинед, майдони нав дар конфигуратсия бо ном пайдо шуд jqFilter. Тавре ки аз номаш бармеояд, jqFilter ҳама маълумоти нолозимро филтр мекунад ва объекти нави JSON бо майдонҳое, ки ба мо таваҷҷӯҳ доранд, эҷод мекунад. Қалмоқе бо конфигуратсияи шабеҳ контексти зерини ҳатмиро мегирад:

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Он массивро дар бар мегирад filterResults барои ҳар як фазои ном дар кластер. Тағйирёбандаи булӣ hasLabel нишон медиҳад, ки оё тамға ба фазои номи додашуда замима шудааст. Интихобкунанда keepFullObjectsInMemory: false нишон медиҳад, ки зарурати дар хотира нигоҳ доштани объектҳои пурра вуҷуд надорад.

Пайгирии сирри ҳадаф

Мо ба ҳама асрорҳое обуна мешавем, ки шарҳи мушаххас доранд managed-secret: "yes" (инҳо ҳадафи мо ҳастанд 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

Дар ин ҳолат jqFilter Ҳама маълумотро ба истиснои фазои ном ва параметр филтр мекунад resourceVersion. Параметри охирин ба аннотация ҳангоми сохтани сир гузаронида шуд: он ба шумо имкон медиҳад, ки вариантҳои асрорро муқоиса кунед ва онҳоро навсозӣ кунед.

Қалмоқе, ки ин тавр танзим шудааст, ҳангоми иҷро шудан се контексти ҳатмиро, ки дар боло тавсиф шудаанд, қабул мекунад. Онҳоро метавон ҳамчун як намуди аксбардорӣ баррасӣ кард (сӯзишворӣ) кластер.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Дар асоси ҳамаи ин маълумот метавонад алгоритми асосӣ таҳия карда шавад. Он дар тамоми фазоҳои ном такрор мекунад ва:

  • агар hasLabel масъалањои true барои фазои номи ҷорӣ:
    • сирри ҷаҳониро бо сирри маҳаллӣ муқоиса мекунад:
      • агар онҳо якхела бошанд, ҳеҷ кор намекунад;
      • агар онҳо фарқ кунанд - иҷро мекунад kubectl replace ё create;
  • агар hasLabel масъалањои false барои фазои номи ҷорӣ:
    • боварӣ ҳосил мекунад, ки Secret дар фазои номи додашуда нест:
      • агар Сирри маҳаллӣ мавҷуд бошад, онро бо истифода аз он нест кунед kubectl delete;
      • агар Сирри маҳаллӣ ошкор нашавад, он ҳеҷ кор намекунад.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Амалисозии алгоритм дар Bash шумо метавонед дар мо зеркашӣ кунед анборҳо бо мисолҳо.

Ҳамин тавр мо тавонистем бо истифода аз 35 сатри конфигуратсияи YAML ва тақрибан ҳамон миқдори рамзи Bash як контролери оддии Kubernetes эҷод кунем! Вазифаи оператор аз он иборат аст, ки онҳоро бо ҳам пайваст кунад.

Бо вуҷуди ин, нусхабардории асрор танҳо соҳаи татбиқи утилита нест. Инак, боз чанд мисоле меорем, то нишон диҳем, ки ӯ ба чӣ қодир аст.

Мисоли 1: Ворид кардани тағирот ба ConfigMap

Биёед як Ҷойгиркуниро, ки аз се қисм иборат аст, бубинем. Подҳо барои нигоҳ доштани баъзе конфигуратсияҳо ConfigMap -ро истифода мебаранд. Вақте ки подкҳо ба кор андохта шуданд, ConfigMap дар ҳолати муайян қарор дошт (бигзор онро v.1 меномем). Мутаносибан, ҳама поддонҳо ин версияи мушаххаси ConfigMap-ро истифода мебаранд.

Акнун фарз кунем, ки ConfigMap тағир ёфтааст (v.2). Аммо, поддонҳо версияи қаблии ConfigMap (v.1) -ро истифода мебаранд:

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Чӣ тавр ман метавонам онҳоро водор кунам, ки ба ConfigMap нав (v.2) гузаранд? Ҷавоб оддӣ аст: Шаблонро истифода баред. Биёед ба бахш шарҳи маблағи чек илова кунем template Конфигуратсияҳои ҷойгиркунӣ:

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Дар натиҷа, ин маблағи назоратӣ дар ҳама подкастҳо ба қайд гирифта мешавад ва он ҳамон тавре ки Ҷойгиркунӣ хоҳад буд. Акнун ба шумо танҳо лозим аст, ки эзоҳро ҳангоми тағир додани ConfigMap навсозӣ кунед. Ва снаряд-оператор дар ин маврид ба мадад мерасад. Ба шумо танҳо барнома лозим аст қалмоқе, ки ба ConfigMap обуна мешавад ва маблағи чекро навсозӣ мекунад.

Агар корбар ба ConfigMap тағирот ворид кунад, оператори shell онҳоро пай мебарад ва маблағи назоратро аз нав ҳисоб мекунад. Пас аз он ҷодугарии Кубернетес ба кор медарояд: оркестр падлро мекушад, навашро эҷод мекунад ва интизор шавед, ки он гардад. Ready, ва ба дигараш мегузарад. Дар натиҷа, Deployment ҳамоҳанг карда мешавад ва ба версияи нави ConfigMap мегузарад.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Мисоли 2: Кор бо таърифҳои захираҳои фармоишӣ

Тавре ки шумо медонед, Kubernetes ба шумо имкон медиҳад, ки намудҳои фармоишии объектҳоро эҷод кунед. Масалан, шумо метавонед навъ эҷод кунед MysqlDatabase. Фарз мекунем, ки ин намуд ду параметри метадата дорад: name и namespace.

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

Мо як кластери Kubernetes бо фазои номҳои гуногун дорем, ки дар он мо метавонем пойгоҳи додаҳои MySQL-ро эҷод кунем. Дар ин ҳолат shell-operator метавонад барои пайгирии захираҳо истифода шавад MysqlDatabase, пайваст кардани онҳо ба сервери MySQL ва ҳамоҳангсозии ҳолати дилхоҳ ва мушоҳидашудаи кластер.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Мисоли 3: Мониторинги шабакаи кластерӣ

Тавре ки шумо медонед, истифодаи ping роҳи соддатарини мониторинги шабака мебошад. Дар ин мисол мо нишон медиҳем, ки чӣ гуна ин мониторингро тавассути shell-operator амалӣ кардан мумкин аст.

Пеш аз ҳама, шумо бояд ба гиреҳҳо обуна шавед. Оператори shell ба ном ва суроғаи IP-и ҳар як гиреҳ ниёз дорад. Бо ёрии онҳо, ӯ ин гиреҳҳоро пинг мекунад.

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: "* * * * *"

Параметр executeHookOnEvent: [] дар посух ба ҳама гуна ҳодиса (яъне дар посух ба тағир додан, илова кардан, нест кардани гиреҳҳо) кор кардани қалмоқро пешгирӣ мекунад. Бо вуҷуди ин, ӯ давида мешавад (ва рӯйхати гиреҳҳоро навсозӣ кунед) Ба нақша гирифта шудааст — хар дакика, ки дар сахро мукаррар шудааст schedule.

Акнун саволе ба миён меояд, ки мо дар бораи мушкилот ба монанди гум шудани пакет чӣ гуна дақиқ медонем? Биёед кодро бубинем:

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
}

Мо рӯйхати гиреҳҳоро такрор мекунем, номҳо ва суроғаҳои IP-и онҳоро мегирем, онҳоро пинг мекунем ва натиҷаҳоро ба Prometheus мефиристем. Оператори Shell метавонад ченакҳоро ба Prometheus содир кунад, захира кардани онҳо ба файле, ки мувофиқи роҳи дар тағирёбандаи муҳити зист муайяншуда ҷойгир аст $METRICS_PATH.

Ҳамин тавр шумо метавонед операторро барои мониторинги оддии шабака дар кластер созед.

Механизми навбат

Ин мақола бидуни тавсифи дигар механизми муҳими дар ҷабҳа-оператор сохташуда нопурра хоҳад буд. Тасаввур кунед, ки он дар посух ба рӯйдод дар кластер як намуди қалмоқро иҷро мекунад.

  • Чӣ мешавад, агар дар як вақт дар кластер чизе рӯй диҳад? як чизи дигар ҳодиса?
  • Оё shell-оператор як мисоли дигари қалмоқро иҷро мекунад?
  • Чӣ мешавад, агар дар кластер якбора панҷ ҳодиса рӯй диҳад?
  • Оператори снаряд онхоро дар баробари кор карда мебарояд?
  • Дар бораи захираҳои истеъмолшуда ба монанди хотира ва CPU чӣ гуфтан мумкин аст?

Хушбахтона, shell-operator дорои механизми дарунсохташуда мебошад. Ҳама рӯйдодҳо ба навбат гузошта мешаванд ва пайдарпай коркард мешаванд.

Биёед инро бо мисолхо равшан кунем. Фарз мекунем, ки мо ду гиреҳ дорем. Ҳодисаи аввал ба қалмоқе меравад. Баъди ба охир расидани коркарди он, навбат пеш меравад. Се ҳодисаи навбатӣ ба қалмоқе дуюм равона карда мешаванд - онҳо аз навбат хориҷ карда мешаванд ва ба он дар "баста" ворид карда мешаванд. Яъне hook як қатор рӯйдодҳоро мегирад — ё аниқтараш, маҷмӯи контекстҳои ҳатмӣ.

Инчунин инхо рӯйдодҳоро дар як калон муттаҳид кардан мумкин аст. Параметр барои ин масъул аст group дар конфигуратсияи ҳатмӣ.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Шумо метавонед шумораи дилхоҳи навбатҳо/қалмоқҳо ва таркиби гуногуни онҳоро эҷод кунед. Масалан, як навбат метавонад бо ду қалмоқ кор кунад ё баръакс.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Ба шумо танҳо лозим аст, ки майдонро мувофиқи он танзим кунед queue дар конфигуратсияи ҳатмӣ. Агар номи навбат муайян нашуда бошад, қалмоқ дар навбати пешфарз кор мекунад (default). Ин механизми навбат ба шумо имкон медиҳад, ки ҳангоми кор бо қалмоқҳо тамоми мушкилоти идоракунии захираҳоро пурра ҳал кунед.

хулоса

Мо фаҳмонидем, ки shell-operator чист, нишон додем, ки чӣ гуна онро барои зуд ва бемалол сохтани операторҳои Kubernetes истифода бурдан мумкин аст ва чанд мисоли истифодаи он додем.

Маълумоти муфассал дар бораи оператори shell, инчунин дастури фаврӣ оид ба истифодаи он дар саҳифаи дахлдор дастрас аст. анборҳо дар GitHub. Шарм надоред, ки бо саволҳо бо мо тамос гиред: шумо метавонед онҳоро дар маҷлиси махсус муҳокима кунед Гурӯҳи Telegram (ба забони русй) ё ба забони руей ин форум (бо инглисӣ).

Ва агар ба шумо ин маъқул бошад, мо ҳамеша хурсандем, ки шумораҳои нав/PR/ситораҳоро дар GitHub бубинем, ки дар он ҷо шумо метавонед дигаронро пайдо кунед лоиҳаҳои ҷолиб. Дар байни онхо кайд кардан лозим аст addon-operator, ки бародари калони снаряд-оператор мебошад. Ин утилита диаграммаҳои Helm-ро барои насб кардани изофаҳо истифода мебарад, метавонад навсозиҳо расонад ва параметрҳо/арзишҳои гуногуни диаграммаҳоро назорат кунад, раванди насби диаграммаҳоро назорат кунад ва инчунин метавонад онҳоро дар посух ба рӯйдодҳои кластер тағир диҳад.

Бирав? Бош! Бо оператори shell вохӯред (баррасӣ ва гузориши видеоӣ аз KubeCon EU'2020)

Видеоҳо ва слайдҳо

Видео аз намоиш (~23 дақиқа):


Муаррифии гузориш:

PS

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Илова Эзоҳ