国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在生產(chǎn)環(huán)境中使用 Linkerd

開發(fā) 架構(gòu)
高可用描述了具有冗余架構(gòu)的系統(tǒng),如果系統(tǒng)的某些部分出現(xiàn)故障,該系統(tǒng)將繼續(xù)運行。Linkerd 的高可用模式旨在消除控制平面的單點故障。

到目前為止,我們一直在以最基本的形式使用 Linkerd,而沒有關(guān)注生產(chǎn)級別的相關(guān)問題。本節(jié)我們將了解生產(chǎn)環(huán)境中使用的一些主要注意事項,包括高可用 (HA) 模式、Helm Chart、跨集群通信和外部 Prometheus。

高可用

高可用描述了具有冗余架構(gòu)的系統(tǒng),如果系統(tǒng)的某些部分出現(xiàn)故障,該系統(tǒng)將繼續(xù)運行。Linkerd 的高可用模式旨在消除控制平面的單點故障。

啟用 HA 模式的一種方法是為 linkerd install 指定 --ha 標(biāo)志,此標(biāo)志啟用幾種不同的行為。它可以部署某些 Linkerd 控制平面組件的多個副本:

  • Controller
  • Destination
  • Identity
  • Proxy Injector
  • Service Profile Validator

請注意,其他組件,例如 Grafana、Prometheus,不被看成核心的關(guān)鍵組件,因此不會配置多副本(如果沒有這些組件,數(shù)據(jù)平面仍然可以繼續(xù)正常運行)。除了副本之外,HA 模式還為控制平面組件配置資源請求,并為這些組件啟用 Pod 反親和性,這樣可確保僅將特定組件的一個實例調(diào)度到同一節(jié)點。

不過需要注意的是 HA 模式有一些細(xì)微的區(qū)別,首先 HA 模式改變了 proxy injector 的方式,強制要求在有適當(dāng)注解的情況下注入代理。這是為了確保在生產(chǎn)環(huán)境中,使用 Linkerd 進行 mTLS 的應(yīng)用程序可以依賴該代理,當(dāng)然如果 Linkerd 的 proxy injector 在某種程度上不可用了,則就無法創(chuàng)建 Pod 了。比如 kube-system 命名空間就會出現(xiàn)問題,因此使用 HA 模式需要將標(biāo)簽 config.linkerd.io/admission-webhooks: disabled 添加到 kube-system 命名空間中,以允許創(chuàng)建 Kubernetes 組件,即使 Linkerd 出現(xiàn)某種問題,但也不用太擔(dān)心,當(dāng)在 HA 模式下運行時,當(dāng)標(biāo)簽不在 kube-system 命名空間上時,linkerd check 命令也會打印出一條告警信息。

Helm Chart

一般來說在生產(chǎn)環(huán)境中不推薦使用 Linkerd CLI 工具來進行安裝,而更推薦使用 Helm 之類的工具進行安裝。Linkerd 為普通模式和 HA 模式提供了 Helm Chart,其中包含一個名為 values-ha.yaml 的模板,可以將其用作向集群部署高可用性的基礎(chǔ),Helm 對于在新創(chuàng)建的集群上自動配置 Linkerd 特別有用。

圖片

需要注意的一點是,Helm 的安裝過程不會像 linkerd install 命令那樣為你生成證書,所以需要在安裝過程中使用自己的證書,前面 mTLS 章節(jié)已經(jīng)介紹過。

無論你是否使用 Helm 安裝,是否在 HA 模式下安裝,對于生產(chǎn)系統(tǒng)來說,你都應(yīng)該自己生成根證書和簽發(fā)者證書。創(chuàng)建你自己的信任錨,可以讓你避免手動輪轉(zhuǎn)的麻煩(我們建議將過期時間設(shè)置為 10 年,而不是默認(rèn)的 1 年),也可以為未來的集群生成簽發(fā)者證書,請確保將私鑰存放在一個安全的地方!

Prometheus 指標(biāo)

Linkerd 控制平面包含一個 Prometheus 的實例,該實例中的數(shù)據(jù)被用來為 Linkerd 儀表板以及 linkerd viz stat 等命令的輸出提供支持。

該實例默認(rèn)只保留最近 6 小時的指標(biāo)數(shù)據(jù),生產(chǎn)環(huán)境往往需要在更長的時間內(nèi)訪問指標(biāo),比如 1 周、1 個月甚至 1 年。當(dāng)然我們可以重新配置下該 Prometheus 實例,提高下數(shù)據(jù)保留時長,但是顯然這是不被推薦的一種方法,最佳的做法是將指標(biāo)從 Linkerd 的控制平面提供的 Prometheus 輸出到一個專門的遠(yuǎn)程存儲中去,比如 Cortex、Thanos 或者 Victoriametrics,根據(jù)前面我們的對 Prometheus 的學(xué)習(xí)更加推薦使用 Victoriametrics。

如果你現(xiàn)在已經(jīng)有一個可用的 Prometheus 集群了,那么同樣我們可以配置讓 Linkerd 來使用外部的 Prometheus 實例,同樣可以獲取 Linkerd 控制平面組件和代理的相關(guān)指標(biāo)。

配置外部 Prometheus

如果要使用外部的 Prometheus 則需要在外部 Prometheus 中添加如下抓取配置:

- job_name: "grafana"
kubernetes_sd_configs:
- role: pod
namespaces:
names: ["linkerd-viz"]
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_container_name
action: keep
regex: ^grafana$
- job_name: "linkerd-controller"
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_container_port_name
action: keep
regex: admin-http
- source_labels: [__meta_kubernetes_pod_container_name]
action: replace
target_label: component
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- "linkerd"
- "linkerd-viz"
- job_name: "linkerd-service-mirror"
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_label_linkerd_io_control_plane_component
- __meta_kubernetes_pod_container_port_name
action: keep
regex: linkerd-service-mirror;admin-http$
- source_labels: [__meta_kubernetes_pod_container_name]
action: replace
target_label: component
- job_name: "linkerd-proxy"
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_container_name
- __meta_kubernetes_pod_container_port_name
- __meta_kubernetes_pod_label_linkerd_io_control_plane_ns
action: keep
regex: ^linkerd-proxy;linkerd-admin;linkerd$
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label:
pod
# special case k8s' "job" label, to not interfere with prometheus' "job"
# label
# __meta_kubernetes_pod_label_linkerd_io_proxy_job=foo =>
# k8s_job=foo
- source_labels: [__meta_kubernetes_pod_label_linkerd_io_proxy_job]
action: replace
target_label:
k8s_job
# drop __meta_kubernetes_pod_label_linkerd_io_proxy_job
- action: labeldrop
regex:
__meta_kubernetes_pod_label_linkerd_io_proxy_job
# __meta_kubernetes_pod_label_linkerd_io_proxy_deployment=foo =>
# deployment=foo
- action: labelmap
regex:
__meta_kubernetes_pod_label_linkerd_io_proxy_(.+)
# drop all labels that we just made copies of in the previous labelmap
- action: labeldrop
regex:
__meta_kubernetes_pod_label_linkerd_io_proxy_(.+)
# __meta_kubernetes_pod_label_linkerd_io_foo=bar =>
# foo=bar
- action: labelmap
regex:
__meta_kubernetes_pod_label_linkerd_io_(.+)
# Copy all pod labels to tmp labels
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
replacement:
__tmp_pod_label_$1
# Take `linkerd_io_` prefixed labels and copy them without the prefix
- action: labelmap
regex: __tmp_pod_label_linkerd_io_(.+)
replacement:
__tmp_pod_label_$1
# Drop the `linkerd_io_` originals
- action: labeldrop
regex:
__tmp_pod_label_linkerd_io_(.+)
# Copy tmp labels into real labels
- action: labelmap
regex: __tmp_pod_label_(.+)

上面的抓取配置我們可以通過命令 kubectl get cm -n linkerd-viz prometheus-config -o yaml 獲取完整的配置,抓取配置更新完成后確保 Prometheus 可以抓取到相關(guān)指標(biāo)數(shù)據(jù)。

圖片

Linkerd 的 viz 擴展組件依賴于 Prometheus 實例來為儀表板和 CLI 提供數(shù)據(jù)。安裝的時候有一個 prometheusUrl 字段可以用來配置外部 Prometheus 的地址,所有這些組件都可以通過該參數(shù)配置到外部 Prometheus URL。不過需要注意的是在使用外部 Prometheus 并配置 prometheusUrl 字段時,Linkerd 的 Prometheus 仍然會包含在安裝中。如果您想禁用它,請務(wù)必同時包含以下配置:

prometheus:
enabled: false

比如我們這里在 kube-mon 命名空間中有一個可用的 Prometheus 實例,則可用如下所示的命令來進行替換:

$ kubectl get svc prometheus -n kube-mon
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
prometheus NodePort 10.100.236.253 <none> 9090:31561/TCP 60d
$ linkerd viz install --set prometheusUrl=http://prometheus.kube-mon.svc.cluster.local:9090,prometheus.enabled=false | kubectl apply -f -

如果使用的是 Helm 進行安裝的則可以直接通過 values 文件來進行配置。更新后重新查看 Linkerd 的 Dashboard 依舊可以看到應(yīng)用的相關(guān)指標(biāo)數(shù)據(jù)。

圖片

包括 Grafana 的圖表也是正常顯示的。

圖片

這樣對于 Prometheus 指標(biāo)數(shù)據(jù)保存多長時間或者如何保存就是依靠我們的外部 Prometheus 自身去實現(xiàn)了,這當(dāng)然降低了 Linkerd 自身的復(fù)雜性。

多集群通信

Linkerd 支持多集群通信,這一功能允許服務(wù)在 Kubernetes 集群間透明地進行通信。啟用該功能后,如果服務(wù) A 與服務(wù) B 通信,它不需要知道 B 是在同一個集群還是不同的集群上運行,是在同一個數(shù)據(jù)中心還是在互聯(lián)網(wǎng)上。同樣的 mTLS、指標(biāo)和可靠性功能在集群內(nèi)和跨集群的通信中都是統(tǒng)一應(yīng)用的。事實上,當(dāng)與流量分割相結(jié)合時,服務(wù) B 可以從本地集群遷移或故障轉(zhuǎn)移到遠(yuǎn)程集群,或跨越獨立的遠(yuǎn)程集群。

Linkerd 多集群組件使用 linkerd multi-cluster install 命令與控制平面組件分開安裝,此命令會創(chuàng)建一個名為 linkerd-multi-cluster 的命名空間,其中包含兩個組件:service-mirror 和 linkerd-gateway,這些組件用于確保兩個集群之間連接的健康,并為遠(yuǎn)程或目標(biāo)集群上存在的服務(wù)路由流量。

每個參與的集群都必須在安裝了這些組件的情況下運行 Linkerd 控制平面。這就消除了任何一個集群的單點故障:如果一個集群被移除、崩潰或變得不可用,其余的集群和控制平面將繼續(xù)運作。

多集群設(shè)置中最困難的部分是 mTLS 基礎(chǔ)設(shè)施:每個集群上的頒發(fā)者證書必須由同一個信任根簽署。這意味著簡單地運行 linkerd install 進行安裝會有問題,需要指定同一個根證書。

其他

上面是將 Linkerd 部署到生產(chǎn)環(huán)境之前需要考慮的一些重要事項,除此之外,還有一些事項也是值得我們關(guān)注的:

  • 配置資源:當(dāng)你在 HA 模式下部署 Linkerd 時,Linkerd 為控制平面組件設(shè)置 CPU 和內(nèi)存資源請求和限制。這些限制是一個相對合理的值,但并不是所有的應(yīng)用都是一樣的,你可能需要調(diào)整這些資源配置以適應(yīng)你的需求。對于高流量的服務(wù)(每個實例每秒>1000個請求),我們可能還需要調(diào)整代理資源,也可以在部署應(yīng)用的時候指定config.linkerd.io/proxy-cpu-limit 注解來配置代理的并發(fā)。
  • 檢查時鐘偏差:確保集群中的節(jié)點保持同步很重要,例如通過使用 NTP,節(jié)點之間的大時鐘偏差可能會破壞 Linkerd 代理驗證它們用于 mTLS 的證書的能力(在解決集群中的問題時,大的時鐘偏差可能會使跨節(jié)點讀取日志文件變得困難!)。
  • 處理 NET_ADMIN:Linkerd 的proxy-init? 容器在注入 Pod 時運行,并負(fù)責(zé)配置iptables? 規(guī)則,以便所有進出應(yīng)用程序容器的 TCP 流量都自動通過代理容器路由。這需要 Kubernetes 的NET_ADMIN? 這個 Linux Capability,這意味著任何向集群添加支持 Linkerd 的工作負(fù)載的系統(tǒng)都必須被授予該能力。如果出于安全原因不希望這樣做,另一種方法是使用Linkerd CNI 插件在工作負(fù)載創(chuàng)建者權(quán)限范圍之外執(zhí)行此操作。
  • linkerd viz tap 權(quán)限:前面我們已經(jīng)學(xué)習(xí)過 tap 這個強大的命令,但是這個功能也會附帶很多風(fēng)險,因為這個命令可能會將潛在的敏感信息暴露給用戶,不過 Linkerd 允許我們使用 Kubernetes RBAC 限制來控制誰可以訪問該輸出。
  • 使用 Ingress:與其他一些服務(wù)網(wǎng)格不同,Linkerd 不提供自己的 Ingress 控制器。相反,你可以將 Linkerd 與其他可用的 Kubernetes Ingress 控制器配合使用,當(dāng)這樣做的時候,我們建議將 Ingress 控制器與 Linkerd 代理注入,這將允許 Linkerd 的 mTLS 和可觀察性從請求進入集群的那一刻起就已經(jīng)可用了。

到這里我們就基本上了解了如何在生產(chǎn)環(huán)境中使用 Linkerd 了。但也要注意上面我們介紹的這些事項并不是所有的,強烈建議在將 Linkerd 部署到生產(chǎn)環(huán)境之前完全理解這些概念并通讀 Linkerd 文檔。

責(zé)任編輯:姜華 來源: k8s技術(shù)圈
相關(guān)推薦

2011-09-19 10:43:19

Nuget

2020-02-25 15:47:05

ElasticsearLucene地方

2022-05-26 09:00:00

網(wǎng)站抓取Lightrun開發(fā)

2021-12-03 07:27:29

EFCore生產(chǎn)環(huán)境

2015-08-03 09:08:29

2020-09-14 15:30:23

開發(fā)技能代碼

2022-08-30 20:00:37

零信任Linkerd

2015-11-20 15:28:36

AWSGoAWS SDK for

2015-10-28 16:20:10

短生命周期容器原生云計算

2012-02-07 09:56:06

無代理防毒產(chǎn)品

2020-12-25 09:00:00

Kubernetes容器開發(fā)

2018-11-20 10:10:54

Redis數(shù)據(jù)庫模糊查詢

2025-07-30 04:00:00

2020-11-23 07:56:08

Vue生產(chǎn)環(huán)境

2019-09-18 20:46:57

容器生產(chǎn)環(huán)境數(shù)據(jù)中心

2021-06-17 06:20:43

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

2021-06-17 14:29:39

Linkerd 分布式跟蹤Linkerd 2.1

2023-11-14 17:40:32

2020-09-14 07:35:40

Redis命令框架

2012-09-04 10:18:38

IBMdw
點贊
收藏

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

激情伊人五月天久久综合| 国产专区精品| 国产精品久久久一区二区| 欧美成人video| 2025韩国理伦片在线观看| 日本午夜精品久久久久| 国产精品一区二区久久不卡 | 国产精品色婷婷在线观看| 成人黄页在线观看| 国产午夜精品视频免费不卡69堂| 国产三线在线| 久久久久久一区二区| 国产美女久久久| 亚洲bt欧美bt精品777| 色一区av在线| 99久久婷婷国产综合精品首页| 亚洲黄在线观看| 在线观看麻豆| 欧美日精品一区视频| 成年人视频网站在线| 91久久香蕉国产日韩欧美9色| 波多野结衣av在线| 一本到不卡免费一区二区| 久热av在线| 欧美精品久久久久久久多人混战| 国产黄色在线观看| 精品国产乱码久久久久久影片| 国产盗摄一区二区| 国产亚洲一区二区精品| 国产精品一区二区三区四区在线观看 | 亚洲天堂男人的天堂| 亚洲国产福利| 视频直播国产精品| youjizz欧美| 国产精品久久久久久超碰| 欧美中文字幕一区二区| 91久久在线视频| 91久久午夜| 欧美三级午夜理伦三级老人| 久久亚洲私人国产精品va媚药| h七七www色午夜日本| 五月婷婷综合激情| 黄色成人影院| 久久人人爽人人爽爽久久 | 日韩av在线导航| 亚洲电影有码| 欧美亚洲激情在线| 午夜精品电影| 五月婷婷综合色| 99re成人在线| 福利资源在线久| 亚洲精品一区二区三区蜜桃下载| 欧美日韩va| 国产精品视频免费在线| 鲁大师成人一区二区三区| 欧美精品卡一卡二| 一区二区理论电影在线观看| 高潮毛片在线观看| 欧美日韩高清在线观看| 国产综合网站| 丰满爆乳一区二区三区| 黑人巨大精品欧美一区免费视频| 不卡的av影片| 91精品国产色综合| 国产日韩欧美一区在线| 黄色网页免费在线观看| 精品成人国产在线观看男人呻吟| 蜜桃传媒在线观看免费进入| 九九久久综合网站| 国产欧美三级| 99爱免费视频| 欧美zozo另类异族| 国产精品毛片视频| 日韩欧美一区二区三区久久婷婷| 久久夜色精品国产欧美乱极品| 国产人成在线观看| 尤物九九久久国产精品的特点| 国产精品不卡| av动漫免费观看| 亚洲国产视频在线| av一区在线播放| 产国精品偷在线| 国产丝袜欧美中文另类| 国产色在线观看| 国产精品激情av电影在线观看| 国产精品18久久久久| aaa在线观看| 青青在线视频一区二区三区| 国产剧情av麻豆香蕉精品| 九九热视频在线观看| 欧美黄色免费网站| 国产专区综合网| 91社区在线高清| 国产精品第七十二页| 久久嫩草精品久久久久| 91av久久| 亚洲影院高清在线| 久久久久久电影| 国产精欧美一区二区三区蓝颜男同| 91欧美日韩一区| 国产精品天干天干在线综合| 国产精品迅雷| 日韩av电影免费在线观看| 欧美日韩国产影院| 青青一区二区| 国产99久久九九精品无码| 亚洲国产三级网| 日韩精品免费| 污版网站在线观看| 九九热最新视频//这里只有精品 | 成人羞羞国产免费| 国产精品久久久久久久久久免费看| 九色porny丨国产首页在线| 精品国产91亚洲一区二区三区www| 樱花影视一区二区| 国产精品45p| 日韩精品一区二区三区电影| 日韩亚洲欧美综合| 亚洲区国产区| av大片在线观看| 99国精产品一二二线| 亚洲一区二区在线免费看| 女一区二区三区| 成人18网址在线观看| 久久免费在线观看| 国产欧美日韩另类一区| 日韩精品中文字幕一区二区| 波多野结衣乳巨码无在线| 国产丝袜精品视频| 国产激情91久久精品导航| 国产高清视频色在线www| 日韩动漫在线观看| 欧美精品一区二区三区视频| 麻豆精品精品国产自在97香蕉| 青青草视频在线免费直播| 欧洲av一区| 欧美一区二区免费| 三级不卡在线观看| 精精国产xxxx视频在线| 久久草.com| 日韩视频免费观看高清在线视频| 久久一区中文字幕| 9999热视频在线观看| 一本二本三本亚洲码| 亚洲精品久久久久久久久久久| 久久精品99国产精品| 日本精品不卡| 亚洲一区二区蜜桃| 午夜欧美不卡精品aaaaa| 国产欧美精品一区二区色综合| 9国产精品午夜| 日本视频三区| 亚洲jizzjizz日本少妇| 91麻豆精品国产自产在线| 久久精品国产99国产| 99久久99九九99九九九| 亚洲色图久久久| 国产z一区二区三区| 色婷婷综合在线| 麻豆一区二区三区| 亚洲精品一区国产| 一本一道dvd在线观看免费视频| 精品国产一区二区三区日日嗨| 精品亚洲男同gayvideo网站| 久久久综合激的五月天| 欧美jizz| caoporn视频在线| 欧美综合在线观看视频| 国产精品专区h在线观看| 日韩一级二级三级| bt7086福利一区国产| 天堂av一区二区三区在线播放 | 亚洲精品乱码久久久久久黑人| 欧美视频久久| 超碰国产一区| 国产1区2区视频| 久久波多野结衣| 久久香蕉频线观| 欧美日韩国产精品一区二区不卡中文| 亚洲精品日韩久久| 国内自拍亚洲| 日本一级在线观看| 欧美在线观看视频免费| 韩国美女主播一区| 欧美日韩国产123区| 99re这里只有精品视频首页| 久久一区二区中文字幕| 在线观看网站免费入口在线观看国内 | 国产欧美三级电影| 欧美激情二区| 爱情岛论坛vip永久入口| eeuss一区二区三区| 久久精品国产亚洲一区二区| 欧美视频一区二区三区…| 国产一区二区三区日韩| 国产影视一区| 丁香花电影在线观看完整版| 三级黄色网址| 成人午夜精品久久久久久久蜜臀| 91精品国产91久久久久青草|