ʻAʻole pono ʻoe i nā Kubernetes

ʻAʻole pono ʻoe i nā Kubernetes
Kaikamahine ma ka scooter. Kii freepik, Nomad logo mai Hoʻolahaʻo HashiCorp

ʻO Kubernetes ka gorila 300-paona o ka hoʻokani pahu. Hana ia ma kekahi o nā ʻōnaehana pahu nui loa ma ka honua, akā he pipiʻi.

ʻOi aku ka pipiʻi no nā hui liʻiliʻi, kahi e koi ai i ka manawa kākoʻo nui a me kahi pihi aʻo kiʻekiʻe. He nui loa kēia no kā mākou hui ʻehā. No laila, hoʻomaka mākou e ʻimi i nā mea ʻē aʻe - a aloha mākou Nomad.

He aha kou makemake

Kākoʻo kā mākou hui i kekahi mau lawelawe nānā ʻana a me ka nānā ʻana i ka hana maʻamau: nā helu hopena API no nā metric i kākau ʻia ma Go, Prometheus exports, log parsers e like me Logstash a Kelaha, a me nā waihona e like me InfluxDB a i ʻole Elasticsearch. Holo kēlā me kēia lawelawe i kāna pahu ponoʻī. Pono mākou i kahi ʻōnaehana maʻalahi e hoʻomau i ka holo.

Ua hoʻomaka mākou me kahi papa inoa o nā koi no ka hoʻokani pahu:

  • Ke holo nei i kahi hoʻonohonoho o nā lawelawe ma nā mīkini he nui.
  • Nānā o nā lawelawe holo.
  • Nā loulou ma waena o nā lawelawe.
  • E hoʻomaka hou inā pau ka lawelawe.
  • ʻO ka mālama ʻana i nā ʻoihana e kahi hui liʻiliʻi.

Eia kekahi, maikaʻi nā mea aʻe, akā ʻaʻole pono nā hoʻohui:

  • Hoʻopili i nā mīkini e pili ana i ko lākou hiki (no ka laʻana, ke kau ʻana i nā mīkini me nā disks wikiwiki no nā lawelawe I/O kaumaha).
  • Hiki ke holo i nā lawelawe kūʻokoʻa mai ka orchestrator (no ka laʻana, i ka wā hoʻomohala).
  • He wahi maʻamau e kaʻana like i nā hoʻonohonoho a me nā mea huna.
  • Hopena no nā ana a me nā lāʻau.

No ke aha ʻaʻole kūpono ʻo Kubernetes iā mākou

I ko mākou hoʻohālikelike ʻana me Kubernetes, ʻike mākou e hoʻohui nei mākou i nā ʻāpana paʻakikī o ka loiloi a mākou i hilinaʻi nui ai.

E like me ka laʻana, kākoʻo ʻo Kubernetes i nā hoʻonohonoho lawelawe i kūkulu ʻia ma o ConfigMaps. Hiki iā ʻoe ke huikau, ʻoiai ke hoʻohui ʻana i nā faila hoʻonohonoho he nui a i ʻole ka hoʻohui ʻana i nā lawelawe hou i kahi pod. Kubernetes (a i ʻole kaʻa hoʻokele i kēia hihia) hiki iā ʻoe ke hoʻokō ikaika i nā hoʻonohonoho waho e hoʻokaʻawale i nā hopohopo. Akā ʻo kēia ka hopena i kahi pilina paʻa a hūnā ma waena o kāu papahana a me Kubernetes. Eia nō naʻe, ʻo Helm a me ConfigMaps nā koho ʻē aʻe, no laila ʻaʻole pono ʻoe e hoʻohana. Hiki iā ʻoe ke kope wale i ka hoʻonohonoho ʻana i ke kiʻi Docker. Eia naʻe, he mea hoʻowalewale ke hele i kēia ala a kūkulu i nā abstractions pono ʻole e mihi ai ʻoe ma hope.

Eia hou, ke ulu wikiwiki nei ke kaiaola Kubernetes. He nui ka manawa a me ka ikaika no ka hoʻomau ʻana me nā hana maikaʻi loa a me nā mea hana hou. Kubectl, minikube, kubeadm, helm, tiller, kops, oc - hoʻomau ka papa inoa. ʻAʻole pono kēia mau mea hana i ka wā e hoʻomaka ai ʻoe, akā ʻaʻole ʻoe i ʻike i kāu mea e pono ai, no laila pono ʻoe e makaʻala i nā mea āpau. Ma muli o kēia, ʻoi aku ka pali o ke aʻo ʻana.

I ka manawa e hoʻohana ai i nā Kubernetes

I kā mākou hui, nui ka poʻe e hoʻohana iā Kubernetes a hauʻoli nui lākou. Mālama ʻia kēia mau manawa e Google a i ʻole Amazon, nona nā kumuwaiwai e kākoʻo iā lākou.

Hele mai ʻo Kubernetes me nā hiʻohiʻona kupaianaha, ka mea e hiki ai ke hoʻoponopono i ka hoʻokani pahu ma ke ʻano nui:

  • kikoʻī hooponopono kuleana.
  • Nā mea hoʻoponopono maʻamau hoʻohui i ka lokahi i ka pūʻulu. He mau polokalamu maʻalahi kēia e kamaʻilio me ka Kubernetes API.
  • Ka hoʻonui ʻana! Hiki i nā Kubernetes ke hoʻonui i nā lawelawe ma ke koi me ka hoʻohana ʻana i nā metric lawelawe a me ka ʻole o ke koi ʻana i ka hana lima.

ʻO ka nīnau inā pono ʻoe i kēia mau hiʻohiʻona āpau. ʻAʻole hiki iā ʻoe ke hilinaʻi wale i nā abstractions; pono ʻoe e ʻike i nā mea e hana nei ma lalo o ka pā.

Hāʻawi kā mākou hui i ka hapa nui o nā lawelawe ma kahi mamao (ma muli o ka pili pili ʻana i ka ʻōnaehana nui), no laila ʻaʻole mākou makemake e hoʻāla i kā mākou hui Kubernetes ponoʻī. Ua makemake wale mākou e hoʻolako i nā lawelawe.

ʻAʻole i hoʻokomo ʻia nā pākahi

ʻO Nomad ka 20% o ka orchestration e hāʻawi ana i 80% o nā mea e pono ai. ʻO nā mea a pau e hoʻokele i nā hoʻolaha. Mālama ʻo Nomad i nā hoʻolaha, hoʻomaka hou i nā pahu inā he hewa ... a ʻo ia nō.

ʻO ke kumu holoʻokoʻa o Nomad ka mea e hana ai palena iki: ʻaʻohe hoʻoponopono kuleana granular a i ʻole nā kulekele pūnaewele hoʻonui, ua hoʻolālā kūikawā ʻia kēia. Hāʻawi ʻia kēia mau ʻāpana ma waho a ʻaʻole loa.

Manaʻo wau ua loaʻa iā Nomad ka hoʻohālikelike kūpono ma waena o ka maʻalahi o ka hoʻohana a me ka pono. He maikaʻi no nā lawelawe liʻiliʻi, kūʻokoʻa. Inā makemake ʻoe i ka mana hou, pono ʻoe e hoʻāla iā lākou iho a i ʻole e hoʻohana i kahi ala ʻē aʻe. Nomad ka pololei mea hookani pila.

ʻO ka mea maikaʻi loa e pili ana iā Nomad ʻo ia ka maʻalahi hoololi. ʻAʻohe mea pili i ka mea kūʻai aku, no ka mea ua maʻalahi kāna mau hana i nā ʻōnaehana ʻē aʻe e mālama i nā lawelawe. Holo wale ʻo ia e like me ka binary maʻamau ma kēlā me kēia mīkini i ka pūʻulu, ʻo ia wale nō!

ʻO ka kaiaola nomad o nā mea i hui ʻole ʻia

ʻO ka ikaika maoli o Nomad kona kaiaola. Hoʻohui maikaʻi loa ia me nā huahana ʻē aʻe - koho loa - nā huahana e like me Kanikela (kūʻai waiwai kī) a i ʻole Vault (hana huna). Aia i loko o ka faila Nomad nā ʻāpana no ka unuhi ʻana i ka ʻikepili mai kēia mau lawelawe:

template {
  data = <<EOH
LOG_LEVEL="{{key "service/geo-api/log-verbosity"}}"
API_KEY="{{with secret "secret/geo-api-key"}}{{.Data.value}}{{end}}"
EOH

  destination = "secrets/file.env"
  env         = true
}

Eia mākou heluhelu i ke kī service/geo-api/log-verbosity mai ke Kanikela a hōʻike iā ia i kahi ʻano hoʻololi kaiapuni i ka wā e hana ai LOG_LEVEL. Hōʻike pū mākou i ke kī secret/geo-api-key mai Vault e like me API_KEY. Maʻalahi akā ikaika!

Ma muli o kona maʻalahi, hiki ke hoʻonui ʻia ʻo Nomad me nā lawelawe ʻē aʻe ma o API. No ka laʻana, kākoʻo ʻia nā hōʻailona no nā hana. Hoʻopili mākou i nā lawelawe āpau me nā ana trv-metrics. Ma kēia ala hiki iā Prometheus ke loaʻa i kēia mau lawelawe ma o ke Kanikela a nānā i kēlā me kēia manawa i ka hopena /metrics no ka ʻikepili hou. Hiki ke hana like, no ka laʻana, no nā lāʻau, hoʻohana Loki.

Nui nā hiʻohiʻona ʻē aʻe o ka extensibility:

  • E holo i kahi hana Jenkins me ka hoʻohana ʻana i kahi makau, a nānā ke Kanikela i ka hoʻihoʻi hou ʻana o ka hana Nomad ke hoʻololi ka hoʻonohonoho lawelawe.
  • Hoʻohui ʻo Ceph i kahi ʻōnaehana faila i hāʻawi ʻia iā Nomad.
  • helena no ke kau kaulike ana.

ʻAe kēia a pau hoʻomohala kino me ka pili ole i ka mea kuai.

Hoʻolaha kūpono

ʻAʻohe ʻōnaehana kūpono. ʻAʻole wau manaʻo e hoʻokomo koke i nā hiʻohiʻona hou i ka hana. ʻOiaʻiʻo, aia nā pōpoki a me nā hiʻohiʻona nalo, akā pili like ia i nā Kubernetes.

Ke hoʻohālikelike ʻia me Kubernetes, ʻaʻole nui loa ka kaiāulu Nomad. Loaʻa iā Kubernetes ma kahi o 75 mau hana a me 000 mau mea kōkua, aʻo Nomad ma kahi o 2000 mau hana a me 14 mau mea kōkua. E paʻakikī ana ʻo Nomad e mālama i ka wikiwiki o Kubernetes, akā ʻaʻole pono! He ʻōnaehana kūikawā ʻoi aku ia, a ʻo ke kaiāulu liʻiliʻi hoʻi ʻo ia ka mea e ʻike ʻia a ʻae ʻia kāu noi huki, ke hoʻohālikelike ʻia me Kubernetes.

Hōʻuluʻulu

Ke laina lalo: Mai hoʻohana i nā Kubernetes no ka mea ke hana nei nā mea ʻē aʻe. E noʻonoʻo pono i kāu mau koi a nānā i ka mea hana i ʻoi aku ka pono.

Inā hoʻolālā ʻoe e kau i kahi ton o nā lawelawe homogeneous ma kahi ʻoihana nui, a laila he koho maikaʻi ʻo Kubernetes. E makaʻala wale i ka paʻakikī i hoʻohui ʻia a me nā koina hana. Hiki ke pale ʻia kekahi mau kumukūʻai ma o ka hoʻohana ʻana i kahi kaiapuni Kubernetes i mālama ʻia e like me ʻO Google Kubernetes ʻenekini ai ole ia, Amazon EKS.

Inā ʻoe e ʻimi nei i kahi orchestrator hilinaʻi maʻalahi e mālama a hoʻonui ʻia, no ke aha e hoʻāʻo ʻole ai iā Nomad? E kahaha paha ʻoe i ka lōʻihi o ka lawe ʻana iā ʻoe.

Inā hoʻohālikelike ʻia ʻo Kubernetes me kahi kaʻa, he scooter ʻo Nomad. I kekahi manawa pono ʻoe i kahi mea a i kekahi manawa pono ʻoe i kahi mea ʻē aʻe. He kuleana ko lāua e ola ai.

Source: www.habr.com

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