10 mau hewa maʻamau i ka hoʻohana ʻana iā Kubernetes

Nānā. unuhi.: ʻO nā mea kākau o kēia ʻatikala he poʻe ʻenekinia mai kahi hui Czech liʻiliʻi, pipetail. Ua hiki iā lākou ke hoʻonohonoho i kahi papa inoa maikaʻi loa o nā pilikia a me nā kuhi hewa e pili ana i ka hana ʻana o nā hui Kubernetes.

10 mau hewa maʻamau i ka hoʻohana ʻana iā Kubernetes

I loko o nā makahiki o ka hoʻohana ʻana i nā Kubernetes, ua hana mākou me ka nui o nā puʻupuʻu (mālama a mālama ʻole ʻia - ma GCP, AWS a me Azure). I ka hala ʻana o ka manawa, hoʻomaka mākou e ʻike ua hana mau ʻia kekahi mau hewa. Akā naʻe, ʻaʻohe hilahila i kēia: ua hana mākou i ka hapa nui o lākou iā mākou iho!

Aia ka ʻatikala i nā hewa maʻamau a haʻi pū ʻia pehea e hoʻoponopono ai.

1. Nā kumuwaiwai: nā noi a me nā palena

Pono kēia mea i ka nānā kokoke loa a me kahi mua ma ka papa inoa.

ʻO ka noi CPU maʻamau ʻaʻole i kuhikuhi ʻia a i ʻole he haʻahaʻa haʻahaʻa loa (e kau i nā pods ma kēlā me kēia node e like me ka hiki). No laila, lilo nā nodes i mea kaumaha loa. I ka wā o ka haʻahaʻa kiʻekiʻe, hoʻohana piha ʻia ka mana hana o ka node a loaʻa i kahi haʻahaʻa hana i ka mea i "noi" ai. PPU throttling. Ke alakaʻi nei kēia i ka hoʻonui ʻana i ka latency o ka noi, ka manawa manawa, a me nā hopena ʻoluʻolu ʻē aʻe. (E heluhelu hou e pili ana i kēia ma kā mākou unuhi hou ʻana: “ʻO nā palena CPU a me ka hoʻopaʻa ʻana i nā Kubernetes" - ma kahi o. unuhi.)

Hooikaika (ʻoi loa ole paipai ʻia):

resources: {}

Ke noi CPU haʻahaʻa loa (ʻoi loa ole paipai ʻia):

   resources:
      Requests:
        cpu: "1m"

Ma ka ʻaoʻao ʻē aʻe, hiki i ka loaʻa ʻana o kahi palena CPU ke alakaʻi i ka lele ʻana o nā pōʻai uaki e nā pods, ʻoiai inā ʻaʻole i hoʻopiha piha ʻia ka ʻōnaehana node. Eia hou, hiki i kēia ke alakaʻi i ka hoʻonui ʻana i nā lohi. Ke hoʻomau nei ka hoʻopaʻapaʻa a puni ka ʻāpana PPU CFS quota i ka Linux kernel a me ka CPU throttling ma muli o nā palena i hoʻonohonoho ʻia, a me ka hoʻopau ʻana i ka quota CFS ... Auwe, hiki i nā palena CPU ke hoʻonui i nā pilikia ma mua o ka hiki ke hoʻoponopono. Hiki ke loaʻa ka ʻike hou aku e pili ana i kēia ma ka loulou ma lalo nei.

Ke koho nui loa (hoʻopaʻapaʻa nui) hiki i nā pilikia hoʻomanaʻo ke alakaʻi i nā pilikia nui. ʻO ka hiki ʻana i ka palena CPU e hoʻokuʻu i nā pōʻai uaki, ʻoiai e hōʻea i ka palena hoʻomanaʻo e pepehi i ka pod. Ua nānā paha ʻoe OOMkill? ʻAe, ʻo ia kā mākou e kamaʻilio nei.

Makemake ʻoe e hōʻemi i ka hiki ke hana ʻia kēia? Mai hoʻokaʻawale i ka hoʻomanaʻo a hoʻohana i ka Guaranteed QoS (Quality of Service) ma ka hoʻonohonoho ʻana i ka noi hoʻomanaʻo i ka palena (e like me ka laʻana ma lalo). E heluhelu hou e pili ana i keia ma Henning Jacobs hōʻike (Lead Engineer ma Zalando).

Pahū (ʻoi aku ka nui o ka loaʻa ʻana iā OOMkiled):

   resources:
      requests:
        memory: "128Mi"
        cpu: "500m"
      limits:
        memory: "256Mi"
        cpu: 2

Hōʻoia:

   resources:
      requests:
        memory: "128Mi"
        cpu: 2
      limits:
        memory: "128Mi"
        cpu: 2

He aha ka mea hiki ke kōkua i ka hoʻonohonoho ʻana i nā kumuwaiwai?

Me ke kōkuaʻana o metric-server Hiki iā ʻoe ke ʻike i ka hoʻohana ʻana i nā kumuwaiwai CPU a me ka hoʻohana ʻana i ka hoʻomanaʻo e nā pods (a me nā pahu i loko o lākou). ʻO ka mea nui paha, ke hoʻohana nei ʻoe iā ia. E holo wale i kēia mau kauoha:

kubectl top pods
kubectl top pods --containers
kubectl top nodes

Eia naʻe, hōʻike wale lākou i ka hoʻohana ʻana i kēia manawa. Hiki iā ia ke hāʻawi iā ʻoe i kahi manaʻo koʻikoʻi o ke ʻano o ka nui, akā i ka hopena e pono ai ʻoe mōʻaukala o nā hoʻololi ʻana i nā ana i ka wā (e pane i nā nīnau e like me: "He aha ka haʻahaʻa CPU kiʻekiʻe?", "He aha ka ukana i nehinei kakahiaka?", etc.). No kēia hiki iā ʻoe ke hoʻohana IHILA, DataDog a me nā mea hana ʻē aʻe. Loaʻa iā lākou nā metric mai ka metric-server a mālama iā lākou, a hiki i ka mea hoʻohana ke nīnau iā lākou a hoʻolālā e like me ia.

VerticalPodAutoscaler Ua apono hana maʻalahi keia hana. Mālama ia i ka CPU a me ka mōʻaukala hoʻohana hoʻomanaʻo a hoʻonohonoho i nā noi a me nā palena hou e pili ana i kēia ʻike.

ʻAʻole maʻalahi ka hoʻohana ʻana i ka mana computing. Ua like ia me ka pāʻani ʻana iā Tetris i nā manawa a pau. Inā ʻoe e uku nui ana no ka mana helu me ka haʻahaʻa haʻahaʻa haʻahaʻa (e ʻōlelo ~ 10%), manaʻo mākou e nānā i nā huahana e pili ana iā AWS Fargate a i ʻole Kubelet Virtual. Kūkulu ʻia lākou ma kahi hiʻohiʻona pili kālā serverless/pay-per-usage, a ʻoi aku ka liʻiliʻi ma ia mau kūlana.

2. Nā ʻimi ola a me ka mākaukau

Ma ka paʻamau, ʻaʻole hiki ke nānā ʻia ke ola a me ka mākaukau ma Kubernetes. A i kekahi manawa poina lākou e hoʻohuli iā lākou ...

Akā pehea e hiki ai iā ʻoe ke hoʻomaka i ka hoʻomaka ʻana o ka lawelawe i ka wā o kahi hewa make? A pehea e ʻike ai ka mea hoʻohālikelike ukana ua mākaukau kahi pod e ʻae i ke kaʻa? A i ʻole hiki iā ia ke mālama i nā kaʻa hou aku?

Hoʻopili pinepine ʻia kēia mau hoʻokolohua me kekahi i kekahi:

  • Ola - ka nānā "survivability", e hoʻomaka hou i ka pod inā hāʻule;
  • Mākaukau - nānā mākaukau, inā hāʻule, wehe ia i ka pod mai ka lawelawe Kubernetes (hiki ke nānā ʻia me ka hoʻohana ʻana kubectl get endpoints) a ʻaʻole hiki mai ke kaʻa i laila a hiki i ka pau ʻana o ka māka hou.

ʻO kēia mau loiloi ʻelua Hana ʻia i loko o ka pōʻai holoʻokoʻa o ke ola o ka POD. He mea nui loa.

ʻO ka manaʻo kuhihewa maʻamau e holo wale ʻia nā ʻimi mākaukau i ka hoʻomaka ʻana i hiki i ka mea kaulike ke ʻike ua mākaukau ka pod (Ready) a hiki ke hoʻomaka i ka hana kaʻa. Eia naʻe, ʻo kēia wale nō kekahi o nā koho no kā lākou hoʻohana.

ʻO kekahi ʻo ka hiki ke ʻike i ka nui o ke kaʻa ma ka pod a hoonui ia (a i ʻole e hana ka pod i nā helu kumu waiwai). I kēia hihia, kōkua ka nānā mākaukau e ho'ēmi i ka ukana ma ka pod a "hoʻoluʻu" ia. ʻO ka hoʻokō pono ʻana i kahi nānā mākaukau i ka wā e hiki mai ana e hoʻonui hou i ka ukana ma ka pod. I kēia hihia (inā hāʻule ka hoʻāʻo mākaukau), he mea kūʻē loa ka nele o ka hoʻāʻo ola. No ke aha e hoʻomaka hou ai i kahi pod i olakino a hana ikaika?

No laila, i kekahi mau hihia, ʻaʻohe loiloi ʻoi aku ka maikaʻi ma mua o ka hiki ʻana iā lākou me nā ʻāpana i hoʻonohonoho hewa ʻia. E like me ka mea i ʻōlelo ʻia ma luna, inā liveness check kope mākaukau nānā, a laila, pilikia nui ʻoe. ʻO ke koho hiki ke hoʻonohonoho hoao makaukau wale noa me ka ola weliweli e waiho kapae.

ʻAʻole pono e hāʻule nā ​​ʻano loiloi ʻelua ke hāʻule nā ​​hilinaʻi maʻamau, inā ʻaʻole e alakaʻi kēia i ka hāʻule ʻana (like-avalanche) o nā pods āpau. ʻO ia hoʻi, mai hana ino oe ia oe iho.

3. LoadBalancer no kēlā me kēia lawelawe HTTP

Loaʻa paha, loaʻa iā ʻoe nā lawelawe HTTP i kāu pūʻulu āu e makemake ai e hoʻouna i ka honua o waho.

Inā wehe ʻoe i ka lawelawe e like me type: LoadBalancer, ʻo kāna mea hoʻoponopono (e pili ana i ka mea lawelawe) e hāʻawi a kūkākūkā i kahi LoadBalancer waho (ʻaʻole pono e holo ma L7, akā ma L4 hoʻi), a hiki i kēia ke hoʻopili i ke kumukūʻai (ka helu IPv4 kūwaho kūwaho, ka mana helu, ka bila kekona kekona. ) ma muli o ka pono e hana i ka nui o ia mau kumuwaiwai.

I kēia hihia, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i hoʻokahi mea kaulike o waho, wehe i nā lawelawe e like me type: NodePort. A i ʻole ʻoi aku ka maikaʻi, e hoʻonui i kahi mea like nginx-ingress-controller (ai ole hemo), ʻo wai wale nō NodePort e pili ana me ka mea kaulike haawe waho a e hoʻohana i ke kaʻahele ma ka hui hoʻokomo- Nā kumuwaiwai Kubernetes.

Hiki i nā lawelawe intra-cluster (micro) e launa pū kekahi me kekahi ke "kamaʻilio" me ka hoʻohana ʻana i nā lawelawe like ClusterIP a me kahi hana ʻike lawelawe i kūkulu ʻia ma o DNS. Mai hoʻohana wale i kā lākou DNS / IP lehulehu, no ka mea hiki ke hoʻopili i ka latency a hoʻonui i ke kumukūʻai o nā lawelawe kapua.

4. Ka hoʻonui ʻana i kahi pūʻulu me ka nānā ʻole i kona mau hiʻohiʻona

I ka hoʻohui ʻana i nā nodes a wehe iā lākou mai kahi puʻupuʻu, ʻaʻole pono ʻoe e hilinaʻi i kekahi mau metric maʻamau e like me ka hoʻohana ʻana i ka CPU ma kēlā mau nodes. Pono e noʻonoʻo ka hoʻolālā pod i nā mea he nui kaohi ana, e like me ka pod/node affinity, tants and tolerations, noi waiwai, QoS, etc. ʻO ka hoʻohana ʻana i kahi autoscaler waho ʻaʻole i noʻonoʻo i kēia mau nuances hiki ke alakaʻi i nā pilikia.

E noʻonoʻo pono e hoʻonohonoho ʻia kahi pod, akā noi ʻia nā mana CPU āpau i loaʻa / wehe ʻia a me ka pod paʻa i kahi mokuʻāina Pending. ʻIke ʻo autoscaler waho i ka awelika o ka ukana CPU o kēia manawa (ʻaʻole ka mea i noi ʻia) a ʻaʻole ia e hoʻomaka i ka hoʻonui (hoʻonui ʻia) - ʻaʻole e hoʻohui i kahi node ʻē aʻe. ʻO ka hopena, ʻaʻole e hoʻonohonoho ʻia kēia pod.

I kēia hihia, e hoʻohuli i ka scaling (kaulike-i) - ʻoi aku ka paʻakikī o ka hoʻokō ʻana i ka wehe ʻana i kahi node mai kahi hui. E noʻonoʻo e loaʻa iā ʻoe kahi pod stateful (me ka hoʻopaʻa paʻa ʻana i pili). Nā puke mau no ka mea maʻamau wahi loaʻa kikoʻī a ʻaʻole hana hou ʻia ma ka ʻāina. No laila, inā hoʻopau kahi autoscaler waho i kahi node me kēia pod, ʻaʻole hiki i ka mea hoʻonohonoho ke hoʻonohonoho i kēia pod ma kahi node ʻē aʻe, no ka mea, hiki ke hana ʻia kēia ma ka ʻāpana loaʻa kahi e waiho ai ka waihona hoʻomau. E hoʻopaʻa ʻia ʻo Pod i ka mokuʻāina Pending.

Kaulana loa i ke kaiāulu Kubernetes cluster-autoscaler. E holo ana ia ma kahi puʻupuʻu, kākoʻo i nā API mai nā mea hoʻolako kapuaʻi nui, e noʻonoʻo i nā palena āpau a hiki ke hoʻonui i nā hihia i luna. Hiki iā ia ke hoʻonui i ka wā e mālama ana i nā palena i hoʻonohonoho ʻia, a laila e mālama i ke kālā (e hoʻohana ʻia i ka hiki ke hoʻohana ʻole ʻia).

5. Haʻalele i nā mana IAM/RBAC

E makaʻala i ka hoʻohana ʻana i nā mea hoʻohana IAM me nā mea huna mau no nā mīkini a me nā noi. E hoʻonohonoho i ke komo manawaleʻa me ka hoʻohana ʻana i nā kuleana a me nā moʻokāki lawelawe (nā moʻokāki lawelawe).

ʻIke pinepine mākou i ka ʻoiaʻiʻo ua paʻakikī nā kī komo (a me nā mea huna) i ka hoʻonohonoho noi, a me ka haʻalele ʻana i ka hoʻololi ʻana o nā mea huna ʻoiai ke komo ʻana iā Cloud IAM. E hoʻohana i nā kuleana IAM a me nā moʻokāki lawelawe ma kahi o nā mea hoʻohana inā kūpono.

10 mau hewa maʻamau i ka hoʻohana ʻana iā Kubernetes

E poina iā kube2iam a hele pololei i nā kuleana IAM no nā moʻokāki lawelawe (e like me ka wehewehe ʻana ma memo o ka inoa hookahi Štěpán Vraný):

apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-app-role
  name: my-serviceaccount
  namespace: default

Hoʻokahi hōʻike. ʻAʻole paʻakikī, ʻeā?

Eia kekahi, mai hāʻawi i nā pono o nā moʻokāki lawelawe a me nā hiʻohiʻona admin и cluster-admininā ʻaʻole pono lākou. ʻOi aku ka paʻakikī o kēia e hoʻokō, ʻoi aku ma RBAC K8s, akā pono maoli ka hoʻoikaika ʻana.

6. Mai hilinaʻi ma ka ʻakomi anti-affinity no nā pods

E noʻonoʻo e loaʻa iā ʻoe ʻekolu replicas o kekahi kau ʻana ma kahi node. Hāʻule ka node, a me ia nā kope a pau. He kūlana maikaʻi ʻole, ʻeā? Akā, no ke aha i loaʻa ai nā kope a pau ma ka node hoʻokahi? ʻAʻole anei ʻo Kubernetes e hāʻawi i ka loaʻa kiʻekiʻe (HA)?!

ʻO ka mea pōʻino, ʻaʻole hoʻokō ʻo Kubernetes scheduler, ma kāna hana ponoʻī i nā lula o ka noho kaʻawale (kūʻē i ka pilina) no nā ʻōpala. Pono lākou e hōʻike pololei:

// опущено для краткости
      labels:
        app: zk
// опущено для краткости
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                    - zk
              topologyKey: "kubernetes.io/hostname"

ʻo ia wale nō. I kēia manawa e hoʻonohonoho ʻia nā pods ma nā node like ʻole (e nānā ʻia kēia kūlana i ka wā o ka hoʻonohonoho ʻana, akā ʻaʻole i ka wā o kā lākou hana - no laila requiredDuringSchedulingIgnoredDuringExecution).

Eia mākou e kamaʻilio nei podAntiAffinity ma nā node like ʻole: topologyKey: "kubernetes.io/hostname", - ʻaʻole e pili ana i nā ʻāpana like ʻole. No ka hoʻokō ʻana i kahi HA piha, pono ʻoe e ʻeli hohonu i kēia kumuhana.

7. Ka nānā 'ole i ka PodDisruptionBudgets

E noʻonoʻo e loaʻa iā ʻoe kahi ukana hana ma kahi pūʻulu Kubernetes. I kēlā me kēia manawa, pono e hōʻano hou ʻia nā nodes a me ka puʻupuʻu ponoʻī (a i ʻole decommissioned). ʻO PodDisruptionBudget (PDB) kekahi mea e like me ka ʻaelike hōʻoia lawelawe ma waena o nā luna hoʻomalu a me nā mea hoʻohana.

ʻAe ʻo PDB iā ʻoe e pale i nā pilikia lawelawe i hana ʻia e ka nele o nā nodes:

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

Ma kēia hiʻohiʻona, ʻo ʻoe, ma ke ʻano he mea hoʻohana i ka puʻupuʻu, e haʻi aku i nā mea hoʻokele: "ʻAe, he lawelawe mālama zookeper kaʻu, a ʻaʻohe mea āu e hana ai, makemake wau e loaʻa i ka liʻiliʻi he 2 kope o kēia lawelawe i loaʻa mau."

Hiki iā ʻoe ke heluhelu hou aku e pili ana i kēia maanei.

8. Nui nā mea hoʻohana a i ʻole kaiapuni i loko o kahi pūʻulu maʻamau

Nā papa inoa Kubernetes (kahi inoa) mai hāʻawi i ka hoʻokuʻu ikaika.

ʻO ka manaʻo kuhihewa maʻamau inā ʻoe e kau i kahi ukana non-prod i kahi inoa inoa a me kahi ukana prod i kekahi, a laila lākou ʻaʻole e hoʻoikaika kekahi i kekahi ma kekahi ʻano... Eia naʻe, hiki ke hoʻokō ʻia kahi pae o ka hoʻokaʻawale ʻana me ka hoʻohana ʻana i nā noi kumu waiwai/palena, hoʻonohonoho i nā quota, a me ka hoʻonohonoho ʻana i nā priorityClasses. Hāʻawi ʻia kekahi kaʻawale "kino" i ka mokulele ʻikepili e nā pili, nā ʻae ʻana, nā tants (a i ʻole nodeselectors), akā ʻo ia kaʻawale ʻana. pilikia hoʻokō.

ʻO ka poʻe pono e hoʻohui i nā ʻano hana ʻelua i ka puʻupuʻu hoʻokahi e hana i ka paʻakikī. Inā ʻaʻohe mea e pono ai, a hiki iā ʻoe ke loaʻa hoʻokahi hui hou ('ōlelo, ma ke ao lehulehu), a laila ʻoi aku ka maikaʻi o ka hana ʻana pēlā. E hoʻokō kēia i kahi kiʻekiʻe kiʻekiʻe o ka insulation.

9. externalTrafficPolicy: Cluster

ʻIke pinepine mākou e hele mai nā kaʻa āpau i loko o ka pūpū ma o kahi lawelawe e like me NodePort, kahi i hoʻonohonoho ʻia ai ke kulekele paʻamau externalTrafficPolicy: Cluster... ʻO ia ka manaʻo NodePort wehe ʻia ma kēlā me kēia node o ka hui, a hiki iā ʻoe ke hoʻohana i kekahi o ia mau mea e launa pū me ka lawelawe i makemake ʻia (set of pods).

10 mau hewa maʻamau i ka hoʻohana ʻana iā Kubernetes

I ka manawa like, loaʻa maʻamau nā pods maoli e pili ana i ka lawelawe NodePort i ʻōlelo ʻia ma luna ma kekahi ʻāpana o kēia mau nodes. I nā huaʻōlelo ʻē aʻe, inā e hoʻopili wau i kahi node ʻaʻole i loaʻa ka pod i koi ʻia, e hoʻouna ia i ke kaʻa i kahi node ʻē aʻe, hoʻohui i kahi hop a me ka hoʻonui ʻana i ka latency (inā loaʻa nā nodes i nā ʻāpana ʻokoʻa/nā kikowaena ʻikepili, hiki ke kiʻekiʻe loa ka latency; ʻo ia hoʻi, e piʻi aʻe ke kumukūʻai o ke kaʻa puka waho).

Ma ka ʻaoʻao ʻē aʻe, inā loaʻa i kahi lawelawe Kubernetes kahi kulekele externalTrafficPolicy: Local, a laila wehe wale ʻo NodePort ma kēlā mau node kahi e holo maoli ai nā pods i makemake ʻia. I ka hoʻohana ʻana i kahi mea kaulike o waho e nānā i ka mokuʻāina (ke olakino) hopena (pehea e hana ai AWS ELB), ʻO ia e hoʻouna i nā kaʻa wale i nā nodes pono, e loaʻa ana ka hopena maikaʻi i nā lohi, nā pono helu helu, nā bila egress (a ʻo ka manaʻo maʻamau ke kuhikuhi like).

Loaʻa ka manawa nui ke hoʻohana nei ʻoe i kahi mea like hemo ai ole ia, nginx-ingress-controller ma ke ʻano he NodePort endpoint (a i ʻole LoadBalancer, e hoʻohana pū ana iā NodePort) e ala i ka hele ʻana o HTTP komo, a ʻo ka hoʻonohonoho ʻana i kēia koho hiki ke hōʻemi nui i ka latency no ia mau noi.

В kēia paʻi Hiki iā ʻoe ke aʻo hou e pili ana i externalTrafficPolicy, kona mau pono a me nā hemahema.

10. Mai hoʻopaʻa ʻia i nā pūʻulu a mai hōʻino i ka mokulele hoʻokele

Ma mua, he mea maʻamau ke kāhea ʻana i nā kikowaena ma nā inoa kūpono: Anton. Eia naʻe, ua mau ka maʻamau, a i kēia manawa ua hele nā ​​inoa kūpono i nā pūʻulu.

He moʻolelo maʻamau (e pili ana i nā hanana maoli): ua hoʻomaka me ka hōʻoia o ka manaʻo, no laila he inoa haʻaheo ka hui ikea ai… Ua hala nā makahiki a hoʻohana ʻia i ka hana ʻana, a makaʻu nā mea a pau ke hoʻopā iā ia.

ʻAʻohe mea leʻaleʻa e pili ana i ka lilo ʻana o nā puʻupuʻu i mau holoholona, ​​​​no laila makemake mākou e wehe iā lākou i kēlā me kēia manawa i ka wā e hoʻomaʻamaʻa ana hoʻōla pōʻino (e kōkua kēia chaos engineering - kokoke. unuhi.). Eia kekahi, ʻaʻole ia e hōʻeha i ka hana ʻana ma ka papa mana (hoʻokele mokulele). ʻO ka makaʻu e hoʻopā iā ia ʻaʻole ia he hōʻailona maikaʻi. Etc. make? E nā kāne, pilikia maoli ʻoe!

Ma ka ʻaoʻao ʻē aʻe, ʻaʻole pono ʻoe e lawe pio ʻia me ka manipulating. Me ka manawa lohi paha ka papa mana. ʻO ka mea nui paha, ma muli o ka nui o nā mea i hana ʻia me ka ʻole o kā lākou hoʻololi ʻana (kahi kūlana maʻamau i ka wā e hoʻohana ai iā Helm me nā hoʻonohonoho paʻamau, ʻo ia ke kumu i hoʻonui ʻole ʻia ai kona mokuʻāina i nā configmaps/mea huna - ʻo ka hopena, hōʻuluʻulu ʻia nā tausani o nā mea i loko. ka papa hoʻomalu) a i ʻole me ka hoʻoponopono mau ʻana i nā mea kube-api (no ka scaling ʻakomi, no CI/CD, no ka nānā ʻana, nā moʻolelo hanana, nā mea hoʻokele, a pēlā aku).

Eia hou, paipai mākou e nānā i nā ʻaelike SLA/SLO me ka mea hoʻolako Kubernetes mālama ʻia a me ka nānā ʻana i nā mea hōʻoia. Hiki i ka mea kūʻai ke hōʻoia ka loaʻa ʻana o ka papa hoʻomalu (a i ʻole kona mau ʻāpana), akā ʻaʻole ka p99 lohi o nā noi āu e hoʻouna ai iā ia. ʻO ia hoʻi, hiki iā ʻoe ke komo kubectl get nodes, a loaʻa ka pane wale nō ma hope o 10 mau minuke, a ʻaʻole ia he uhaki i nā ʻōlelo o ka ʻaelike lawelawe.

11. Bonus: hoʻohana i ka hōʻailona hou loa

Akā he mea maʻamau kēia. I kēia mau lā, ua ʻike pinepine mākou i kēia ʻenehana, no ka mea he nui ka poʻe i aʻo mai ka ʻike ʻawaʻawa, ua pau ka hoʻohana ʻana i ka tag :latest a hoʻomaka i ka paʻi ʻana i nā mana. Hooray!

ECR mālama i ka hoʻololi ʻole o nā lepili kiʻi; Paipai mākou iā ʻoe e hoʻomaʻamaʻa iā ʻoe iho me kēia hiʻohiʻona kupaianaha.

Hōʻuluʻulu

Mai manaʻo e hana nā mea a pau i ka pō: ʻAʻole ʻo Kubernetes kahi panacea. App ino e mau ana kēia ala ma nā Kubernetes (a e piʻi aʻe paha ka ʻino). ʻO ka mālamaʻole e alakaʻi i ka paʻakikī nui, ka hana lohi a me ke kaumaha o ka papa mana. Eia hou, pilikia ʻoe i ka waiho ʻole ʻia me kahi hoʻolālā hoʻōla pōʻino. Mai manaʻo e hāʻawi ka Kubernetes i kahi kaʻawale a me ka loaʻa kiʻekiʻe ma waho o ka pahu. E hoʻolōʻihi i ka manawa e hoʻolilo i kāu noi i ke ao maoli maoli.

Hiki iā ʻoe ke kamaʻāina me nā ʻike holomua ʻole o nā hui like ʻole keia ohi moolelo na Henning Jacobs.

ʻO ka poʻe makemake e hoʻohui i ka papa inoa o nā hewa i hāʻawi ʻia i kēia ʻatikala hiki ke hoʻopili iā mākou ma Twitter (@MarekBartik, @MstrsObserver).

PS mai ka unuhi

E heluhelu pū ma kā mākou blog:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka