Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

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.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

Diagram 1: Tar-shealladh oifigeil air modh ceadachaidh Consal

Bheir sinn sùil a-steach sgrìobhainnean airson dòigh ceadachaidh sònraichte Kubernetes.

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.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

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:

  1. 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.
  2. 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).
  3. Cuiridh an neach-dèiligidh Consal againn an t-iarrtas seo air adhart chun t-seirbheisiche Consal againn.
  4. 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).
  5. 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).
  6. 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.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

Diagram 3: Tha an draoidheachd air fhoillseachadh!

  1. 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.
  2. 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.
  3. 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).
  4. 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.
  5. 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).

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

  • 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.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

  • 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]:

### /etc/consul.d/agent.json
{
 "acl" : {
 "enabled": true,
 "default_policy": "deny",
 "enable_token_persistence": true
 }
}

  • Tòisich ar frithealaiche Consul:

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.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

  • 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.
  • Stàlaich is rèitich Helm. Ceumannan rèiteachaidh:

kubectl create serviceaccount tiller --namespace kube-system
kubectl create clusterrolebinding tiller-admin-binding 
   --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
./helm init --service-account=tiller
./helm update

### 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.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

  • Rach gu Consul UI agus an ceann beagan mhionaidean chì thu an cruinneachadh againn a’ nochdadh anns an taba nodan.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

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.
  • Sgrìobh riaghailt

### kv-custom-ns-policy.hcl
key_prefix "custom-ns/" {
 policy = "write"
}

  • Cuir an riaghailt an gnìomh

consul acl policy create 
-name kv-custom-ns-policy 
-description "This is an example policy for kv at custom-ns/" 
-rules @kv-custom-ns-policy.hcl

  • Lorg ID na riaghailt a chruthaich thu dìreach bhon toradh.
  • Cruthaich dreuchd le riaghailt ùr.

consul acl role create 
-name "custom-ns-role" 
-description "This is an example role for custom-ns namespace" 
-policy-id <policy_id>

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-ns-role' 
-selector='serviceaccount.namespace=="custom-ns"'

Mu dheireadh rèiteachaidhean

Còraichean ruigsinneachd

  • Cruthaich còraichean-slighe. Feumaidh sinn cead a thoirt don Chonsal dearbh-aithne cunntas seirbheis K8s a dhearbhadh agus a chomharrachadh.
  • Sgrìobh na leanas dhan fhaidhle [ceangal]:

###skywiz-poc-consul-server_rbac.yaml
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: review-tokens
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: system:auth-delegator
 apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: service-account-getter
 namespace: default
rules:
- apiGroups: [""]
 resources: ["serviceaccounts"]
 verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: get-service-accounts
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: service-account-getter
 apiGroup: rbac.authorization.k8s.io

  • Cruthaichidh sinn còraichean-slighe

kubectl create -f skywiz-poc-consul-server_rbac.yaml

A’ ceangal ri Consul Client

  • Mar a chaidh ainmeachadh an seoTha grunn roghainnean ann airson ceangal ri daemonset, ach gluaisidh sinn air adhart chun fhuasgladh shìmplidh a leanas:
  • Cuir am faidhle a leanas an sàs [ceangal].

### poc-consul-client-ds-svc.yaml
apiVersion: v1
kind: Service
metadata:
 name: consul-ds-client
spec:
 selector:
   app: consul
   chart: consul-helm
   component: client
   hasDNS: "true"
   release: skywiz-app-with-consul-client-poc
 ports:
 - protocol: TCP
   port: 80
   targetPort: 8500

  • 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.

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
 labels:
   addonmanager.kubernetes.io/mode: EnsureExists
 name: kube-dns
 namespace: kube-system
data:
 stubDomains: |
   {"consul": ["$(kubectl get svc consul-ds-client -o jsonpath='{.spec.clusterIP}')"]}
EOF

A 'dèanamh deuchainn air an dòigh ùghdar

A-nis chì sinn an draoidheachd ann an gnìomh!

  • 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.

Ro-ràdh air Ùghdarrachadh Kubernetes Consul Hashicorp

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.

###poc-ubuntu-custom-ns.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-ns
 namespace: custom-ns
spec:
 containers:
 - name: poc-ubuntu-custom-ns
   image: ubuntu
   command: ["/bin/bash", "-ec", "sleep infinity"]
 restartPolicy: Never

  • Cruthaich fo:

kubectl create -f poc-ubuntu-custom-ns.yaml

  • Aon uair 's gu bheil an soitheach a' ruith, rachaibh ann agus stàlaich curl.

kubectl exec poc-ubuntu-custom-ns -n custom-ns -it /bin/bash
apt-get update && apt-get install curl -y

  • A-nis cuiridh sinn iarrtas logadh a-steach gu Consul a’ cleachdadh an dòigh ceadachaidh a chruthaich sinn na bu thràithe [ceangal].
  • Gus an comharra a chuir thu a-steach fhaicinn bhon chunntas seirbheis agad:

cat /run/secrets/kubernetes.io/serviceaccount/token

  • Sgrìobh na leanas gu faidhle taobh a-staigh an t-soithich:

### payload.json
{
 "AuthMethod": "auth-method-test",
 "BearerToken": "<jwt_token>"
}

  • Log a-steach!

curl 
--request POST 
--data @payload.json 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • Gus na ceumannan gu h-àrd a choileanadh ann an aon loidhne (leis gum bi sinn a’ ruith grunn dheuchainnean), faodaidh tu na leanas a dhèanamh:

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • Ag obair! Co-dhiù bu chòir. A-nis gabh an SecretID agus feuch ri faighinn chun iuchair / luach air am bu chòir dhuinn cothrom fhaighinn.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-ns/test_key --header “X-Consul-Token: <SecretID_from_prev_response>”

  • 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].

kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
 name: custom-sa
EOF

  • Cruthaich faidhle rèiteachaidh ùr airson a’ pod. Thoir an aire gun tug mi a-steach stàladh curl gus saothair a shàbhaladh :)

###poc-ubuntu-custom-sa.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-sa
 namespace: default
spec:
 serviceAccountName: custom-sa
 containers:
 - name: poc-ubuntu-custom-sa
   image: ubuntu
   command: ["/bin/bash","-ec"]
   args: ["apt-get update && apt-get install curl -y; sleep infinity"]
 restartPolicy: Never

  • Às deidh sin, ruith slige taobh a-staigh an t-soithich.

kubectl exec -it poc-ubuntu-custom-sa /bin/bash

  • Log a-steach!

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • 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.

  • Cruthaich Riaghailt Ceangailte (chan urrainnear a-mhàin bho cli / api). Thoir fa-near brìgh eadar-dhealaichte bratach an taghaidh.

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-sa-role' 
-selector='serviceaccount.name=="custom-sa"'

  • Log a-steach a-rithist on ghobhar “poc-ubuntu-custom-sa”. Soirbheachas!
  • Thoir sùil air an ruigsinneachd againn air an t-slighe àbhaisteach-sa/ key.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-sa/test_key --header “X-Consul-Token: <SecretID>”

  • 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.
  • Cruthaich Riaghailt Ceangailte (chan urrainnear a-mhàin bho cli / api)

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.

Leugh cuideachd artaigilean eile air ar blog:

Source: www.habr.com

Cuir beachd ann