Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp
Tha sin ceart, às deidh a leigeil ma sgaoil Consul Hashicorp 1.5.0 aig toiseach a’ Chèitein 2019, anns a’ Chonsal faodaidh tu cead a thoirt do thagraidhean agus seirbheisean a tha a’ ruith ann an Kubernetes gu dùthchasach.
San oideachadh seo cruthaichidh sinn ceum air cheum POC Tha dùil gum bi eòlas bunaiteach agad air Kubernetes agus Hashicorp's Consul. Ged as urrainn dhut àrd-ùrlar sgòthan no àrainneachd san togalach a chleachdadh, san oideachadh seo cleachdaidh sinn Àrd-ùrlar Cloud Google.
sealladh farsaing
Ma thèid sinn gu Sgrìobhainnean consul air an dòigh ùghdarrachaidh aige, gheibh sinn tar-shealladh sgiobalta air a adhbhar agus a chùis cleachdaidh, a bharrachd air beagan mion-fhiosrachadh teicnigeach agus sealladh farsaing air an loidsig. Tha mi gu mòr a’ moladh a leughadh co-dhiù aon turas mus tèid mi air adhart, oir bidh mi a-nis ga mhìneachadh agus a’ cagnadh air a h-uile càil.
Diagram 1: Tar-shealladh oifigeil air modh ceadachaidh Consal
Seadh, tha fiosrachadh feumail an sin, ach chan eil stiùireadh ann air mar a chleachdas tu e uile. Mar sin, mar neach ciallach sam bith, bidh thu a’ sgùradh an eadar-lìn airson stiùireadh. Agus an uairsin ... tha thu a 'fàilligeadh. Bidh e a’ tachairt. Feuch an cuir sinn seo ceart.
Mus gluais sinn air adhart gu bhith a’ cruthachadh ar POC, rachamaid air ais chun ath-shealladh air dòighean ceadachaidh Consul (Diagram 1) agus leasaich sinn e ann an co-theacs Kubernetes.
ailtireachd
San oideachadh seo, cruthaichidh sinn frithealaiche Consul air inneal air leth a nì conaltradh le buidheann Kubernetes leis an neach-dèiligidh Consul air a chuir a-steach. Cruthaichidh sinn an uairsin an tagradh meallta againn sa pod agus cleachdaidh sinn an dòigh ceadachaidh rèitichte againn gus leughadh bhon stòr iuchair / luach Consul againn.
Tha an diagram gu h-ìosal a’ toirt mion-fhiosrachadh air an ailtireachd a tha sinn a’ cruthachadh san oideachadh seo, a bharrachd air an loidsig air cùl an dòigh ceadachaidh, a thèid a mhìneachadh nas fhaide air adhart.
Diagram 2: Sealladh air Modh Ùghdarrachaidh Kubernetes
Nòta sgiobalta: chan fheum an t-seirbheisiche Consal a bhith a’ fuireach taobh a-muigh cruinneachadh Kubernetes airson seo obrachadh. Ach tha, is urrainn dha a dhèanamh mar seo agus mar sin.
Mar sin, a’ gabhail an sgeama tar-shealladh Consul (Diagram 1) agus a’ cur Kubernetes an sàs ann, gheibh sinn an diagram gu h-àrd (Diagram 2), agus tha an loidsig an seo mar a leanas:
Bidh cunntas seirbheis ceangailte ris gach pod anns a bheil comharra JWT air a chruthachadh agus air a bheil Kubernetes aithnichte. Tha an comharra seo cuideachd air a chuir a-steach don pod gu bunaiteach.
Bidh an tagradh no an t-seirbheis againn taobh a-staigh a’ pod a’ tòiseachadh òrdugh logadh a-steach don neach-dèiligidh Consul againn. Bidh an t-iarrtas logadh a-steach cuideachd a’ toirt a-steach an tòcan agus an t-ainm againn air a chruthachadh gu sònraichte modh ceadachaidh (seòrsa Kubernetes). Tha an ceum seo #2 a’ freagairt ri ceum 1 de dhiagram a’ Chonsal (Sgeama 1).
Cuiridh an neach-dèiligidh Consal againn an t-iarrtas seo air adhart chun t-seirbheisiche Consal againn.
DRAGHACHD! Seo far am bi frithealaiche a’ Chonsal a’ dearbhadh dearbhteachd an iarrtais, a’ cruinneachadh fiosrachadh mu dhearbh-aithne an iarrtais agus ga choimeas ri riaghailtean ro-mhìnichte sam bith co-cheangailte ris. Gu h-ìosal tha diagram eile airson seo a shealltainn. Tha an ceum seo a’ freagairt ri ceumannan 3, 4 agus 5 de dhiagram tar-shealladh Consul (Diagram 1).
Bidh an frithealaiche Consal againn a’ gineadh tòcan Consail le ceadan a rèir ar riaghailtean modh ceadachaidh ainmichte (a tha sinn air a mhìneachadh) a thaobh dearbh-aithne an neach-iarrtais. Cuiridh e an comharra sin air ais an uairsin. Tha seo a’ freagairt ri ceum 6 de dhiagram a’ Chonsal (Diagram 1).
Bidh an neach-dèiligidh Consal againn a’ cur an comharra air adhart chun iarrtas no seirbheis a tha thu ag iarraidh.
Faodaidh an tagradh no an t-seirbheis againn a-nis an tòcan Consail seo a chleachdadh gus conaltradh leis an dàta Consal againn, mar a tha air a dhearbhadh le sochairean an tòcan.
Tha an draoidheachd air fhoillseachadh!
Dhaibhsan agaibhse nach eil toilichte le dìreach coineanach a-mach à ad agus a tha ag iarraidh faighinn a-mach mar a tha e ag obair... leig dhomh “sealltainn dhut cho domhainn toll coineanach".
Mar a chaidh a ràdh na bu tràithe, is e an ceum “draoidheachd” againn (Figear 2: Ceum 4) far am bi frithealaiche a’ Chonsal a’ dearbhadh an iarrtais, a’ cruinneachadh fiosrachadh mun iarrtas, agus ga choimeas ri riaghailtean ro-mhìnichte sam bith co-cheangailte. Tha an ceum seo a’ freagairt ri ceumannan 3, 4 agus 5 de dhiagram tar-shealladh Consul (Diagram 1). Gu h-ìosal tha diagram (Diagram 3), a tha ag amas air sealltainn gu soilleir na tha a’ tachairt fon chochall dòigh ceadachaidh sònraichte Kubernetes.
Diagram 3: Tha an draoidheachd air fhoillseachadh!
Mar thoiseach tòiseachaidh, bidh an neach-dèiligidh Consal againn a’ cur an iarrtas logadh a-steach air adhart chun t-seirbheisiche Consal againn le tòcan cunntais Kubernetes agus ainm eisimpleir sònraichte den dòigh ceadachaidh a chaidh a chruthachadh na bu thràithe. Tha an ceum seo a’ freagairt ri ceum 3 anns a’ mhìneachadh mun chuairt roimhe.
A-nis feumaidh an t-seirbheisiche Consal (no an stiùiriche) dearbhadh a dhèanamh air fìrinneachd an tòcan a fhuaireadh. Mar sin, nì e co-chomhairle le buidheann Kubernetes (tron neach-dèiligidh Consul) agus, le na ceadan iomchaidh, gheibh sinn a-mach a bheil an comharra fìor agus cò dha a tha e.
Thèid an t-iarrtas dearbhte an uairsin a thilleadh gu stiùiriche a’ Chonsal, agus bidh frithealaiche a’ Chonsal a’ coimhead suas an dòigh ceadachaidh leis an ainm ainmichte bhon iarrtas logadh a-steach (agus seòrsa Kubernetes).
Bidh an stiùiriche consul a’ comharrachadh an t-eisimpleir modh ceadachaidh ainmichte (ma lorgar e) agus a’ leughadh an t-seata de riaghailtean ceangail a tha ceangailte ris. Bidh e an uairsin a’ leughadh nan riaghailtean sin agus gan coimeas ris na buadhan dearbh-aithne dearbhte.
TA-dah! Gluaisidh sinn air adhart gu ceum 5 anns a’ mhìneachadh cuairteachaidh roimhe.
Ruith frithealaiche Consul air inneal brìgheil àbhaisteach
Bho seo a-mach, bidh mi mar as trice a’ toirt seachad stiùireadh air mar a chruthaicheas tu am POC seo, gu tric ann am puingean peileir, gun mhìneachadh làn seantans. Cuideachd, mar a chaidh ainmeachadh roimhe, cleachdaidh mi GCP gus a h-uile bun-structair a chruthachadh, ach faodaidh tu an aon bhun-structar a chruthachadh an àite sam bith eile.
Tòisich an inneal brìgheil (mar eisimpleir / frithealaiche).
Cruthaich riaghailt airson a’ bhalla-teine (buidheann tèarainteachd ann an AWS):
Is toil leam an aon ainm inneal a shònrachadh don riaghailt agus don taga lìonra, anns a’ chùis seo “skywiz-consul-server-poc”.
Lorg seòladh IP a’ choimpiutair ionadail agad agus cuir ris an liosta de sheòlaidhean IP tùsail gus am faigh sinn cothrom air an eadar-aghaidh cleachdaiche (UI).
Port fosgailte 8500 airson UI. Cliog Cruthaich. Atharraichidh sinn am balla-teine seo a-rithist a dh’ aithghearr [ceangal].
Cuir riaghailt balla-teine ris an eisimpleir. Gabh air ais chun deas-bhòrd VM air Consul Server agus cuir “skywiz-consul-server-poc” gu raon tagaichean lìonra. Cliog Save.
Stàlaich Consul air inneal mas-fhìor, thoir sùil an seo. Cuimhnich gu bheil feum agad air dreach Consul ≥ 1.5 [ceangal]
Cruthaichidh sinn Consul aon nód - tha an rèiteachadh mar a leanas.
groupadd --system consul
useradd -s /sbin/nologin --system -g consul consul
mkdir -p /var/lib/consul
chown -R consul:consul /var/lib/consul
chmod -R 775 /var/lib/consul
mkdir /etc/consul.d
chown -R consul:consul /etc/consul.d
Airson stiùireadh nas mionaidiche air stàladh Consul agus stèidheachadh cruinneachadh de 3 nodan, faic an seo.
Cruthaich faidhle /etc/consul.d/agent.json mar a leanas [ceangal]:
consul agent
-server
-ui
-client 0.0.0.0
-data-dir=/var/lib/consul
-bootstrap-expect=1
-config-dir=/etc/consul.d
Bu chòir dhut dòrlach de thoraidhean fhaicinn agus crìoch a chuir air “… ùrachadh air a bhacadh le ACLs.”
Lorg seòladh IP taobh a-muigh an fhrithealaiche Consul agus fosgail brabhsair leis an t-seòladh IP seo air port 8500. Dèan cinnteach gu bheil an UI a 'fosgladh.
Feuch ri iuchair/paidhir luach a chur ris. Feumaidh mearachd a bhith ann. Tha seo air sgàth gun do chuir sinn ACL air an fhrithealaiche Consal agus chuir sinn à comas a h-uile riaghailt.
Rach air ais chun t-slige agad air an t-seirbheisiche Consul agus tòisich air a 'phròiseas air a' chùl no dòigh air choireigin eile gus a ruith agus cuir a-steach na leanas:
consul acl bootstrap
Lorg an luach "SecretID" agus till air ais chun UI. Anns an taba ACL, cuir a-steach ID dìomhair an tòcan a rinn thu dìreach lethbhreac. Dèan lethbhreac de SecretID an àiteigin eile, bidh feum againn air nas fhaide air adhart.
A-nis cuir a-steach iuchair / paidhir luach. Airson a’ POC seo, cuir na leanas ris: iuchair: “custom-ns/test_key”, luach: “Tha mi sa phasgan custom-ns!”
A’ cur air bhog cruinneachadh Kubernetes airson an tagradh againn leis an neach-dèiligidh Consul mar Daemonset
Cruthaich cruinneachadh K8s (Kubernetes). Cruthaichidh sinn e san aon raon ris an fhrithealaiche airson ruigsinneachd nas luaithe, agus mar sin is urrainn dhuinn an aon subnet a chleachdadh gus ceangal a dhèanamh gu furasta le seòlaidhean IP a-staigh. Canaidh sinn “skywiz-app-with-consul-client-poc” ris.
Mar nota taobh, seo deagh oideachadh air an tàinig mi tarsainn fhad ‘s a bha mi a’ stèidheachadh cruinneachadh POC Consul le Consul Connect.
Bidh sinn cuideachd a’ cleachdadh cairt-stiùiridh Hashicorp le faidhle luachan leudaichte.
Cleachd am faidhle luach a leanas (nòta gu bheil mi air a chiorramachadh as motha):
### poc-helm-consul-values.yaml
global:
enabled: false
image: "consul:latest"
# Expose the Consul UI through this LoadBalancer
ui:
enabled: false
# Allow Consul to inject the Connect proxy into Kubernetes containers
connectInject:
enabled: false
# Configure a Consul client on Kubernetes nodes. GRPC listener is required for Connect.
client:
enabled: true
join: ["<PRIVATE_IP_CONSUL_SERVER>"]
extraConfig: |
{
"acl" : {
"enabled": true,
"default_policy": "deny",
"enable_token_persistence": true
}
}
# Minimal Consul configuration. Not suitable for production.
server:
enabled: false
# Sync Kubernetes and Consul services
syncCatalog:
enabled: false
Cuir a-steach clàr-stiùiridh:
./helm install -f poc-helm-consul-values.yaml ./consul-helm - name skywiz-app-with-consul-client-poc
Nuair a dh’ fheuchas e ri ruith, bidh feum aige air ceadan airson frithealaiche a’ Chonsal, mar sin leig dhuinn an cur ris.
Thoir fa-near don “Raon Seòladh Pod” a tha suidhichte air deas-bhòrd a ’chnuasaiche agus thoir sùil air ais chun riaghailt balla-teine “ skywiz-consul-server-poc ”againn.
Cuir an raon seòlaidh airson a’ pod ris an liosta de sheòlaidhean IP agus puirt fosgailte 8301 agus 8300.
Rach gu Consul UI agus an ceann beagan mhionaidean chì thu an cruinneachadh againn a’ nochdadh anns an taba nodan.
A’ rèiteachadh Dòigh Ùghdarrachaidh le bhith ag aonachadh Consal le Kubernetes
Till gu slige an fhrithealaiche Consal agus às-mhalairt an tòcan a shàbhail thu na bu thràithe:
export CONSUL_HTTP_TOKEN=<SecretID>
Bidh feum againn air fiosrachadh bhon bhuidheann Kubernetes againn gus eisimpleir den dòigh ùghdarrais a chruthachadh:
kubernetes-aoigheachd
kubectl get endpoints | grep kubernetes
kubernetes-seirbheis-cunntas-jwt
kubectl get sa <helm_deployment_name>-consul-client -o yaml | grep "- name:"
kubectl get secret <secret_name_from_prev_command> -o yaml | grep token:
Tha an tòcan air a chòdachadh le base64, mar sin dì-chrioptaich e leis an inneal as fheàrr leat [ceangal]
kubernetes-ca-cert
kubectl get secret <secret_name_from_prev_command> -o yaml | grep ca.crt:
Gabh an teisteanas “ca.crt” (às deidh còdachadh base64) agus sgrìobh e san fhaidhle “ca.crt”.
A-nis cuir a-steach modh an ùghdarrais, cuir na luachan a fhuair thu an àite an luchd-àite.
consul acl auth-method create
-type "kubernetes"
-name "auth-method-skywiz-consul-poc"
-description "This is an auth method using kubernetes for the cluster skywiz-app-with-consul-client-poc"
-kubernetes-host "<k8s_endpoint_retrieved earlier>"
[email protected]
-kubernetes-service-account-
jwt="<decoded_token_retrieved_earlier>"
An uairsin feumaidh sinn riaghailt a chruthachadh agus a cheangal ris an dreuchd ùr. Airson a’ phàirt seo faodaidh tu Consul UI a chleachdadh, ach cleachdaidh sinn an loidhne-àithne.
Mar a chaidh ainmeachadh an seoTha grunn roghainnean ann airson ceangal ri daemonset, ach gluaisidh sinn air adhart chun fhuasgladh shìmplidh a leanas:
An uairsin cleachd an àithne togte a leanas gus configmap a chruthachadh [ceangal]. Thoir an aire gu bheil sinn a’ toirt iomradh air ainm na seirbheis againn, cuir na àite ma tha sin riatanach.
Cruthaich grunn phrìomh phasganan eile leis an aon iuchair àrd-ìre (i.e. / sample_key) agus luach de do roghainn. Cruthaich poileasaidhean agus dreuchdan iomchaidh airson prìomh shlighean ùra. Nì sinn na ceanglaichean nas fhaide air adhart.
Deuchainn ainm-àite gnàthaichte:
Cruthaichidh sinn ar n-ainm fhèin:
kubectl create namespace custom-ns
Nach cruthaich sinn pod anns an ainm-àite ùr againn. Sgrìobh an rèiteachadh airson a 'phoit.
Faodaidh tu “Luach” a chòdachadh le base64 agus faicinn gu bheil e a’ freagairt ris an luach ann an custom-ns/test_key san UI. Ma chleachd thu an aon luach gu h-àrd san oideachadh seo, bhiodh an luach còdaichte agad mar IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.
Deuchainn cunntas seirbheis cleachdaiche:
Cruthaich cunntas seirbheis àbhaisteach a’ cleachdadh an àithne a leanas [ceangal].
Cead air a dhiùltadh. O, dhìochuimhnich sinn riaghailtean ùra a chuir ris ceangailte ris na ceadan iomchaidh, dèanamaid sin a-nis.
Dèan a-rithist na ceumannan roimhe gu h-àrd:
a) Cruthaich poileasaidh co-ionann airson an ro-leasachan “custom-sa/”.
b) Cruthaich Dreuchd, canar “custom-sa-role” ris
c) Ceangail am Poileasaidh ris an Dreuchd.
Faodaidh tu cuideachd dèanamh cinnteach nach toir an comharra seo cothrom air kv ann an “custom-ns/”. Dìreach cuir a-rithist an àithne gu h-àrd às deidh dhut an ro-leasachan “custom-ns” a chuir an àite “custom-sa”.
Chaidh cead a dhiùltadh.
Eisimpleir ath-chòmhdach:
Is fhiach a bhith mothachail gun tèid a h-uile mapadh ceangailte ri riaghailtean a chur ris an tòcan leis na còraichean sin.
Tha an soitheach "poc-ubuntu-custom-sa" againn san ainm-spàs bunaiteach - mar sin cleachdaidh sinn e airson ceangal-riaghailt eile.
Dèan a-rithist na ceumannan roimhe:
a) Cruthaich Poileasaidh co-ionann airson a’ phrìomh ro-leasachan “bunaiteach/”.
b) Cruthaich Dreuchd, ainmich e “default-ns-role”
c) Ceangail am Poileasaidh ris an Dreuchd.
consul acl binding-rule create
-method=auth-method-skywiz-consul-poc
-bind-type=role
-bind-name='default-ns-role'
-selector='serviceaccount.namespace=="default"'
Rach air ais dhan t-soitheach "poc-ubuntu-custom-sa" againn agus feuch am faigh thu cothrom air an t-slighe "default/" kv.
Chaidh cead a dhiùltadh.
Chì thu na teisteanasan ainmichte airson gach comharra san UI fo ACL> Tokens. Mar a chì thu, chan eil aig an tòcan gnàthach againn ach aon “custom-sa-role” ceangailte ris. Chaidh an comharra a tha sinn a’ cleachdadh an-dràsta a chruthachadh nuair a rinn sinn logadh a-steach agus cha robh ann ach aon cheangal-riaghailt a bha a’ freagairt air an àm sin. Feumaidh sinn logadh a-steach a-rithist agus an tòcan ùr a chleachdadh.
Dèan cinnteach gun leugh thu an dà chuid bho na slighean "custom-sa/" agus "default/" kv.
Buaidh!
Tha seo air sgàth gu bheil ar “poc-ubuntu-custom-sa” a’ maidseadh na riaghailtean “custom-sa” agus “default-ns”.
co-dhùnadh
TTL comharra mgmt?
Aig àm an sgrìobhaidh seo, chan eil dòigh aonaichte ann airson an TTL airson comharran a ghineadh leis an dòigh ceadachaidh seo a dhearbhadh. Bhiodh e na chothrom air leth fèin-ghluasad tèarainte a thoirt seachad le cead Consail.
Tha roghainn ann tòcan a chruthachadh le làimh le TTL:
Tha sinn an dòchas a dh’ aithghearr gum bi e comasach dhuinn smachd a chumail air mar a thèid comharran a chruthachadh (a rèir riaghailt no modh ceadachaidh) agus TTL a chuir ris.
Gu ruige sin, thathas a’ moladh gun cleachd thu puing crìochnachaidh suaicheantais nad loidsig.