ProHoster > Pūnaewele > Nā Administration > CRI-O ma ke ʻano he pani no Docker ma ke ʻano he runtime environment no Kubernetes: hoʻonohonoho ma CentOS 8
CRI-O ma ke ʻano he pani no Docker ma ke ʻano he runtime environment no Kubernetes: hoʻonohonoho ma CentOS 8
Aloha! ʻO Sergey koʻu inoa, ʻo DevOps wau ma Surf. ʻAʻole makemake ka ʻoihana DevOps ma Surf e hoʻokumu i ka pilina ma waena o nā loea a hoʻohui i nā kaʻina hana, akā no ka noiʻi ikaika ʻana a hoʻokō i nā ʻenehana o kēia manawa ma kāna ʻoihana ponoʻī a me ka ʻoihana o ka mea kūʻai aku.
Ma lalo wau e kamaʻilio liʻiliʻi e pili ana i nā loli o ka ʻenehana ʻenehana no nā ipu i ʻike mākou i ke aʻo ʻana i ka hāʻawi ʻana CentOS 8 a e pili ana i ia mea CRI-O a pehea e hoʻonohonoho koke ai i kahi kaiapuni hoʻokō no Kubernetes.
No ke aha ʻaʻole i hoʻokomo ʻia ʻo Docker i CentOS 8?
Ma hope o ka hoʻokomo ʻana i nā hoʻokuʻu nui hou loa rhel 8 ai ole ia, CentOS 8 ʻAʻole hiki i kekahi ke hoʻomaopopo: ʻaʻole i loaʻa i kēia mau māhele a me nā waihona waihona mana ka noi Docker, ka mea e hoʻololi i nā pūʻolo me ka ideologically a me ka hana ʻO Podman, Buildah (i kēia manawa i ka hāʻawi ʻana ma ka paʻamau) a CRI-O. ʻO kēia ma muli o ka hoʻokō pono o nā kūlana i kūkulu ʻia, ma waena o nā mea ʻē aʻe, e Red Hat ma ke ʻano he ʻāpana o ka papahana Open Container Initiative (OCI).
ʻO ka pahuhopu o OCI, ʻo ia kahi ʻāpana o ka Linux Foundation, ʻo ia ka hana ʻana i nā kūlana ʻoihana wehe no nā ʻano pahu pahu a me nā manawa holo e hoʻoponopono i nā pilikia i ka manawa hoʻokahi. ʻO ka mea mua, ʻaʻole lākou i kūʻē i ka manaʻo o Linux (no ka laʻana, ma ka ʻāpana e hana ai kēlā me kēia papahana i hoʻokahi hana, a Docker he ʻano hui like ʻole). ʻO ka lua, hiki iā lākou ke hoʻopau i nā hemahema āpau o ka polokalamu Docker. ʻO ke kolu, e kūpono loa lākou me nā koi ʻoihana o ke alakaʻi ʻana i nā kahua pāʻoihana no ka lawe ʻana, ka mālama ʻana a me ka lawelawe ʻana i nā noi containerized (no ka laʻana, Red Hat OpenShift).
hewa Docker a ua wehewehe mua ʻia nā pono o ka polokalamu hou i kekahi kikoʻī ma kēiaʻatikala, a me ka wehewehe kikoʻī o ka waihona lako polokalamu holoʻokoʻa i hāʻawi ʻia i loko o ka papahana OCI a me kāna mau hiʻohiʻona hoʻolālā hiki ke loaʻa i nā palapala a me nā ʻatikala mai Red Hat ponoʻī (ʻaʻole hewa. 'atikala ma Red Hat blog) a ma ka ʻaoʻao ʻekolu hōʻike manaʻo.
He mea nui e hoʻomaopopo i ka hana o nā ʻāpana o ka waihona i manaʻo ʻia:
ʻO Podman - ka pilina pololei me nā ipu a me ka mālama kiʻi ma o ke kaʻina hana runC;
Buildah - hui a hoʻouka i nā kiʻi i ke kākau inoa;
CRI-O - kahi kaiapuni hiki ke hoʻokō ʻia no nā ʻōnaehana orchestration ipu (no ka laʻana, Kubernetes).
Manaʻo wau e hoʻomaopopo i ka hoʻolālā maʻamau o ka launa pū ʻana ma waena o nā ʻāpana o ka waihona, pono e hāʻawi i kahi kiʻi pili ma aneʻi Kubernetes c holoC a me nā hale waihona puke haʻahaʻa e hoʻohana ana CRI-O:
CRI-O и Kubernetes pili i ka hoʻokuʻu like ʻana a me ka pōʻai kākoʻo (maʻalahi loa ka matrix compatibility: nā mana nui Kubernetes и CRI-O coincide), a ʻo kēia, e noʻonoʻo ana i ka nānā ʻana i ka hoʻāʻo piha ʻana o ka hana o kēia pūʻulu e nā mea hoʻomohala, hāʻawi iā mākou i ke kuleana e manaʻo i ka paʻa loa e hiki ke loaʻa i ka hana ma lalo o nā hiʻohiʻona hoʻohana (ʻoi aku ka maikaʻi o ka māmā pili ma aneʻi. CRI-O hoʻohālikelike ʻia me Docker ma muli o ka palena o ka hana).
Ke kau nei Kubernetes "ala pololei" ala (e like me ka OCI, ʻoiaʻiʻo) me ka hoʻohana ʻana CRI-O maluna o CentOS 8 Ua loaʻa iā mākou kekahi mau pilikia liʻiliʻi, akā naʻe, ua lanakila mākou. E hauʻoli wau e kaʻana like me ʻoe i nā ʻōlelo aʻoaʻo hoʻonohonoho a me ka hoʻonohonoho ʻana, ʻo ia ka nui o 10 mau minuke.
Pehea e kau ai i nā Kubernetes ma CentOS 8 me ka hoʻohana ʻana i ka CRI-O framework
Nā mea e pono ai: ke alo o ka liʻiliʻi o hoʻokahi host (2 cores, 4 GB RAM, kahi e waiho ai ma kahi o 15 GB) me ka hoʻokomo CentOS 8 (ʻO ka ʻōlelo hoʻonohonoho "Server" ua ʻōlelo ʻia), a me nā mea hoʻokomo iā ia i ka DNS kūloko (ma ke ʻano he hopena hope loa, hiki iā ʻoe ke loaʻa me kahi komo i /etc/hosts). A mai poina disable swap.
Hana mākou i nā hana āpau ma luna o ka mea hoʻohana ma ke ʻano he kumu hoʻohana, e makaʻala.
I ka hana mua, e hoʻonohonoho mākou i ka OS, hoʻokomo a hoʻonohonoho i nā hilinaʻi mua no CRI-O.
E hoʻohou i ka OS:
dnf -y update
A laila pono ʻoe e hoʻonohonoho i ka pā ahi a me SELinux. Eia nā mea a pau e pili ana i ke kaiapuni kahi e hana ai kā mākou mea hoʻokipa a mea hoʻokipa paha. Hiki iā ʻoe ke hoʻonohonoho i kahi pā ahi e like me nā ʻōlelo aʻoaʻo mai palapala, a i ʻole, inā ʻoe ma kahi pūnaewele hilinaʻi a hoʻohana paha i kahi pā ahi ʻaoʻao ʻekolu, e hoʻololi i ka ʻāpana paʻamau i hilinaʻi a hoʻopau paha i ka pā ahi:
hoʻonoho i ka mana i makemake ʻia CRI-O (ka mana nui CRI-O, e like me ka mea i ʻōlelo mua ʻia, e hoʻohālikelike i ka mana i makemake ʻia Kubernetes), mai ka mana hou loa Kubernetes i kēia manawa 1.18:
E hoʻolohe i ka nuance mua a mākou e hālāwai ai i ke kaʻina hana: pono e hoʻoponopono i ka hoʻonohonoho CRI-O ma mua o ka hoʻomaka ʻana i ka lawelawe, no ka mea he wahi ʻokoʻa ka mea conmon i makemake ʻia ma mua o ka mea i kuhikuhi ʻia:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
I kēia manawa hiki iā ʻoe ke hoʻāla a hoʻomaka i ka daemon CRI-O:
ʻO ka lua o ka nuance nui: no ka mea ʻaʻole mākou e hoʻohana i kahi daemon Docker, akā hoʻohana mākou i ka daemon CRI-O, ma mua o ka hoʻomaka ʻana a me ka hoʻomaka ʻana Kubernetes Pono ʻoe e hana i nā hoʻonohonoho kūpono i ka faila hoʻonohonoho /var/lib/kubelet/config.yaml, i ka hana mua ʻana i ka papa kuhikuhi makemake:
ʻO ke kolu koʻikoʻi koʻikoʻi a mākou e hālāwai ai i ka wā o ka hoʻonohonoho ʻana: ʻoiai ke hōʻike nei mākou i ka mea hoʻokele i hoʻohana ʻia c hui, a me kāna hoʻonohonoho ʻana ma o nā hoʻopaʻapaʻa i hala kubelet ua kahiko ʻia (e like me ka mea i hōʻike ʻia ma ka palapala), pono mākou e hoʻohui i nā manaʻo i ka faila, inā ʻaʻole e hoʻomaka ʻia kā mākou hui:
I kēia manawa hiki iā mākou ke hoʻoikaika i ka daemon kubelet:
sudo systemctl enable --now kubelet
E hoʻopilikino mokulele hoʻomalu ai ole ia, paʻahana nodes i mau minuke, hiki iā ʻoe ke hoʻohana me keia palapala.
ʻO ka manawa kēia e hoʻomaka ai i kā mākou hui.
No ka hoʻomaka ʻana i ka pūʻulu, e holo i ke kauoha:
kubeadm init --pod-network-cidr=10.244.0.0/16
E ʻoluʻolu e kākau i ke kauoha e hui pū i ka pūʻulu "kubeadm join ...", i noi ʻia iā ʻoe e hoʻohana ma ka hopena o ka hopena, a i ʻole nā hōʻailona i kuhikuhi ʻia.
E hoʻokomo i ka plugin (CNI) no ka pūnaewele Pod. Manaʻo wau e hoʻohana ʻO Kalico. Ua kaulana paha Flannel loaʻa nā pilikia pili me lawe lima, ʻae a ʻO Kalico - ka hoʻokō CNI wale nō i ʻōlelo ʻia a hoʻāʻo piha ʻia e ka papahana Kubernetes:
No ka hoʻopili ʻana i kahi node limahana i kā mākou puʻupuʻu, pono ʻoe e hoʻonohonoho iā ia e like me nā kuhikuhi 1 a me 2, a i ʻole e hoʻohana. palapala, a laila e holo i ke kauoha mai ka "kubeadm init ..." i kākau ai mākou i lalo i ka pae mua:
E nānā i ka hoʻomaka ʻana o kā mākou pūʻulu a hoʻomaka e hana:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Mākaukau! Hiki iā ʻoe ke hoʻokipa i nā uku uku ma kāu hui K8s.
He aha ka mea e kali nei iā mākou ma mua
Manaʻo wau ua kōkua nā ʻōlelo aʻoaʻo ma luna iā ʻoe e mālama i kekahi manawa a me nā aʻalolo.
ʻO ka hopena o nā kaʻina hana i hana ʻia ma ka ʻoihana e hilinaʻi pinepine ʻia i ka ʻae ʻia ʻana e ka hapa nui o nā mea hoʻohana hope a me nā mea hoʻomohala o nā polokalamu ʻē aʻe i ka niche pili. ʻAʻole maopopo loa i ka mea e alakaʻi ai nā hana OCI i kekahi mau makahiki, akā e nānā mākou me ka hauʻoli. Hiki iā ʻoe ke kaʻana like i kou manaʻo i kēia manawa ma nā manaʻo.
E noho ʻoe!
Ua puka mai kēia ʻatikala ma muli o nā kumu penei: