自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linkerd 2.10(Step by Step)—安裝多集群組件

網(wǎng)絡(luò) 通信技術(shù)
Linkerd 中的多集群支持需要在默認控制平面安裝之上進行額外的安裝和配置。本指南將介紹此安裝和配置以及您可能遇到的常見問題。

[[406693]]

Linkerd 2.10 中文手冊持續(xù)修正更新中:

  • https://linkerd.hacker-linner.com

Linkerd 中的多集群支持需要在默認控制平面安裝之上進行額外的安裝和配置。本指南將介紹此安裝和配置以及您可能遇到的常見問題。

要求

  • 兩個集群。
  • 每個集群中的控制平面安裝共享一個公共信任錨。
  • 這些集群中的每一個都應(yīng)配置為 kubectl contexts。
  • 兩個集群上的提升權(quán)限。我們將創(chuàng)建服務(wù)帳戶并授予擴展權(quán)限,因此您需要能夠在測試集群上執(zhí)行此操作。
  • 支持 east 集群中的 LoadBalancer 類型的服務(wù)。查看集群提供商(cluster provider)的文檔或查看 inlets。這是 west 集群將用于通過網(wǎng)關(guān)與 east 通信的內(nèi)容。

步驟 1:安裝多集群控制平面

在每個集群上,運行:

  1. linkerd multicluster install | \ 
  2.     kubectl apply -f - 

要驗證一切是否已成功啟動,請運行:

  1. linkerd multicluster check 

步驟 2:Link 集群

每個集群都必須 linked。這包括在源集群中安裝多個資源,包括一個包含允許 訪問目標集群 Kubernetes API 的 kubeconfig 的 secret、 一個用于鏡像服務(wù)(mirroring services)的服務(wù)鏡像控件(service mirror control)以及一個 用于保存配置的 Link 自定義資源。要將集群 west 連接到集群 east,您將運行:

  1. linkerd --context=east multicluster link --cluster-name east | 
  2.   kubectl --context=west apply -f - 

要驗證憑據(jù)(credentials)已成功創(chuàng)建并且集群能夠相互訪問,請運行:

  1. linkerd --context=west multicluster check 

您還應(yīng)該通過運行以下命令看到網(wǎng)關(guān)列表。請注意,您需要在源集群中安裝 Linkerd 的 Viz 擴展以獲取網(wǎng)關(guān)列表:

  1. linkerd --context=west multicluster gateways 

有關(guān)此步驟的詳細說明,請查看鏈接集群部分。

步驟 3:暴露 services

服務(wù)不會在鏈接的集群中自動鏡像。默認情況下,只會鏡像帶有 mirror.linkerd.io/exported 標簽的服務(wù)。對于您想要鏡像到鏈接集群的每個服務(wù),運行:

  1. kubectl label svc foobar mirror.linkerd.io/exported=true 

您可以通過在 linkerd multicluster link 命令上使用 --selector 標志或 通過編輯由 linkerd multicluster link 命令 創(chuàng)建的鏈接資源來配置不同的標簽選擇器(different label selector)。

利用 Ambassador

不需要捆綁的 Linkerd gateway。事實上,如果您有一個現(xiàn)有的 Ambassador 安裝,那么使用它很容易!通過使用現(xiàn)有的 Ambassador 安裝, 您無需管理多個入口網(wǎng)關(guān)(multiple ingress gateways)并為額外的云負載均衡器付費。本指南假定 Ambassador 已安裝到 ambassador 命名空間中。

首先,您需要使用 Linkerd 注入 ambassador deployment:

  1. kubectl -n ambassador get deploy ambassador -o yaml | \ 
  2.     linkerd inject \ 
  3.     --skip-inbound-ports 80,443 \ 
  4.     --require-identity-on-inbound-ports 4183 - | \ 
  5.     kubectl apply -f - 

這將添加 Linkerd 代理, 跳過 Ambassador 為公共流量處理的端口并要求網(wǎng)關(guān)端口上的 identity。接下來,您需要添加一些配置,以便 Ambassador 知道如何處理請求:

  1. cat <<EOF | kubectl --context=${ctx} apply -f - 
  2. --- 
  3. apiVersion: getambassador.io/v2 
  4. kind: Module 
  5. metadata: 
  6.   name: ambassador 
  7.   namespace: ambassador 
  8. spec: 
  9.   config: 
  10.     add_linkerd_headers: true 
  11. --- 
  12. apiVersion: getambassador.io/v2 
  13. kind: Host 
  14. metadata: 
  15.   name: wildcard 
  16.   namespace: ambassador 
  17. spec: 
  18.   hostname: "*" 
  19.   selector: 
  20.     matchLabels: 
  21.       nothing: nothing 
  22.   acmeProvider: 
  23.     authority: none 
  24.   requestPolicy: 
  25.     insecure: 
  26.       action: Route 
  27. --- 
  28. apiVersion: getambassador.io/v2 
  29. kind: Mapping 
  30. metadata: 
  31.   namepublic-health-check 
  32.   namespace: ambassador 
  33. spec: 
  34.   prefix: /-/ambassador/ready 
  35.   rewrite: /ambassador/v0/check_ready 
  36.   service: localhost:8877 
  37.   bypass_auth: true 
  38. EOF 

Ambassador service 和 deployment 定義需要稍作修補。這會添加 service mirror controller 所需的元數(shù)據(jù)。要修補這些資源,請運行:

  1. kubectl --context=${ctx} -n ambassador patch deploy ambassador -p=' 
  2. spec: 
  3.     template: 
  4.         metadata: 
  5.             annotations: 
  6.                 config.linkerd.io/enable-gateway: "true" 
  7. kubectl --context=${ctx} -n ambassador patch svc ambassador --type='json' -p='[ 
  8.         {"op":"add","path":"/spec/ports/-""value":{"name""mc-gateway""port": 4143}}, 
  9.         {"op":"replace","path":"/spec/ports/0""value":{"name""mc-probe""port": 80, "targetPort": 8080}} 
  10.     ]' 
  11. kubectl --context=${ctx} -n ambassador patch svc ambassador -p=' 
  12. metadata: 
  13.     annotations: 
  14.         mirror.linkerd.io/gateway-identity: ambassador.ambassador.serviceaccount.identity.linkerd.cluster.local 
  15.         mirror.linkerd.io/multicluster-gateway: "true" 
  16.         mirror.linkerd.io/probe-path: /-/ambassador/ready 
  17.         mirror.linkerd.io/probe-period: "3" 

現(xiàn)在您可以將 Linkerd 多集群組件安裝到您的目標集群上。由于我們使用 Ambassador 作為我們的網(wǎng)關(guān), 我們需要使用 --gateway=false 標志跳過安裝 Linkerd 網(wǎng)關(guān):

  1. linkerd --context=${ctx} multicluster install --gateway=false | kubectl --context=${ctx} apply -f - 

完成所有設(shè)置和配置后,您就可以將源集群鏈接到這個 Ambassador 網(wǎng)關(guān)了。運行 link 命令,指定 Ambassador service 的名稱和命名空間:

  1. linkerd --context=${ctx} multicluster link --cluster-name=${ctx} --gateway-name=ambassador --gateway-namespace=ambassador \ 
  2.     | kubectl --context=${src_ctx} apply -f - 

從源集群(未運行 Ambassador 的集群),您可以通過運行以下命令來驗證一切是否正常工作:

  1. linkerd multicluster check 

此外,在列出活動網(wǎng)關(guān)時會顯示 ambassador 網(wǎng)關(guān):

  1. linkerd multicluster gateways 

信任錨捆綁

為了保護集群之間的連接,Linkerd 需要有一個共享的信任錨。這允許控制平面加密在集群之間傳遞的請求并驗證這些請求的身份。此身份用于控制對集群的訪問,因此共享信任錨至關(guān)重要。

最簡單的方法是在多個集群之間共享一個信任錨證書。如果您有一個現(xiàn)有的 Linkerd 安裝并丟棄了信任錨 key, 則可能無法為信任錨提供單個證書。幸運的是,信任錨也可以是一堆證書!

要獲取現(xiàn)有集群的信任錨,請運行:

  1. kubectl -n linkerd get cm linkerd-config -ojsonpath="{.data.values}" | \ 
  2.   yq e .identityTrustAnchorsPEM - > trustAnchor.crt 

此命令需要 yq。如果您沒有 yq,請隨意使用您選擇的工具從 identityTrustAnchorsPEM 字段中提取證書。`

現(xiàn)在,您需要為新集群創(chuàng)建一個新的信任錨(trust anchor)和頒發(fā)者(issuer):

  1. step certificate create root.linkerd.cluster.local root.crt root.key \ 
  2.    --profile root-ca --no-password --insecure 
  3. step certificate create identity.linkerd.cluster.local issuer.crt issuer.key \ 
  4.   --profile intermediate-ca --not-after 8760h --no-password --insecure \ 
  5.   --ca root.crt --ca-key root.key 

我們使用 step cli 生成證書。 openssl 也能正常工作!

使用舊集群的信任錨和新集群的信任錨,您可以通過運行以下命令來創(chuàng)建捆綁包:

  1. cat trustAnchor.crt root.crt > bundle.crt 

您需要使用新捆綁包(new bundle)升級現(xiàn)有集群。確保您希望與新集群通信的每個 pod 都重新啟動, 以便它可以使用此包。要使用這個新的 信任錨包(trust anchor bundle)升級現(xiàn)有集群,請運行:

  1. linkerd upgrade --identity-trust-anchors-file=./bundle.crt | \ 
  2.     kubectl apply -f - 

最后,您將能夠使用您剛剛創(chuàng)建的信任錨包(trust anchor bundle)以及頒發(fā)者證書( issuer certificate)和密鑰(key)在新集群上安裝 Linkerd。

  1. linkerd install \ 
  2.   --identity-trust-anchors-file bundle.crt \ 
  3.   --identity-issuer-certificate-file issuer.crt \ 
  4.   --identity-issuer-key-file issuer.key | \ 
  5.   kubectl apply -f - 

確保通過對每個集群運行 check 來驗證集群是否已成功啟動。

  1. linkerd check 

通過 Helm 安裝多集群控制平面組件

Linkerd 的多集群組件,即 Gateway 和 Service Mirror 可以 通過 Helm 而不是 linkerd multicluster install 命令安裝。

這不僅允許進行高級配置,還允許用戶將多集群安裝捆綁為他們 現(xiàn)有的基于 Helm 的安裝管道的一部分。

添加 Linkerd 的 Helm 存儲庫

首先,讓我們通過運行以下命令添加 Linkerd 的 Helm repo

  1. To add the repo for Linkerd2 stable releases: 
  2. helm repo add linkerd https://helm.linkerd.io/stable 

Helm 多集群安裝過程

  1. helm install linkerd2-multicluster linkerd/linkerd2-multicluster 

chart values 將從 chart 的 values.yaml 文件中選取。

您可以通過提供您自己的 values.yaml 文件并使用 -f 選項來覆蓋該文件中的值, 或者使用 --set 標志系列覆蓋特定值。

可以在 此處 找到全套配置選項

可以通過運行以下命令來驗證安裝

  1. linkerd multicluster check 

網(wǎng)關(guān)的安裝可以通過 gateway 設(shè)置禁用。默認情況下,此值為 true。

安裝額外的訪問憑證

當使用 linkerd multicluster install 將 多集群組件安裝到目標集群上時, 會創(chuàng)建一個服務(wù)帳戶,源集群將使用該帳戶來鏡像服務(wù)。為每個源集群使用不同的服務(wù)帳戶會很有好處,因為它使您能夠從特定源集群撤消服務(wù)鏡像訪問??梢酝ㄟ^ CLI 使用 linkerd multicluster allow 命令 生成額外的服務(wù)帳戶和關(guān)聯(lián)的 RBAC。

也可以通過 Helm 將 remoteMirrorServiceAccountName 值設(shè)置為 list 來完成相同的功能。

  1. helm install linkerd2-mc-source linkerd/linkerd2-multicluster --set remoteMirrorServiceAccountName={source1\,source2\,source3} --kube-context target 

 【編輯推薦】

 

責任編輯:姜華 來源: 黑客下午茶
相關(guān)推薦

2021-06-22 06:24:57

Linkerd Ingress 流量網(wǎng)絡(luò)技術(shù)

2021-06-16 17:42:48

Linkerd 配置CPU

2021-06-22 06:16:24

Linkerd books webapp

2021-06-17 06:20:43

Linkerd Kustomize網(wǎng)絡(luò)技術(shù)

2021-06-17 14:29:39

Linkerd 分布式跟蹤Linkerd 2.1

2021-06-17 06:13:29

Linkerd Prometheus 網(wǎng)絡(luò)技術(shù)

2021-06-15 05:45:56

Linkerd annotations網(wǎng)絡(luò)技術(shù)

2021-06-24 07:20:21

Linked GitOps Argo CD

2021-06-15 05:52:33

Linkerd canary網(wǎng)絡(luò)技術(shù)

2021-06-16 06:31:55

Linkerd 2.1Step by SteWebhook TLS

2011-04-19 14:02:09

SSAS

2010-09-08 09:41:03

私有云部署

2009-04-22 17:18:29

Vxworks驅(qū)動加載step by ste

2021-06-29 13:09:07

服務(wù)配置文件

2024-01-25 11:38:11

AI數(shù)據(jù)

2022-08-30 22:22:23

developerArchitectu

2023-01-06 13:48:21

自然語言推理算法

2023-05-15 09:43:49

模型數(shù)據(jù)

2021-04-21 09:28:12

鴻蒙HarmonyOS應(yīng)用

2010-08-04 14:30:25

點贊
收藏

51CTO技術(shù)棧公眾號