Top 10 Kubernetes Tricks sy Torohevitra

Top 10 Kubernetes Tricks sy Torohevitra

Betsaka ny zavatra vita an-tsoratra ao amin'ny Internet, saingy indraindray ny torohevitra tsotra indrindra no sarobidy indrindra. Ekipa Kubernetes aaS avy amin'ny Mail.ru nandika fifantenana tetika sy toro-hevitra folo, izay nangonin'ny mpanoratra ny lahatsoratra taorian'ny herintaona niasany tamin'i Kubernetes. Ny toro-hevitra dia tsy voasokajy araka ny maha-zava-dehibe azy, fa mihevitra izahay fa hahita zavatra mahasoa ho an'ny tenany ny tsirairay.

Ny baiko tsotra indrindra hiasa amin'ny Kubernetes

Hanombohana, angamba ny hetsika tsotra sy mahasoa indrindra amin'ny fiaraha-miasa amin'ny Kubernetes. Ity baiko manaraka ity dia ahafahana mamita ny baiko kubectl amin'ny bash shell:

echo "source <(kubectl completion bash)" >> ~/.bashrc

Mivoaka Amin'ny Karoka kubectl dia hosoratana amin'ny rakitra .bashrc ary havitrika ho azy isaky ny manomboka ny shell. Manafaingana ny fanoratana baiko lava sy masontsivana toy ny all-namespaces. Ny antsipiriany bebe kokoa ao amin'ny Kubernetes bash fanampiana.

Fahatsiarovana default sy fetran'ny CPU ao amin'ny namespace

Raha diso ny fanoratana ny fampiharana, ohatra, dia manokatra fifandraisana vaovao amin'ny angon-drakitra isaky ny segondra izy fa tsy manidy azy mihitsy, dia misy fitadidiana ny cluster. Ary raha tsy manana fetra fitadidiana napetraka mandritra ny fametrahana ny fampiharana, dia mety hitarika amin'ny tsy fahombiazan'ny node izany.

Mba hisorohana an'izany, ny Kubernetes dia mamela anao hametraka fameperana mahazatra amin'ny sehatra isaky ny anarana. Izy ireo dia voasoratra ao amin'ny rakitra yaml ho an'ny sehatra anarana manokana. Ity misy ohatra amin'ny rakitra toy izany:

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

Mamorona yaml toy izany ary ampiharo amin'ny toerana misy anarana. Ohatra, mankany amin'ny namespace limit-example. Ankehitriny izay kaontenera apetraka amin'ity toerana misy anarana ity dia hanana fetra 512Mi, raha tsy misy fetran'olona hafa apetraka fanampiny ho an'ity kaontenera ity.

Fanangonana fako amin'ny dikan-teny taloha an'ny Kubernetes

Kubelet amin'ny alΓ lan'ny default dia manomboka fanangonana fako rehefa var/lib/docker Mibodo 90% amin'ny habaka kapila misy. Tsara izany, na izany aza, mandra-pahatongan'ny Kubernetes 1.7 dia tsy misy fetran'ny default amin'ny isan'ny inodes ampiasaina, izay mifanandrify amin'ny isan'ny rakitra ao amin'ny rafi-drakitra.

Mety ho fitoeranao var/lib/docker 50% amin'ny habaka kapila ihany no mety hampiasaina, fa mety ho lany ny inodes, izay hiteraka olana ho an'ny mpiasa.

Amin'ny dikan-teny taloha amin'ny kubelet manomboka amin'ny 1.4 ka hatramin'ny 1.6 dia tsy maintsy ampidirinao ity saina ity:

--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%

Amin'ny dikan-teny 1.7 sy aoriana dia apetraka amin'ny alΓ lan'ny default ity saina ity. Na izany aza, ny dikan-teny teo aloha dia tsy manara-maso ny fetran'ny inode.

Minikube... Kubernetes eo an-toerana kely nefa matanjaka

Minikube no fomba mora indrindra hampandehanana kluster Kubernetes eo an-toerana. Natomboka tamin'ny baiko tsotra izy io:

minikube start

Ny fampandehanana ity baiko ity dia miteraka cluster Kubernetes tena izy mandeha amin'ny solosainao.

Top 10 Kubernetes Tricks sy Torohevitra
Loharano fanoharana

Ny fika dia ny fomba hananganana ny rindranasa sy hampandehanana azy eo an-toerana amin'io cluster io. Raha tsy misy torolalana manokana, ny sary Docker dia hatsangana amin'ny solosainao fa tsy amin'ny cluster.

Mba hanerena an'i Docker hanosika ny sary mankany amin'ny kluster Kubernetes eo an-toerana, dia omena izao baiko manaraka izao ny milina docker:

eval $(minikube docker-env)

Ankehitriny dia afaka manangana fampiharana amin'ny kluster Kubernetes eo an-toerana isika.

Aza omena alalana amin'ny olon-drehetra ny kubectl

Toa miharihary izany, fa raha ekipa maro no mampiasa cluster mitovy amin'ny fampiharana azy ireo (izay no namoronana an'i Kubernetes), tsy tokony omenao ny olon-drehetra fotsiny. kubectl. Tsara kokoa ny manasaraka ny baiko, manome ny anaran'ny tsirairay amin'izy ireo ary mametra ny fidirana amin'ny alΓ lan'ny politika RBAC.

Mety ho very hevitra ianao amin'ny fanomezana zo hidirana, hamaky, hamorona, hamafa ary asa hafa ho an'ny pod tsirairay. Fa ny tena zava-dehibe dia ny mametra ny fidirana amin'ny tsiambaratelo, mamela izany ho an'ny mpitantana ihany. Amin'izany fomba izany no hanavahana ireo izay afaka mitantana ny cluster sy ireo izay afaka mampiasa azy fotsiny.

Tantano ny tetibola Pod

Ahoana no hiantohana fa tsy misy fiatoana amin'ny fampiharana ao amin'ny cluster Kubernetes? PodDisruptionBudget ary indray PodDisruptionBudget.

Havaozina tsindraindray ny kluster ary foanana ny node. Tsy misy mijanona, izany no zava-misy. Ny fametrahana rehetra misy ohatra mihoatra ny iray dia tokony ahitana PDB (PodDisruptionBudget). Izy io dia noforonina ao anaty rakitra yaml tsotra izay ampiharina amin'ny cluster. Ny faritra fandrakofana amin'ny PDB manokana dia voafaritra amin'ny alΓ lan'ny fisafidianana marika.

Fanamarihana: Ny teti-bolan'ny PDB ihany no raisina rehefa azo averina ny fanitsakitsahana ny tetibola (fanakorontanana an-tsitrapo). Amin'ny toe-javatra toy ny tsy fahombiazan'ny fitaovana dia tsy mandeha ny PDB.

Ohatra PDB:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: app-a-pdb
spec:
  minAvailable: 2
  selector:
      matchLabels:
        app: app-a

Ny paramètre roa lehibe dia matchLabels и minAvailable. Ny paramètre voalohany dia mamaritra izay fampiharana iharan'ny tetibola. Ohatra, raha manana deployments misy labels aho app: app-a и app: app-b, dia io PDB io ihany no mihatra amin'ny voalohany.

fikirana minAvailable raisina rehefa manafoana (manadio) ny node. Ohatra, amin'ny ohatra ataontsika, mandritra ny fanafoanana, ny tranga rehetra dia esorina app: app-a, afa-tsy ny roa.

Izany dia ahafahanao mifehy ny isan'ny trangan'ny fampiharana tokony handeha amin'ny fotoana rehetra.

Fanaraha-maso ara-pahasalamana fampiharana

Ny fanaraha-maso toy izany dia azo atao amin'ny fomba roa: amin'ny fampiasana ny fitsapana fahavononana na Liveness.

Ny fanadihadiana voalohany (fahavononana) dia mamaritra ny fahavononan'ny kaontenera handray fifamoivoizana.

Ny faharoa (liveness) dia mampiseho raha salama ilay fitoeran-javatra na mila averina.

Ampidirina ao amin'ny yaml fotsiny ireo fanitsiana mifandraika amin'ny fametrahana azy. Any ianao dia afaka mamaritra ny fe-potoana, ny fotoana fahatarana ary ny isan'ny andrana indray. Jereo bebe kokoa momba azy ireo Documentation Kubernetes.

Misy marika eny rehetra eny

Ny marika dia iray amin'ireo hevitra fototra ao amin'ny Kubernetes. Izy ireo dia mamela ny zavatra hifampiresaka malalaka, ary koa mamorona fanontaniana mifototra amin'ny etikety. Ao amin'ny Kubernetes, afaka mandeha any amin'ny mpanjifa mihitsy aza ianao ary mijery hetsika ho an'ny marika manokana.

Afaka manao saika na inona na inona amin'ny marika ianao, fa ny ohatra tsara dia ny famoronana tontolo maro hampandehanana programa amin'ny cluster iray ihany.

Aoka hatao hoe mampiasa kluster iray ihany ianao dev и qa. Midika izany fa afaka manana fampiharana ianao app-a, miasa miaraka amin'ny tontolo roa qa и dev. Amin'ity tranga ity, afaka miditra misaraka amin'ny ohatra fampiharana amin'ny tontolo manokana isika amin'ny alàlan'ny famaritana ny paramètre mety environment. Ohatra app: app-a и environment: dev ho an'ny tontolo iray, ary app: app-a и environment: qa ho an'ny faharoa.

Izany dia ahafahanao miditra amin'ireo tranga roa amin'ny fampiharana, ohatra, hanao fitiliana miaraka.

Mandamina

Rafitra tena mahery vaika ny Kubernetes, saingy mety ho tafintohina amin'ny dingana be loatra ny rafitra rehetra. Ny Kubelet dia mitantana ny dingana rehetra ary manamarina izay voafaritrao, ary koa ny azy.

Mazava ho azy fa ny serivisy kamboty iray dia tsy hampiadana ny rafitra, ary ny Kubernetes dia natao hanatsara hatrany hatrany. Fa raha solon'ny serivisy iray dia iray tapitrisa no miseho, manomboka kenda ny kubelet.

Raha toa ka noho ny antony iray no mamafa ny fametrahanao (fiompiana, sary, na inona na inona), dia ataovy izay hanaovana fanadiovana tanteraka.

Meet Go

Notahirizinay ho farany ny torohevitra fototra. Mianara ny fiteny fandaharana Go.

Kubernetes dia novolavolaina ao amin'ny Go, ny fanitarana rehetra dia voasoratra ao amin'ny Go, ary ny tranomboky mpanjifa-go dia tohanana amin'ny fomba ofisialy ihany koa.

Azo ampiasaina amin'ny zavatra samihafa sy mahaliana. Ohatra, hanitarana ny rafitra Kubernetes amin'ny tsironao. Noho izany, azonao atao ny mampiasa ny programanao manokana hanangonana angon-drakitra, hametraka fampiharana, na hanadio fitoeran-javatra fotsiny.

Ny fianarana ny fiteny fandaharana Go sy ny fifehezana ny client-go no torohevitra manan-danja indrindra azonao omena ireo mpampiasa Kubernetes vaovao.

Nadika niaraka tamin'ny fanohanan'ny Mail.ru Cloud Solutions

Inona koa no vakiana:

  1. Ambaratonga telo amin'ny autoscaling ao amin'ny Kubernetes sy ny fomba fampiasana azy ireo amin'ny fomba mahomby.
  2. Nodes mpiasa Kubernetes: kely maro na lehibe vitsivitsy?
  3. 25 Fitaovana mahasoa amin'ny fametrahana sy fitantanana ny Kubernetes.

Source: www.habr.com

Add a comment