Rook - kahi hale kūʻai ʻikepili lawelawe ponoʻī no nā Kubernetes

Rook - kahi hale kūʻai ʻikepili lawelawe ponoʻī no nā Kubernetes

Ma Ianuali 29, ke komite ʻenehana o ka CNCF (Cloud Native Computing Foundation), ka hui ma hope o Kubernetes, Prometheus a me nā huahana Open Source ʻē aʻe mai ka honua o nā ipu a me ke ao maoli, kūkala ʻia e pili ana i ka ʻae ʻana i ka papahana Ke ʻOihana iloko o ko lakou mau papa. ʻO kahi manawa kūpono e ʻike ai i kēia "mea hoʻolaha hoʻolaha i hāʻawi ʻia ma Kubernetes."

He aha ke ʻano o ka Rook?

Ke ʻOihana ua kākau ʻia nā polokalamu ma Go (mahele ʻia e ma lalo o ka Apache License 2.0 manuahi), i hoʻolālā ʻia e hāʻawi i nā hale waihona ʻikepili me nā hana automated e hana ai iā lākou. ka hoʻokele ponoʻī, ka hoʻomaʻamaʻa ʻana iā ia iho. No ka hana ʻana i kēia, hoʻololi ʻo Rook (no nā hale kūʻai ʻikepili i hoʻohana ʻia ma kahi ʻano Kubernetes): hoʻolālā, bootstrapping, hoʻonohonoho, hoʻolako, scaling, hōʻano hou, neʻe, hoʻihoʻi pōʻino, nānā a me ka hoʻokele waiwai.

Aia ka papahana ma ka papa alpha a he loea i ka hoʻonohonoho ʻana i ka ʻōnaehana mālama mālama Ceph ma nā pūʻulu Kubernetes. Hoʻolaha pū nā mea kākau i nā hoʻolālā e kākoʻo i nā ʻōnaehana mālama ʻē aʻe, akā ʻaʻole e hiki mai kēia i nā hoʻokuʻu e hiki mai ana.

Nā ʻāpana a me nā mea ʻenehana

Hoʻokumu ʻia ka hana a Rook i loko o Kubernetes ma kahi mea hoʻohana kūikawā (Ua kākau hou mākou e pili ana i nā Kubernetes Operators ma kēiaʻatikala), ka mea e hoʻokaʻawale i ka hoʻonohonoho mālama ʻana a hoʻokō i kāna nānā ʻana.

A pēlā, Mea hoʻohana ʻo Rook ʻike ʻia he pahu i loaʻa nā mea āpau e pono ai no ka hoʻolaha ʻana a me ka mālama ʻana i ka waihona. Aia nā kuleana o ka mea hana:

  • ka hana ʻana i kahi DaemonSet no nā daemon mālama Ceph (ceph-osd) me kahi pūʻulu RADOS maʻalahi;
  • ka hana ʻana i nā pods no ka nānā ʻana iā Ceph (mai ceph-mon, nānā i ke kūlana o ka hui; no ka quorum, ma ka hapanui o na hihia, ekolu kope ia e waiho ana, a ina e haule kekahi o ia mau mea, he mea hou ke ala mai);
  • ka mālama ʻana i nā CRD (Nā wehewehe kumu waiwai maʻamau) nona iho pūʻulu, nā loko mālama, hale kūʻai mea (nā hoʻonohonoho waiwai a me nā lawelawe no ka lawelawe ʻana i nā noi HTTP e hana ana i ka PUT/GET ma nā mea - kūpono lākou me S3 a me Swift API), a me ʻōnaehana waihona;
  • hoʻomaka i nā pods e hoʻomaka i nā lawelawe pono āpau;
  • ka hana ʻana o nā ʻelele Rook.

Na Agena o Rook hōʻike ʻia e nā pods ʻokoʻa i kau ʻia ma kēlā me kēia node Kubernetes. ʻO ke kumu o ka ʻelele he hoʻonohonoho plugin FlexVolume, e hāʻawi ana i ke kākoʻo no nā waihona waihona ma Kubernetes. Hoʻokō ka ʻelele i ka hana o ka waiho ʻana: hoʻopili i nā hāmeʻa mālama pūnaewele, hoʻonui i nā volumes, hoʻopili i ka ʻōnaehana faila, etc.

Rook - kahi hale kūʻai ʻikepili lawelawe ponoʻī no nā Kubernetes
Kahi a me ke kuleana o nā ʻāpana Rook i ka hoʻolālā puʻupuʻu Kubernetes holoʻokoʻa

Hāʻawi ʻo Rook i ʻekolu ʻano mālama:

  1. poloka (kal, StorageClass) - kau i ka waihona i kahi kapuahi hoʻokahi;
  2. mea (mea, ObjectStore) - loaʻa i loko a ma waho o ka pūʻulu Kubernetes (ma o S3 API);
  3. ʻōnaehana waihona like (Pūnaehana Waihona Māhele, Filesystem) he ʻōnaehana waihona i hiki ke kau ʻia no ka heluhelu a me ke kākau ʻana mai nā pods lehulehu.

Aia nā loko o ka Rook:

  • Mons - nā pods no ka nānā ʻana iā Ceph (me ka ceph-mon i haʻi mua ʻia);
  • OSD - nā pods me nā daemons ceph-osd (Object Storage Daemons);
  • Ua haʻi aku ʻo M.G.R. - nā ʻōpala me ka daimonio ceph-mgr (Ceph Manager), e hāʻawi ana i nā mana nānā hou aku a me nā pilina no nā ʻōnaehana waho (nānā / mana);
  • RGW (koho) - nā pahu me kahi waiho mea;
  • MDS (koho) - nā pods me ka ʻōnaehana waihona like.

Rook - kahi hale kūʻai ʻikepili lawelawe ponoʻī no nā Kubernetes

Hoʻohui ʻia nā daemons Rook āpau (Mons, OSDs, MGR, RGW, MDS) i hoʻokahi binary (rook) e holo ana i loko o kahi pahu.

No ka hoʻolauna pōkole i ka papahana Rook, pono paha kēia pōkole (12 slides). hōʻikeʻike mai Bassam Tabbara (CTO ma Quantum Corp).

Hana i ka Rook

Kākoʻo piha ka mea hoʻohana Rook iā Kubernetes version 1.6 a ʻoi aku (a ʻo kekahi hapa, ka hoʻokuʻu ʻana o nā K8 kahiko - 1.5.2). Kāna hoʻokomo в ʻano maʻalahi loa ʻano like ʻole o kēia:

cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yaml

Eia kekahi, ua mākaukau ka mea hoʻohana Rook Papa kuhi helm, mahalo i hiki ke hoʻokō ʻia e like me kēia:

helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook

Loaʻa ka liʻiliʻi koho hoʻonohonoho (no ka laʻana, hiki iā ʻoe ke hoʻopau i ke kākoʻo RBAC, inā ʻaʻole hoʻohana ʻia kēia hiʻohiʻona i kāu hui), i hāʻawi ʻia i helm install ma o ka palena --set key=value[,key=value] (a i ʻole e mālama i kahi faila YAML ʻokoʻa a hoʻouna ma o -f values.yaml).

Ma hope o ka hoʻokomo ʻana i ka mea hoʻohana Rook a me ka hoʻokuʻu ʻana i nā pods me kāna mau mea hana, ʻo nā mea a pau i koe e hana i ka pūʻulu Rook ponoʻī, ʻo ka hoʻonohonoho maʻalahi loa e like me kēia (rook-cluster.yaml):

apiVersion: v1
kind: Namespace
metadata:
  name: rook
---
apiVersion: rook.io/v1alpha1
kind: Cluster
metadata:
  name: rook
  namespace: rook
spec:
  dataDirHostPath: /var/lib/rook
  storage:
    useAllNodes: true
    useAllDevices: false
    storeConfig:
      storeType: bluestore
      databaseSizeMB: 1024
      journalSizeMB: 1024

i hoʻopuka: pono e nānā pono i ke ʻano dataDirHostPath, ka waiwai kūpono e pono ai e mālama i ka hui ma hope o ka reboots. No nā hihia i hoʻohana ʻia ma ke ʻano he wahi mālama mau no ka ʻikepili Rook ma nā pūʻali Kubernetes, ʻōlelo nā mea kākau i ka loaʻa ʻana o ka liʻiliʻi o 5 GB o ka hakahaka manuahi ma kēia papa kuhikuhi.

ʻO nā mea a pau i koe, ʻo ka hana maoli ʻana i ka pūʻulu mai ka hoʻonohonoho ʻana a e hōʻoia i ka hana ʻana o nā pods i ka pūʻulu (ma ka inoa inoa. rook):

kubectl create -f rook-cluster.yaml
kubectl -n rook get pod
NAME                              READY     STATUS    RESTARTS   AGE
rook-api-1511082791-7qs0m         1/1       Running   0          5m
rook-ceph-mgr0-1279756402-wc4vt   1/1       Running   0          5m
rook-ceph-mon0-jflt5              1/1       Running   0          6m
rook-ceph-mon1-wkc8p              1/1       Running   0          6m
rook-ceph-mon2-p31dj              1/1       Running   0          6m
rook-ceph-osd-0h6nb               1/1       Running   0          5m

Hoʻohui ʻO ka hui ʻo Rook (a hiki i kahi mana hou) he kaʻina hana i kēia manawa e koi ai i ka hoʻopou hou ʻana o kāna mau ʻāpana āpau i kekahi kaʻina, a hiki iā ʻoe ke hoʻomaka iā ia wale nō ma hope o kou hōʻoia ʻana i ka hoʻonohonoho ʻana o Rook i kēia manawa i kahi "ola maikaʻi". mokuʻāina. Hiki ke loaʻa nā ʻōlelo kuhikuhi i kēlā me kēia ʻanuʻu e hoʻohana ana i ka laʻana o ka hoʻonui ʻana i ka mana Rook 0.5.0 a i ka 0.5.1 ma palapala papahana.

ʻO Nowemapa i hala ma ka blog Rook ua paʻi ʻia hoʻohālikelike kūlike me EBS. He kūpono ka nānā ʻana i kāna mau hopena, a ma ka pōkole, penei:

Rook - kahi hale kūʻai ʻikepili lawelawe ponoʻī no nā Kubernetes
Rook - kahi hale kūʻai ʻikepili lawelawe ponoʻī no nā Kubernetes

Nā Hope

ʻO ke kūlana o Rook i kēia manawa he alpha, a ʻo ka hoʻokuʻu nui loa i kēia lā Hoʻolaha 0.6, hoʻokuʻu ʻia i Nowemapa 2017 (hoʻoponopono i kēia manawa - v0.6.2 - puka mai i ka lā 14 o Dekemaba). Aia i ka hapa mua o 2018, ua manaʻo ʻia nā hoʻokuʻu ʻana o nā mana oʻo: beta a me ka paʻa (mākaukau kūhelu no ka hoʻohana ʻana i ka hana).

Wahi a Papa alanui papahana, loaʻa i nā mea hoʻomohala kahi ʻike kikoʻī no ka hoʻomohala ʻana o Rook ma ka liʻiliʻi o nā hoʻokuʻu ʻelua e hiki mai ana: 0.7 (ʻo kona mākaukau ma ka tracker GitHub. kuhi ʻia e like me 60%) a me 0.8. Ma waena o nā hoʻololi i manaʻo ʻia, ʻo ka hoʻololi ʻana o ke kākoʻo no Ceph Block a me Ceph Object i ke kūlana beta version, ka hoʻolako ikaika ʻana i nā puke no CephFS, kahi ʻōnaehana logging holomua, nā hoʻolaha cluster automated, kākoʻo no nā snapshots no nā volumes.

Lawe i Rook i ka Helu Nā papahana CNCF (i kēia manawa i ka wā mua loa - "ka pae hoʻomaka" - ma kahi pā me linkerd и CoreDNS) he ʻano hōʻoia no ka ulu ʻana o ka hoihoi i ka huahana. Pehea e loaʻa ai kahi paʻa i ka honua o nā noi kapua e ʻoi aku ka maʻalahi i ka wā i hoʻokuʻu ʻia ai nā mana paʻa, kahi e lawe mai ai i nā mea hōʻike hou a me nā mea hoʻohana iā Rook.

PS

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

Source: www.habr.com

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster