Top 10 Kubernetes Trik jeung Tips

Top 10 Kubernetes Trik jeung Tips

Aya seueur literatur rujukan dina Internét, tapi sakapeung tip pangbasajanna anu paling berharga. Tim Kubernetes aaS ti Mail.ru ditarjamahkeun pilihan sapuluh trik na tips, nu panulis artikel geus dikumpulkeun sanggeus sataun gawé kalawan Kubernetes. Tips teu diurutkeun ku pentingna, tapi urang mikir yén dulur bakal manggihan hal mangpaat pikeun diri.

Paréntah panggampangna pikeun dianggo sareng Kubernetes

Pikeun ngamimitian, sugan lengkah pangbasajanna tur mangpaat dina gawé bareng Kubernetes. Paréntah di handap ieu ngamungkinkeun parantosan paréntah kubectl dina cangkang bash:

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

Ngalengkepan kubectl bakal ditulis kana file .bashrc sarta bakal otomatis diaktipkeun unggal waktos cangkang dimimitian. Ieu nyepetkeun ngetik paréntah panjang sareng pilihan sapertos all-namespaces. Baca leuwih dina Kubernetes bash pitulung.

Namespasi Mémori jeung CPU Batesan Default

Lamun hiji aplikasi ditulis salah, kayaning muka sambungan database anyar unggal detik tapi pernah nutup eta, mangka klaster bakal bocor memori. Tur upami aplikasi nu teu boga wates memori salila deployment, ieu bisa ngakibatkeun gagalna titik.

Pikeun nyegah ieu, Kubernetes ngidinan Anjeun pikeun nyetel wates standar dina dasar per-namespace. Éta téh ditulis dina file yaml pikeun ngaranspasi husus. Ieu conto file sapertos kieu:

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

Damel yaml sapertos kitu sareng terapkeun kana rohangan ngaran mana waé. Contona, ka namespace limit-example. Ayeuna, wadah naon waé anu dipasang dina rohangan ngaran ieu bakal ngagaduhan wates 512Mi, kecuali wates individu anu sanés disetél pikeun wadah ieu.

Ngumpulkeun sampah dina versi heubeul tina Kubernetes

Kubelet dimimitian ngumpulkeun sampah sacara standar nalika var/lib/docker nempatan 90% tina spasi disk sadia. Ieu saé, kumaha ogé, sateuacan Kubernetes 1.7, teu aya wates standar pikeun jumlah inode anu dianggo, anu pakait sareng jumlah file dina sistem file.

Poténsi wadah Anjeun var/lib/docker ngan bisa make 50% tina spasi disk, tapi bisa ngajalankeun kaluar inodes, nu bakal ngabalukarkeun masalah pikeun pagawe.

Dina vérsi kubelet anu langkung lami ti 1.4 dugi ka 1.6, anjeun kedah nambihan bandéra ieu:

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

Dina 1.7 sareng engké, bandéra ieu diatur sacara standar. Sanajan kitu, versi saméméhna teu ngalaksanakeun wates inode.

Minikube… Kubernetes lokal leutik tapi kuat

Minikube mangrupikeun cara anu paling gampang pikeun ngajalankeun klaster Kubernetes lokal. Éta diluncurkeun ku paréntah saderhana:

minikube start

Paréntah ieu bakal nyababkeun kluster Kubernetes nyata jalan dina mesin anjeun.

Top 10 Kubernetes Trik jeung Tips
Sumber ilustrasi

Trikna nyaéta kumaha ngawangun aplikasi sareng ngajalankeun éta sacara lokal dina kluster ieu. Iwal mun disebutkeun dieusian, gambar Docker bakal diwangun dina mesin anjeun, moal dina kluster.

Pikeun maksa Docker nyorong gambar kana klaster Kubernetes lokal, paréntah di handap ieu dipasihkeun ka mesin docker:

eval $(minikube docker-env)

Ayeuna urang tiasa ngawangun aplikasi dina klaster Kubernetes lokal.

Entong bagikeun aksés kubectl ka sadayana

Ieu sigana écés, tapi lamun sababaraha tim anu ngagunakeun klaster sarua pikeun aplikasi maranéhanana (nu keur naon Kubernetes dijieun), ulah ngan ngaluarkeun aranjeunna sadayana sakaligus. kubectl. Éta langkung saé pikeun misahkeun paréntah, masihan masing-masing rohangan ngaran sorangan sareng ngawatesan aksés sareng kawijakan RBAC.

Anjeun tiasa bingung ku masihan hak aksés, maca, nyiptakeun, ngahapus, sareng operasi anu sanés pikeun unggal pod. Tapi hal utama nyaéta pikeun ngawatesan aksés ka Rahasia, sahingga ngan pikeun pangurus. Ieu kumaha urang ngabédakeun antara anu tiasa ngatur klaster sareng anu ngan saukur tiasa nyebarkeun éta.

Atur Anggaran Pod

Kumaha carana mastikeun yén teu aya downtime pikeun aplikasi dina klaster Kubernetes? PodDisruptionBudget sareng deui PodDisruptionBudget.

Kluster diropéa périodik sareng titik dikosongkeun. Henteu aya anu nangtung, éta kanyataan. Unggal deployment kalawan leuwih ti hiji conto kudu ngawengku hiji PDB (PodDisruptionBudget). Éta didamel dina file yaml saderhana anu diterapkeun kana kluster. Ruang lingkup PDB tinangtu ditangtukeun ku pamilih labél.

Catetan: Anggaran PDB dipertimbangkeun ngan upami aya palanggaran anggaran anu tiasa dibalikkeun (gangguan sukarela). Dina kaayaan sapertos gagal hardware, PDB moal jalan.

conto PDB:

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

Dua parameter utama nyaéta matchLabels и minAvailable. Parameter kahiji nangtukeun mana aplikasi anggaran lumaku pikeun. Contona, upami abdi gaduh deployments kalawan tag app: app-a и app: app-b, teras PDB ieu ngan bakal dilarapkeun ka anu munggaran.

parameter minAvailable dipertimbangkeun nalika ngosongkeun (ngabersihan) node. Contona, dina conto urang, sadaya instansi digusur salila devastation app: app-aiwal dua.

Ieu ngidinan Anjeun pikeun ngadalikeun sabaraha instansi tina aplikasi kudu ngajalankeun iraha wae.

Ngawaskeun kaséhatan aplikasi

Pemantauan sapertos kitu tiasa dilakukeun ku dua cara: ngagunakeun tés Kesiapan atanapi Liveness.

The usik munggaran (kesiapan) nangtukeun naha wadahna geus siap pikeun nampa lalulintas.

Kadua (liveness) nunjukkeun naha wadahna séhat atanapi kedah di-restart.

Konfigurasi relevan ngan saukur ditambahkeun kana yaml pikeun deployment. Di dinya anjeun tiasa netepkeun waktosna, waktos tunda sareng jumlah percobaan deui. Tempo langkung seueur ngeunaan aranjeunna dokuméntasi Kubernetes.

Labels madhab

Label mangrupikeun salah sahiji konsép dasar dina Kubernetes. Aranjeunna ngidinan objék kalawan bébas komunikasi saling, kitu ogé nyieun requests dumasar kana labél. Dina Kubernetes, anjeun malah tiasa angkat ka klien sareng nonton acara pikeun labél khusus.

Ampir nanaon bisa dipigawé kalawan labél, tapi hiji conto alus bakal nyieun sababaraha lingkungan pikeun ngajalankeun program dina klaster sarua.

Hayu urang nyebutkeun ngagunakeun klaster sarua pikeun dev и qa. Ieu ngandung harti yén anjeun tiasa gaduh aplikasi app-a, sakaligus dianggo dina duanana lingkungan qa и dev. Dina hal ieu, urang tiasa ngaksés conto aplikasi sacara misah dina lingkungan anu khusus ku netepkeun parameter anu cocog environment. Salaku conto app: app-a и environment: dev pikeun hiji lingkungan, jeung app: app-a и environment: qa pikeun kadua.

Ieu ngidinan Anjeun pikeun ngakses duanana instansi tina aplikasi, contona, pikeun nguji dina waktos anu sareng.

Nempatkeun hal dina urutan

Kubernetes nyaéta sistem anu pohara kuat, tapi sistem naon waé pamustunganana tiasa macét dina sajumlah ageung prosés. Kubelet ngajalankeun sagala prosés jeung cék nu Anjeun tangtukeun, kitu ogé sorangan.

Tangtosna, hiji layanan yatim moal ngalambatkeun sistem, sareng Kubernetes dirancang pikeun skala ti mimiti. Tapi lamun tinimbang hiji layanan juta mucunghul, kubelet mimiti cuk.

Upami kusabab sababaraha alesan anjeun ngahapus panyebaran (wadah, gambar, naon waé), pastikeun pikeun ngabersihan lengkep.

Kenal Go

Kami parantos nyimpen tip anu paling luhur pikeun anu terakhir. Diajar basa pamrograman Go.

Kubernetes dikembangkeun dina Go, sadaya ekstensi ditulis dina Go, sareng perpustakaan klien-go ogé sacara resmi didukung.

Ieu bisa dipaké pikeun hal béda jeung metot. Contona, pikeun manjangkeun sistem Kubernetes kana rasa anjeun. Contona, Anjeun bisa make program sorangan pikeun ngumpulkeun data, nyebarkeun aplikasi, atawa ngan ngabersihan wadah.

Diajar basa pamrograman Go sareng ngawasaan klien-go sigana mangrupikeun saran anu paling penting anu tiasa dipasihkeun ka pangguna Kubernetes pemula.

Ditarjamahkeun kalayan dukungan Mail.ru Cloud Solutions

Naon deui macana:

  1. Tilu tingkat autoscaling di Kubernetes sareng cara ngagunakeunana sacara efektif.
  2. Kubernetes Worker Node: Seueur Leutik atanapi Saeutik Gedé?
  3. 25 Pakakas Mangpaat pikeun Nyebarkeun sareng Ngatur Kubernetes.

sumber: www.habr.com

Tambahkeun komentar