Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

Rast e, piştî berdanê Konsulê Hashicorp 1.5.0 di destpêka Gulana 2019-an de, li Konsulê hûn dikarin serîlêdan û karûbarên ku li Kubernetes bi xwemalî têne xebitandin destûr bidin.

Di vê tutorial de em ê gav bi gav biafirînin POC (Delîla konseptê, PoC) vê taybetmendiya nû nîşan dide. Tê çaverêkirin ku hûn xwediyê zanîna bingehîn a Kubernetes û Konsulê Hashicorp bin. Dema ku hûn dikarin her platformek ewr an jîngehek li hundur bikar bînin, di vê tutorial de em ê Platforma Cloud Google-ê bikar bînin.

gistî

Ger em biçin Belgekirina konsulê li ser rêbaza destûrnameya wê, em ê bi lez li ser armanc û doza karanîna wê, û hem jî hin hûrguliyên teknîkî û nêrînek giştî ya mantiqê bibînin. Ez bi tundî pêşniyar dikim ku berî ku bidome bi kêmî ve carekê wê bixwînin, ji ber ku ez ê naha wê hemî rave bikim û bixûnim.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

Diagram 1: Çavdêriya fermî ya rêbaza destûra Konsulê

Ka em lê binêrin belgekirin ji bo rêbazek destûrnameyek taybetî ya Kubernetes.

Bê guman, li wir agahdariya kêrhatî heye, lê rêbernameyek li ser meriv çawa bi rastî ew hemî bikar tîne tune. Ji ber vê yekê, mîna her kesê aqilmend, hûn Înternetê ji bo rêberiyê dişopînin. Û paşê... Hûn têk diçin. Diqewime. Ka em vê rast bikin.

Berî ku em derbasî afirandina POC-a xwe bibin, werin em vegerin ser şêwazên destûrnameya Konsulê (Diyagram 1) û wê di çarçoveya Kubernetes de safî bikin.

avakarî

Di vê tutoriyê de, em ê serverek Konsulê li ser makîneyek cihêreng biafirînin ku dê bi komek Kubernetes re bi muwekîlê Konsulê hatî saz kirin re têkilî daynin. Dûv re em ê serîlêdana xweya derewîn di binavê de biafirînin û rêbaza destûrnameya xweya mîhengkirî bikar bînin da ku ji dikana mifteya/nirxa Konsulê xwe bixwînin.

Diagrama jêrîn mîmariya ku em di vê tutorial de diafirînin, û hem jî mantiqa li pişt rêbaza destûrnameyê, ya ku dê paşê were ravekirin vedibêje.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

Diagram 2: Pêşniyara Rêbaza Destûrdana Kubernetes

Nîşeyek bilez: Ji bo ku ev kar bike ne hewce ye servera Konsulê li derveyî koma Kubernetes bijî. Lê belê, ew dikare bi vî awayî û wê bike.

Ji ber vê yekê, diyagrama serpêhatiya Konsulê (Diyagram 1) digirin û Kubernetes jê re sepandin, em diyagrama li jor (Diagram 2) digirin, û mentiq li vir wiha ye:

  1. Her pod dê hesabek karûbarê pê ve girêdayî be ku tê de tokenek JWT heye ku ji hêla Kubernetes ve hatî çêkirin û zanîn. Ev nîşanek jî ji hêla xwerû ve tê xistin nav podê.
  2. Serlêdan an karûbarê me di hundurê pod de fermanek têketinê ji muwekîlê Konsulê me re dide destpêkirin. Daxwaza têketinê dê nîşan û navê me jî hebe bi taybetî hatiye afirandin rêbaza destûrnameyê (cureyê Kubernetes). Vê gavê #2 bi gava 1-ê ya diyagrama Konsulê re têkildar e (Pêşûna 1).
  3. Dûv re muwekîlê konsulê me dê vê daxwazê ​​ji servera konsulê me re bişîne.
  4. SIHR! Li vir servera Konsul rastbûna daxwazê ​​piştrast dike, di derbarê nasnameya daxwazê ​​de agahdarî berhev dike û wê bi her qaîdeyên pêşdebirkirî yên têkildar re berhev dike. Li jêr diagramek din heye ku vê yekê ronî bike. Ev gav bi gavên 3, 4 û 5 yên diyagrama nihêrîna Konsulê re têkildar e (Dagram 1).
  5. Pêşkêşkara Konsulê me li gorî rêgezên rêbaza destûrnameyê ya diyarkirî (yên ku me diyar kirine) di derbarê nasnameya daxwazkar de tokenek Konsulê bi destûr çêdike. Dûv re ew ê wê tokenê paşde bişîne. Ev bi gava 6-ê ya diyagrama Konsulê re têkildar e (Dagram 1).
  6. Muwekîlê Konsulê me tokenê ji serîlêdana an karûbarê daxwazkar re dişîne.

Serlêdan an karûbarê me naha dikare vê tokena Konsulê bikar bîne da ku bi daneyên Konsulê me re ragihîne, wekî ku ji hêla îmtiyazên tokenê ve hatî destnîşankirin.

Sêrbaz eşkere dibe!

Ji bo we yên ku tenê bi kêvroşkek ji kêzikê ne razî ne û dixwazin zanibin ka ew çawa dixebite... bila ez "nîşanî we bidim ka çiqas kûr kêvroşkê".

Wekî ku berê hate behs kirin, pêngava meya "efsûnî" (Wêne 2: Gav 4) ew e ku servera Konsul daxwazê ​​rast dike, agahdariya daxwazê ​​berhev dike, û wê bi her qaîdeyên pêvekirî yên têkildar re berhev dike. Ev gav bi gavên 3, 4 û 5 yên diyagrama nihêrîna Konsulê re têkildar e (Dagram 1). Li jêr diagramek (Dagram 3) heye, mebesta wê ew e ku bi zelalî nîşan bide ka bi rastî çi diqewime bin kumê rêbaza destûra taybetî ya Kubernetes.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

Diagram 3: Sêrbaz eşkere dibe!

  1. Wekî xala destpêkê, muwekîlê Konsulê me bi nîşaneya hesabê Kubernetes û navê mînaka taybetî ya rêbaza destûrnameyê ya ku berê hatî afirandin, daxwaza têketinê ji servera meya Konsulê re dişîne. Ev gav bi gava 3-ê di ravekirina çerxa berê de têkildar e.
  2. Naha servera Konsul (an serok) pêdivî ye ku rastiya tokena wergirtî verast bike. Ji ber vê yekê, ew ê bi koma Kubernetes re bişêwire (bi navgîniya muwekîlê Konsulê) û, bi destûrên guncan, em ê fêr bibin ka token rast e û ya kê ye.
  3. Dûv re daxwaznameya pejirandî ji serokê konsulê re tê vegerandin, û servera Konsulê mînaka rêbaza destûrnameyê bi navê diyarkirî ji daxwaza têketinê (û celebê Kubernetes) digere.
  4. Serokê konsul mînaka rêbaza destûrnameyê ya diyarkirî nas dike (eger were dîtin) û rêzikên rêzikên ku pê ve girêdayî ne dixwîne. Dûv re ew van rêbazan dixwîne û wan bi taybetmendiyên nasnameya pejirandî re berhev dike.
  5. TA-dah! Ka em di ravekirina dora berê de biçin gava 5.

Konsul-server li ser makîneyek virtual ya birêkûpêk bixebitin

Ji niha û pê ve, ez ê bi piranî rêwerzan bidim ka meriv çawa vê POC-ê biafirîne, bi gelemperî di xalên guleyan de, bêyî ravekirinên hevokê yên tevahî. Di heman demê de, wekî ku berê hate destnîşan kirin, ez ê GCP-ê bikar bînim da ku hemî binesaziyê biafirînim, lê hûn dikarin heman binesaziyê li cîhek din biafirînin.

  • Makîneya virtual (mînak / pêşkêşker) dest pê bikin.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

  • Ji bo firewall (koma ewlehiyê di AWS) de qaîdeyek biafirînin:
  • Ez hez dikim ku heman navê makîneyê hem ji qaîdeyê û hem jî nîşana torê re vebêjim, di vê rewşê de "skywiz-consul-server-poc".
  • Navnîşana IP-ya komputera xweya herêmî bibînin û wê li navnîşa navnîşanên IP-ya çavkaniyê zêde bikin da ku em bigihîjin navrûya bikarhêner (UI).
  • Ji bo UI porta 8500 vekin. Bikirtînin Create. Em ê di demek nêzîk de dîsa vê dîwarê agir biguherînin [pirtûk].
  • Rêgezek firewallê li nimûneyê zêde bikin. Vegerin ser dashboarda VM-ê ya li ser Servera Consul û "skywiz-consul-server-poc" li qada tagên torê zêde bikin. Bikirtînin Save.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

  • Konsulê li ser makîneyek virtual saz bikin, li vir kontrol bikin. Bînin bîra xwe ku hûn guhertoya Konsulê ≥ 1.5 hewce ne [girêdan]
  • Ka em yek girêk Konsul biafirînin - veavakirin wiha ye.

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

  • Ji bo rêbernameyek berfirehtir li ser sazkirina Konsul û sazkirina komek ji 3 girêkan, binêre vir.
  • Pelê /etc/consul.d/agent.json wekî jêrîn biafirînin [pirtûk]:

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

  • Servera konsulê me dest pê bikin:

consul agent 
-server 
-ui 
-client 0.0.0.0 
-data-dir=/var/lib/consul 
-bootstrap-expect=1 
-config-dir=/etc/consul.d

  • Divê hûn komek encam bibînin û bi "... nûvekirin ji hêla ACL ve hatî asteng kirin" bi dawî bibin.
  • Navnîşana IP-ya derveyî ya servera Konsulê bibînin û gerokek bi vê navnîşana IP-yê li porta 8500 vekin. Piştrast bikin ku UI vedibe.
  • Biceribînin ku cotek kilît/nirx lê zêde bikin. Divê xeletiyek hebe. Ev ji ber ku me servera Konsulê bi ACL bar kir û hemî qaîdeyan neçalak kir.
  • Li ser servera Konsulê vegerin ser şêlê xwe û pêvajoyê li paşverû an rêyek din dest pê bikin da ku wê bimeşînin û jêrîn têkevin:

consul acl bootstrap

  • Nirxa "SecretID" bibînin û vegerin UI. Di tabloya ACL de, nasnameya veşartî ya nîşana ku we nû kopî kiriye têkevin. SecretID li cîhek din kopî bikin, em ê paşê hewce bikin.
  • Naha cotek key/nirx lê zêde bike. Ji bo vê POC-ê, jêrîn lê zêde bike: key: "custom-ns/test_key", nirx: "Ez di peldanka xwerû-ns de me!"

Destpêkirina komek Kubernetes ji bo serîlêdana me bi muwekîlê Konsul re wekî Daemonset

  • Komek K8s (Kubernetes) biafirînin. Em ê wê li heman deverê wekî serverê ji bo gihîştina zûtir biafirînin, û ji ber vê yekê em dikarin heman subnetê bikar bînin da ku bi hêsanî bi navnîşanên IP-ya hundurîn re têkildar bin. Em ê jê re bibêjin "skywiz-app-with-consul-client-poc".

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

  • Wekî notek aliyek, li vir dersek baş e ku ez pê re dema ku bi Consul Connect re komek konsulê POC-ê saz dikim rast hatim.
  • Em ê di heman demê de nexşeya helmê ya Hashicorp bi pelek nirxên dirêjkirî bikar bînin.
  • Helm saz bikin û mîheng bikin. Gavên vesazkirinê:

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

  • Nexşeya helmê bicîh bikin:

./helm install -f poc-helm-consul-values.yaml ./consul-helm - name skywiz-app-with-consul-client-poc

  • Dema ku ew hewl dide ku bixebite, ew ê ji bo servera Konsulê destûr hewce bike, ji ber vê yekê em wan lê zêde bikin.
  • Bala xwe bidin "Rangeya Navnîşana Pod" ku li ser tabloya komê ye û li qaîdeya meya firewala "skywiz-consul-server-poc" vegere.
  • Rêzeya navnîşan ji bo podê li navnîşa navnîşanên IP-yê zêde bikin û portên 8301 û 8300 vekin.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

  • Herin Konsulê UI û piştî çend hûrdeman hûn ê bibînin ku koma me di tabloya girêkan de xuya dike.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

Veavakirina Rêbazek Desthilatdariyê Bi Yekkirina Konsul bi Kubernetes re

  • Vegerin şêlê servera Konsulê û tokena ku we berê tomar kiriye derxînin:

export CONSUL_HTTP_TOKEN=<SecretID>

  • Em ê ji koma xweya Kubernetes agahdarî hewce bikin da ku nimûneyek rêbaza pejirandinê biafirînin:
  • kubernetes-host

kubectl get endpoints | grep kubernetes

  • kubernetes-service-account-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:

  • Nîşan base64 kodkirî ye, ji ber vê yekê ew bi karanîna amûra xweya bijare deşîfre bike [pirtûk]
  • kubernetes-ca-cert

kubectl get secret <secret_name_from_prev_command> -o yaml | grep ca.crt:

  • Sertîfîkaya "ca.crt" bistînin (piştî deşîfrekirina base64) û wê di pelê "ca.crt" de binivîsin.
  • Naha rêbaza destûrnameyê destnîşan bikin, cîhgiran bi nirxên ku we nû wergirtine veguherînin.

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>"

  • Piştre divê em qaîdeyek biafirînin û wê bi rola nû ve girêbidin. Ji bo vê beşê hûn dikarin Consul UI bikar bînin, lê em ê rêzika fermanê bikar bînin.
  • Rêgezek binivîse

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

  • Rêbazê bi kar bînin

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

  • Nasnameya qaîdeya ku we tenê ji derketinê çêkiriye bibînin.
  • Bi qaîdeyek nû rolek biafirînin.

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"'

Herî dawî veavakirin

Mafên gihiştinê

  • Mafên gihîştinê çêbikin. Pêdivî ye ku em destûrê bidin Konsulê da ku nasnameya tokena hesabê karûbarê K8s verast bike û nas bike.
  • Li pelê jêrîn binivîse [girêk]:

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

  • Werin em mafên gihîştinê biafirînin

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

Girêdana bi Consul Client

  • Wekî ku hate destnîşan kirin virJi bo girêdana bi daemonset re gelek vebijark hene, lê em ê biçin çareseriya hêsan a jêrîn:
  • Pelê jêrîn bicîh bikin [pirtûk].

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

  • Dûv re fermana çêkirî ya jêrîn bikar bînin ku nexşeyek konfigurasyonê biafirînin [pirtûk]. Ji kerema xwe not bikin ku em behsa navê karûbarê xwe dikin, heke hewce be wê biguhezînin.

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

Testkirina rêbaza auth

Naha em di çalakiyê de sêrbaziyê bibînin!

  • Bi heman mifteya asta jorîn çend peldankên din ên sereke biafirînin (ango. /sample_key) û nirxek bijartina we. Siyaset û rolên guncaw ji bo rêyên sereke yên nû biafirînin. Em ê paşê bendeyan bikin.

Destpêka Destûrnameya Kubernetes a Konsulê Hashicorp

Testa cîhê navê xwerû:

  • Ka em cîhê navên xwe biafirînin:

kubectl create namespace custom-ns

  • Ka em di nav cîhê xweya nû de podek çêbikin. Veavakirina ji bo podê binivîse.

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

  • Afirandin di bin:

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

  • Gava ku konteynir dimeşe, biçin wir û curl saz bikin.

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

  • Naha em ê bi karanîna rêbaza destûrnameyê ya ku me berê çêkiriye daxwazek têketinê ji Konsul re bişînin [pirtûk].
  • Ji bo dîtina nîşana têketina ji hesabê karûbarê xwe:

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

  • Li pelek di hundurê konteynerê de jêrîn binivîsin:

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

  • Login!

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

  • Ji bo ku hûn gavên jorîn di yek rêzê de temam bikin (ji ber ku em ê gelek ceribandinan bimeşînin), hûn dikarin jêrîn bikin:

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

  • Works! Bi kêmanî divê. Naha SecretID bigirin û hewl bidin ku bigihîjin mifteya / nirxa ku divê em têkevinê.

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

  • Hûn dikarin base64 "Nirx" deşîfre bikin û bibînin ku ew bi nirxa xwerû-ns/test_key di UI de li hev dike. Ger we heman nirxa li jor di vê dersê de bikar anîbe, nirxa weya kodkirî dê bibe IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.

Testa hesabê karûbarê bikarhêner:

  • Bi karanîna fermana jêrîn Hesabek Karûbarê xwerû biafirînin [pirtûk].

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

  • Ji bo pod pelek veavakirina nû biafirînin. Ji kerema xwe not bikin ku min sazkirina curl tê de kir ku kedê xilas bike :)

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

  • Piştî wê, kelekek di hundurê konteynerê de bimeşînin.

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

  • Login!

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

  • Destûr red kirin. Oh, me ji bîr kir ku em qaîdeyek nû ya ku bi destûrnameyên guncan ve girêdayî ye lê zêde bikin, em niha wiya bikin.

Gavên berê yên li jor dubare bikin:
a) Ji bo pêşgira "custom-sa/" Siyasetek wekhev biafirînin.
b) Rolek biafirînin, jê re "rola xwerû" bikin
c) Polîtîkayê bi Rolê ve girêbide.

  • Rêgezek Binding biafirînin (tenê ji cli/api gengaz e). Têbînî wateya cihêreng a ala hilbijêr.

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

  • Dîsa ji konteynera "poc-ubuntu-custom-sa" têkevin. Serketinî!
  • Gihîştina me ya li ser riya xwerû-sa/ keyê binihêrin.

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

  • Her weha hûn dikarin piştrast bikin ku ev nîşanek di "custom-ns/" de gihandina kv-yê nade. Tenê piştî ku "custom-sa" bi pêşgira "custom-ns" veguherîne emrê jorîn dubare bikin.
    Destûr red kirin.

Mînaka sergirtî:

  • Hêjayî gotinê ye ku dê hemî nexşeyên birêkûpêk-girêdayî bi van mafan li tokenê bêne zêdekirin.
  • Konteynera me "poc-ubuntu-custom-sa" di nav cîhê xwerû de ye - ji ber vê yekê em wê ji bo qaîdeyek cûda bikar bînin.
  • Gavên berê dubare bikin:
    a) Ji bo pêşgira mifteyê "default/" Siyasetek wekhev biafirînin.
    b) Rolek biafirînin, navê wê bikin "default-ns-role"
    c) Polîtîkayê bi Rolê ve girêbide.
  • Rêgezek Binding biafirîne (tenê ji cli/api gengaz e)

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

  • Vegerin konteynera meya "poc-ubuntu-custom-sa" û hewl bidin ku xwe bigihînin riya kv-ya "default/".
  • Destûr red kirin.
    Hûn dikarin pêbaweriyên diyarkirî yên ji bo her nîşanek di UI de di binê ACL> Tokens de bibînin. Wekî ku hûn dibînin, tokena meya heyî tenê yek "rola xwerû" pê ve girêdayî ye. Nîşana ku em niha bikar tînin dema ku em têketinê hate çêkirin û tenê yek qaîdeyek-girêdayî hebû ku wê hingê li hev bû. Pêdivî ye ku em dîsa têkevinê û tokena nû bikar bînin.
  • Piştrast bike ku hûn dikarin hem ji riyên kv "custom-sa/" û "default/" bixwînin.
    Serketinî!
    Ji ber ku "poc-ubuntu-custom-sa" me bi qaîdeyên "custom-sa" û "default-ns" ve girêdayî ye.

encamê

TTL token mgmt?

Di dema vê nivîsandinê de, rêyek yekbûyî tune ku TTL ji bo nîşaneyên ku bi vê rêbazê destûrnameyê têne hilberandin diyar bikin. Ew ê fersendek fantastîk be ku meriv otomatîkiya ewledar a destûrnameya Konsul peyda bike.

Vebijarkek heye ku meriv bi TTL bi destan nîşanek biafirîne:

Hêvîdarim ku di pêşerojek nêzîk de em ê karibin kontrol bikin ka nîşanek çawa têne çêkirin (li gorî rêgez an rêbaza destûrnameyê) û TTL zêde bikin.

Heya wê hingê, tê pêşniyar kirin ku hûn di mantiqa xwe de xalek derketinê bikar bînin.

Her weha gotarên din ên li ser bloga me bixwînin:

Source: www.habr.com

Add a comment