Ndewo, ndị bi na Khabro! Kubernetes bụ otu n'ime isi ihe dị na gburugburu igwe ojii nke oge a. Nkà na ụzụ a na-enye ntụkwasị obi, scalability na resilience na akpa virtualization. John Arundel na Justin Domingus na-ekwu maka gburugburu Kubernetes ma webata ihe ngwọta pụtara ìhè maka nsogbu ụbọchị niile. Nzọụkwụ site na nzọụkwụ, ị ga-ewu ngwa ngwa nke igwe ojii ma mepụta akụrụngwa iji kwado ya, guzobe ebe mmepe na pipeline na-aga n'ihu nke ga-enyere gị aka ka ị na-arụ ọrụ na ngwa gị ọzọ.
• Malite na arịa na Kubernetes site na isi: ọ dịghị ahụmahụ pụrụ iche achọrọ iji mụta isiokwu ahụ. • Gbaa ụyọkọ nke gị ma ọ bụ họrọ ọrụ Kubernetes na-achịkwa site na Amazon, Google, wdg. • Jiri Kubernetes jikwaa igbe ndụ akpa na oriri akụrụngwa. • Na-ebuli ụyọkọ dabere na ọnụ ahịa, arụmọrụ, nkwụghachi, ike na scalability. • Mụta ngwa kachasị mma iji mepụta, nwalee na ibunye ngwa gị. • Kwado omume ụlọ ọrụ dị ugbu a iji hụ na nchekwa na njikwa. • Mejuputa ụkpụrụ DevOps n'ime ụlọ ọrụ gị niile ka ndị otu mmepe nwee ike na-eme mgbanwe karịa, ngwa ngwa na nke ọma.
Kedu onye bụ akwụkwọ ahụ?
Akwụkwọ ahụ kachasị mkpa maka ndị ọrụ nke ngalaba nchịkwa na-ahụ maka sava, ngwa na ọrụ, yana maka ndị mmepe na-etinye aka na ịmepụta ọrụ igwe ojii ọhụrụ ma ọ bụ ịkwaga ngwa ndị dị ugbu a na Kubernetes na igwe ojii. Echegbula onwe gị, ịkwesighi ịma ka esi arụ ọrụ na Kubernetes ma ọ bụ arịa - anyị ga-akụziri gị ihe niile.
Ndị ọrụ Kubernetes nwere ahụmahụ ga-ahụkwa ọtụtụ uru, yana mkpuchi miri emi nke isiokwu ndị dị ka RBAC, ntinye aka na-aga n'ihu, njikwa data dị nro, na nleba anya. Anyị na-atụ anya na ibe akwụkwọ ahụ ga-enwe ihe na-atọ gị ụtọ n'agbanyeghị nka na ahụmịhe gị.
Olee ajụjụ akwụkwọ a zara?
Mgbe anyị na-eme atụmatụ ma na-ede akwụkwọ ahụ, anyị na-atụle teknụzụ igwe ojii na Kubernetes na ọtụtụ narị mmadụ, na-ekwurịta okwu na ndị isi ụlọ ọrụ na ndị ọkachamara yana ndị ọhụrụ zuru oke. N'okpuru bụ ajụjụ ndị ahọpụtara ha ga-achọ ka a zaa ha n'akwụkwọ a.
- "Enwere m mmasị na ihe mere ị ga-eji na-etinye oge na teknụzụ a. Olee nsogbu ọ ga-enyere mụ na ndị otu m aka idozi?”
- "Kubernetes dị ka ihe na-atọ ụtọ, mana ọ nwere nnukwu ihe mgbochi ịbanye. Ịkwadebe ihe atụ dị mfe adịghị esiri ike, mana nchịkwa ọzọ na nkwụsịtụ na-agwụ ike. Ọ ga-amasị anyị ịnweta ndụmọdụ ndị a pụrụ ịdabere na ya banyere otu ndị mmadụ si ejikwa ụyọkọ Kubernetes na ụwa n'ezie yana nsogbu ndị anyị nwere ike izute."
- “Ndụmọdụ isiokwu ga-enyere aka. Usoro gburugburu Kubernetes na-enye ndị otu ọhụrụ ọtụtụ nhọrọ ịhọrọ. Mgbe e nwere ọtụtụ ụzọ isi mee otu ihe ahụ, olee otu ị ga-esi mara nke kacha mma? Kedu ka esi eme nhọrọ?
Ma eleghị anya nke kachasị mkpa n'ime ajụjụ niile:
- "Kedu ka m ga-esi jiri Kubernetes na-akpaghasị ụlọ ọrụ m?"
Mpempe akwụkwọ. Nhazi na ihe nzuzo
Ikike ikewapụ mgbagha nke ngwa Kubernetes na nhazi ya (ya bụ, site na ụkpụrụ ma ọ bụ ntọala ọ bụla nwere ike ịgbanwe ka oge na-aga) bara ezigbo uru. Ụkpụrụ nhazi na-agụnyekarị ntọala gburugburu gburugburu, adreesị DNS ọrụ ndị ọzọ, na nzere nyocha.
N'ezie, enwere ike itinye ihe a niile ozugbo na koodu ahụ, mana usoro a adịghị agbanwe agbanwe. Dịka ọmụmaatụ, ịgbanwe ụkpụrụ nhazi ga-achọ ka ị wulite ma bugharịa koodu gị ọzọ. Ihe ngwọta kachasị mma ga-abụ ikewapụ nhazi na koodu ahụ wee gụọ ya na faịlụ ma ọ bụ mgbanwe gburugburu ebe obibi.
Kubernetes na-enye ọtụtụ ụzọ dị iche iche iji jikwaa nhazi. Nke mbụ, ị nwere ike ịnyefe ụkpụrụ na ngwa ahụ site na mgbanwe gburugburu ebe akọwapụtara na nkọwapụta ihe mkpuchi pod (lee "Mgbanwe gburugburu ebe obibi" na ibe 192). Nke abụọ, enwere ike ịchekwa data nhazi ozugbo na Kubernetes site na iji ConfigMap na ihe nzuzo.
N'isiakwụkwọ a, anyị na-enyocha ihe ndị a n'ụzọ zuru ezu wee lelee ụfọdụ ụzọ bara uru iji jikwaa nhazi na data nwere mmetụta site na iji ngwa ngosi.
Na-emelite shei pọd mgbe nhazi gbanwere
Were ya na ị nwere ntinye na ụyọkọ gị ma ịchọrọ ịgbanwe ụkpụrụ ụfọdụ na ConfigMap ya. Ọ bụrụ na ị na-eji chaatị Helm (lee "Helm: Package Manager for Kubernetes" na ibe 102), ị nwere ike chọpụta mgbanwe nhazi na akpaghị aka wee bugharịa mkpuru osisi gị n'otu aghụghọ dị mma. Tinye nkọwa ndị a na nkọwapụta mbugharị gị:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
| sha256sum }}Ihe ndebiri nzigharị nwere ugbu a nwere ndenye nlele nhazi: ọ bụrụ na agbanwere paramita, a ga-emelite nchikota. Ọ bụrụ na ị na-eme nkwalite helm, Helm ga-achọpụta na nkọwapụta nke mbugharị agbanweela ma ga-amalitegharị ihe mkpuchi niile.
Data nwere mmetụta na Kubernetes
Anyị amaralarị na ihe ConfigMap na-enye usoro mgbanwe maka ịchekwa na ịnweta data nhazi na ụyọkọ. Agbanyeghị, ọtụtụ ngwa nwere ozi nwere mmetụta dị nro ma nwee mmetụta, dị ka okwuntughe ma ọ bụ igodo API. Enwere ike ịchekwa ya na ConfigMap, mana ngwọta a adịghị mma.
Kama, Kubernetes na-enye ụdị ihe pụrụ iche emebere iji chekwaa data nwere mmetụta: Nzuzo. Ọzọ, ka anyị leba anya n'ihe atụ otu esi eji ihe a mee ihe na ngwa ngosi anyị.
Iji malite, lelee ihe ngosi Kubernetes maka ihe nzuzo (lee hello-secret-env/k8s/secret.yaml):
apiVersion: v1
kind: Secret
metadata:
name: demo-secret
stringData:
magicWord: xyzzy
Na ọmụmaatụ a, igodo nzuzo magicWord bụ xyzzy (en.wikipedia.org/wiki/Xyzzy_(computing)). Okwu xyzzy na-abakarị uru na ụwa nke kọmputa. Yiri ConfigMap, ị nwere ike ịchekwa ọtụtụ igodo na ụkpụrụ n'ime ihe nzuzo. Ebe a, maka mfe, anyị na-eji naanị otu igodo-uru ụzọ.
Iji Ihe Nzuzo dị ka mgbanwe gburugburu
Dị ka ConfigMap, ihe nzuzo ahụ nwere ike ịdị na akpa dị ka mgbanwe gburugburu ebe obibi ma ọ bụ dị ka faịlụ na diski ya. N'ihe atụ na-esonụ, anyị ga-ekenye mgbanwe gburugburu na uru sitere na Nzuzo:
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
secretKeyRef:
name: demo-secret
key: magicWordGbaa iwu a na ebe nchekwa ngosi iji tinye ihe ngosi:
kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" createdDịka ọ dị na mbụ, zipu ọdụ ụgbọ mmiri dị na mpaghara ahụ na mbugharị ka ịhụ nsonaazụ na ihe nchọgharị gị:
kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888Mgbe imepe adreesị : 9999 / ị ga-ahụ ihe ndị a:
The magic word is "xyzzy"
Ide ihe nzuzo na faịlụ
N'ihe atụ a, anyị ga-etinye ihe nzuzo ahụ na akpa dị ka faịlụ. Koodu ahụ dị na nchekwa ndenye nzuzo-faịlụ nke ebe nchekwa ngosi.
Iji jikọọ Nzuzo dị ka faịlụ, anyị ga-eji nbunye ndị a:
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-file
ports:
- containerPort: 8888
volumeMounts:
- name: demo-secret-volume
mountPath: "/secrets/"
readOnly: true
volumes:
- name: demo-secret-volume
secret:
secretName: demo-secretDị ka ọ dị na nkeji nke "Ịmepụta faịlụ nhazi site na ihe ConfigMap" na p. 240, anyị na-emepụta olu (na nke a ngosi ngosi-nzuzo-olu) ma bulie ya na akpa na volumeMounts ngalaba nke nkọwapụta. Ogige mountPath bụ / nzuzo, yabụ Kubernetes ga-emepụta otu faịlụ na nchekwa a maka ụzọ igodo / uru ọ bụla akọwapụtara na ihe Nzuzo.
N'ihe atụ anyị, anyị kọwapụtara naanị otu ụzọ uru isi akpọrọ magicWord, yabụ ihe ngosi ga-emepụta otu faịlụ / ihe nzuzo/magicWord nwere data nwere mmetụta dị n'ime akpa.
Ọ bụrụ n’itinye ihe ngosi a n’otu ụzọ dị ka ihe atụ gara aga, ị ga-enweta otu nsonaazụ ahụ:
The magic word is "xyzzy"
Ịgụ Ihe Nzuzo
Na ngalaba gara aga, anyị ji kubectl kọwaa iwu iji gosipụta ọdịnaya nke ConfigMap. Enwere ike ime otu ihe ahụ na Nzuzo?
kubectl describe secret/demo-secret
Name: demo-secret
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
magicWord: 5 bytesBiko mara na egosighi data n'onwe ya. Ihe nzuzo dị na Kubernetes bụ ụdị Opaque, nke pụtara na anaghị egosi ọdịnaya ha na kubectl kọwapụta mmepụta, ntinye log, ma ọ bụ ọnụ, na-eme ka ọ ghara ikwe omume ikpughe ozi dị nro na mberede.
Ka ilele ụdị data YAML agbakwunyere, jiri kubectl nweta iwu:
kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaquendabere 64
Kedu ihe bụ eHl6enk =, dị nnọọ iche na uru mbụ anyị? Nke a bụ n'ezie ihe nzuzo, nọchiri anya ya na base64 encoding. Base64 bụ atụmatụ maka itinye koodu ọnụọgụ abụọ na-ezighi ezi dịka eriri mkpụrụedemede.
N'ihi na ozi nwere mmetụta nwere ike ịbụ ọnụọgụ abụọ na ọ bụghị mmepụta (dị ka ọ dị na igodo nzuzo TLS), a na-echekwa ihe nzuzo mgbe niile na usoro base64.
Ederede beHl6enk= bụ isi64 etinyere koodu nzuzo nke okwu nzuzo anyị xyzzy. Ị nwere ike nyochaa nke a site n'ịgba ọsọ base64 — decode iwu na ọnụ:
echo "eHl6enk=" | base64 --decode
xyzzyYabụ, ebe Kubernetes na-echebe gị pụọ na iwepụta data nwere mmetụta na mberede na njedebe ma ọ bụ faịlụ ndekọ, ọ bụrụ na ị gụọla ikike na ihe Nzuzo n'otu aha aha, data ahụ nwere ike isi64ed wee dezie ya.
Ọ bụrụ na ịchọrọ idebe64 ederede ụfọdụ (dịka ọmụmaatụ, itinye ya na Nzuzo), jiri iwu base64 na-enweghị arụmụka:
echo xyzzy | base64
eHl6enkKỊnweta ihe nzuzo
Onye nwere ike ịgụ na dezie ihe nzuzo? RBAC kwadoro nke a, usoro njikwa ohere (anyị ga-atụle ya n'ụzọ zuru ezu na mpaghara nkebi "Mmalite na njikwa nnweta dabere na ọrụ" na ibe 258). Ọ bụrụ na ị na-agba ụyọkọ nke na-enweghị RBAC ma ọ bụ na-akwadoghị, ihe nzuzo gị niile dị maka ndị ọrụ na arịa ọ bụla (anyị ga-akọwa ma emechaa na ị gaghị enwe ụyọkọ mmepụta na-enweghị RBAC).
Ihe nzuzo data na-agafe agafe
Kedu maka ndị nwere ohere na nchekwa data etcd ebe Kubernetes na-echekwa ozi ya niile? Ha nwere ike ịgụ data nwere mmetụta na-enweghị ikike ịgụ ihe nzuzo site na API?
Kemgbe ụdị 1.7, Kubernetes na-akwado nzuzo nzuzo data. Nke a pụtara na ezoro ezoro ezoro ezo ozi n'ime etcd na diski ma ndị nwere ohere ịnweta nchekwa data enweghị ike ịgụ ya. Iji mebie ya, ịchọrọ igodo nke naanị sava Kubernetes API nwere. N'ụyọkọ ahaziri nke ọma, ekwesịrị ịgbanye nzuzo nzuzo.
Ị nwere ike ịlele ma nzuzo nzuzo na-arụ ọrụ na ụyọkọ gị n'ụzọ dị otú a:
kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
--experimental-encryption-provider-config=...Ọ bụrụ na ịhụghị ọkọlọtọ nnwale-encryption-provider-config, akwadoghị nzuzo nzuzo. Mgbe ị na-eji Google Kubernetes Engine ma ọ bụ ọrụ njikwa Kubernetes ndị ọzọ, a na-ezobe data gị site na iji usoro dị iche, yabụ ọkọlọtọ agaghị adị. Lelee onye na-ere Kubernetes gị ka ị hụ ma ọdịnaya wdgd ezoro ezo.
Na-echekwa data nzuzo
Enwere ụfọdụ akụrụngwa Kubernetes nke na-ekwesịghị iwepụ na ụyọkọ ahụ, dị ka ihe nzuzo nwere mmetụta siri ike. Ị nwere ike chebe akụrụngwa ka ihichapụ ya site na iji nkọwa nkọwa nke onye njikwa Helm nyere:
kind: Secret
metadata:
annotations:
"helm.sh/resource-policy": keepAtụmatụ njikwa ihe nzuzo
N'ọmụmaatụ sitere na ngalaba gara aga, echekwara data nwere mmetụta site na ịnweta enweghị ikike ozugbo echekwara ya na ụyọkọ ahụ. Mana n'ime faịlụ pụtara ìhè echekwara ha ka ederede doro anya.
I kwesịghị itinye ozi nzuzo na faịlụ ndị dị na njikwa ụdị. Kedu ka ị ga-esi jikwaa ma chekwaa ozi a n'enweghị nsogbu tupu itinye ya na ụyọkọ Kubernetes gị?
Ị nwere ike ịhọrọ ngwaọrụ ma ọ bụ atụmatụ ọ bụla maka ijikwa data dị nro na ngwa gị, mana ị ka ga-achọ ịza opekata mpe ajụjụ ndị a.
- Ebee ka ekwesịrị ịchekwa data nwere mmetụta ka ọ bụrụ nke ukwuu?
- Otu esi eme ka data nwere mmetụta nweta ohere maka ngwa gị nọ n'ọrụ?
- Kedu ihe kwesịrị ime ngwa gị mgbe ị dochiri ma ọ bụ dezie data nwere mmetụta?
Banyere ndị edemede
John Arundel bụ onye ndụmọdụ nwere ahụmahụ afọ 30 na ụlọ ọrụ kọmputa. O deela akwụkwọ dị iche iche ma soro ọtụtụ ụlọ ọrụ si mba dị iche iche na-arụ ọrụ, na-enye ha ndụmọdụ na akụrụngwa nke igwe ojii na Kubernetes. N'oge ezumike ya, ọ na-enwe mmasị igwu mmiri, ọ bụ ezigbo onye na-agba egbe, ma na-akpọ piano dị ka onye na-amu amu. Bi n'otu ọnụ ụlọ akụkọ ifo na Cornwall, England.
Justin Domingus - injinia nchịkwa sistemụ na-arụ ọrụ na gburugburu DevOps na Kubernetes na teknụzụ igwe ojii. Ọ na-atọ ya ụtọ ịnọrọ n’èzí, na-aṅụ kọfị, na-eri nri, na ịnọ ọdụ na kọmputa. Bi na Seattle, Washington, ya na nnukwu nwamba na nwunye mara mma na ezigbo enyi, Adrienne.
» Enwere ike ịhụ nkọwa ndị ọzọ gbasara akwụkwọ ahụ na
»
»
Maka Khabrozhiteley 25% mbelata site na iji coupon - Kubernetes
Mgbe ịkwụ ụgwọ akwụkwọ nke akwụkwọ ahụ, a ga-eziga akwụkwọ eletrọnịkị site na e-mail.
isi: www.habr.com
