成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

多套環境的數據庫隔離,域名訪問,差異化配置,香!快解鎖!

數據庫 其他數據庫
Zadig 提供了面向開發者的云原生環境,支持分鐘級創建或復制一套完整的隔離環境以應對頻繁的業務變更和產品迭代。在實際使用中,多套環境的數據庫、域名、業務配置的差異如何管理呢?

?本文主要介紹 Zadig 服務管理的變量配置能力,通過一套配置,實現多環境的隔離:

  • 數據庫隔離:每個環境的業務數據獨立存放在不同的數據庫中,互不影響
  • 差異化域名訪問:使用不同的域名地址訪問不同的環境
  • 差異化業務配置:業務配置管理在 Nacos、Apollo 等配置中心,不同的環境使用不同的配置

數據庫隔離

適用:不同環境的業務數據互相隔離,一個數據庫對應多個連接地址,或連接不同的數據庫均適用。

配置服務變量

如圖中 vote 服務,該服務數據庫相關配置被管理在 ConfigMap 中的,并通過 volume 掛載到應用中。在 Zadig 中,我們將數據庫配置項抽取為 Zadig 的全局變量 mgo_addr 和 mgo_db,并為其配置默認值。

  • mgo_addr 默認值設置:220.16.0.43,可根據實際情況進行配置。
  • mgo_db 默認值設置:$Product$_$EnvName$_vote  ,這里我們用到了系統內置全局變量 $Product$、$EnvName$,分別表示項目名稱和環境名稱。

圖片

變量配置生效

創建環境時,配置中的變量可以使用默認值,也可以重新指定。

圖片

環境創建時,變量會被自動渲染,效果如下圖。在 dev 環境中被渲染為:simple-vote-service-dev-vote,qa 環境中被渲染為:simple-vote-service-qa-vote

圖片

圖片

圖例中服務 K8s YAML 配置如下:

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: vote
name: vote-rc-origin
spec:
replicas: 1
selector:
matchLabels:
app: vote
version: rc-origin
template:
metadata:
labels:
app: vote
version: rc-origin
spec:
containers:
- image: dockersamples/examplevotingapp_vote:before
name: vote-e2e
ports:
- containerPort: 80
name: vote
volumeMounts:
- name: config-volume
mountPath: /app/config
volumes:
- name: config-volume
configMap:
name: vote-config
---
apiVersion: v1
kind: ConfigMap
metadata:
name: vote-config
data:
SERVICE_MGO_ADDR: {{.mgo_addr}}
SERVICE_MGO_DB: {{.mgo_db}}
SERVICE_MGO_MODE: strong

差異化域名訪問

適用:在 Zadig 中創建多套環境,使用不同的域名訪問不同的環境

配置泛域名

給集群入口配置一個泛域名,比如:*.koderover.com,確保域名 DNS 正確解析到集群 Ingress 控制器 [1] LoadBalancer 的外網 IP 上。

配置服務變量

此例中為業務入口配置外網訪問地址 host ,Zadig 中配置全局變量: {{.domain}},Value 設為:vote-$EnvName$.koderover.com

圖片

創建環境時,系統會自動渲染變量,效果圖示如下。

圖片

圖片

圖例中服務的 K8s YAML 配置如下:


apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: vote
name: vote-rc-origin
spec:
replicas: 1
selector:
matchLabels:
app: vote
version: rc-origin
template:
metadata:
labels:
app: vote
version: rc-origin
spec:
containers:
- image: dockersamples/examplevotingapp_vote:before
name: vote-e2e
ports:
- containerPort: 80
name: vote
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: vote
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 100m
spec:
rules:
- host: {{.domain}}
http:
paths:
- path: /
backend:
serviceName: vote
servicePort: 5000

差異化業務配置

適用:服務的業務配置在第三方配置中心管理(比如 Nacos、Apollo 等),不同環境使用不同的配置項。下面以一套 Apollo 配置中心舉例,通過 Zadig 管理和使用不同環境的業務配置。

配置服務變量

以 myapp 服務為例,我們需要在 Zadig 中設置 Apollo 配置參數與 Zadig 環境變量的對應關系。

在 Zadig 中定義的配置項(可以根據情況進行設置):

  • APOLLO_APP_NAMESPACE:Apollo 配置中心的命名空間(Namespace),使用 Zadig 自定義變量 apollo_app_namespace 為其賦值,默認值設為 zadig.dev
  • APOLLO_APP_ID:Apollo  配置中心的應用(Application),使用 Zadig 系統內置變量 $Service$ 為其賦值。
  • APOLLO_APP_ENV:Apollo 配置中心的環境(Enviroment),使用 Zadig 系統內置變量 $EnvName$ 為其賦值。
  • APOLLO_APP_CLUSTER:Apollo 配置中心中的集群(Cluster),用 Zadig 自定義變量 apollo_app_cluster 為其賦值,默認值設為 local。

圖片

變量配置生效

當環境拉起或myapp 服務啟動時,會去相應的配置中心獲取服務配置。

uat 環境效果:

圖片

qa 環境效果:

圖片

圖例中服務的 K8s YAML 配置如下:

apiVersion: v1
kind: Service
metadata:
name: a
labels:
app: a
spec:
ports:
- name: http
port: 80
targetPort: 8080
selector:
app: a

---

apiVersion: apps/v1
kind: Deployment
metadata:
name: a
labels:
app: a
spec:
selector:
matchLabels:
app: a
replicas: 1
template:
metadata:
labels:
app: a
spec:
containers:
- name: myapp-1
image: koderover.tencentcloudcr.com/koderover-demo/myapp-1:v0.1__linux_amd64
imagePullPolicy: Always
command: ["/myapp-1"]
args: ["--downstream-addr", "$(DOWNSTREAM_ADDR)", "--headers", "$(HEADERS)"]
env:
- name: DOWNSTREAM_ADDR
value: "b"
- name: HEADERS
value: "x-request-id"
- name: APOLLO_APP_NAMESPACE
value: {{.apollo_app_namespace}}
- name: APOLLO_APP_ID
value: $Service$
- name: APOLLO_APP_ENV
value: $EnvName$
- name: APOLLO_APP_CLUSTER
value: {{.apollo_app_cluster}}
ports:
- containerPort: 8080
resources:
limits:
cpu: 100m
memory: 100Mi

小結?

本文主要闡述了如何使用 Zadig 中的變量能力來更高效的配置環境,只需要維護一份配置就可以實現不同環境的業務數據隔離、差異化域名、差異化業務配置等能力。當環境數量需求高時,可大大降低服務配置的管理負擔。除了文中提及到的變量,可閱 變量配置 | Zadig 文檔 [2] 解鎖更多。社區小伙伴日常使用中還發現哪些讓人 Aha 或者不爽的姿勢,歡迎戳論壇 https://community.koderover.com/top 分享你的場景~

參考鏈接:

[1] https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress-controllers/

[2] https://docs.koderover.com/zadig/v1.13.0/project/service/k8s/#變量配置?

責任編輯:武曉燕 來源: KodeRover
相關推薦

2011-05-05 09:03:43

數據庫選型

2019-09-11 11:25:49

數據隱私技術人工智能

2010-09-02 19:55:35

斐訊數據通信

2010-05-12 20:40:53

ITO運維管理摩卡軟件

2012-10-08 16:18:56

論壇

2011-11-30 10:19:17

iPad游戲體驗移動設計

2014-07-29 10:17:31

銳捷網絡銳捷智分

2011-08-18 09:59:19

微軟云計算

2011-03-16 19:17:57

漢柏差異化

2011-03-17 12:53:06

2011-11-29 09:21:29

差異化設計iPad游戲體驗

2023-07-26 13:21:10

2013-12-26 15:17:36

2020-06-02 21:03:57

物聯網產品物聯網IOT

2022-12-09 12:03:19

開發工程

2017-03-29 18:39:39

2013-06-07 14:00:38

移動支付

2015-07-23 15:40:42

華為服務器/華為

2013-11-04 16:22:48

云安全Gartner

2013-11-05 09:44:02

Gartner云安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧州一区二区三区 | 亚洲成人一区 | 黑人巨大精品欧美一区二区免费 | 玖玖综合网 | av在线播放一区二区 | 国产九九av | 国产一区二区欧美 | 欧美日韩中文字幕在线播放 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 中文字幕在线欧美 | 国产乱码精品一区二区三区中文 | 国产a一区二区 | 国产成人免费视频 | 久久精品国产99国产 | 日韩午夜一区二区三区 | 狠狠爱视频 | 涩涩视频大全 | 国产成人精品a视频一区www | 中文字幕亚洲欧美日韩在线不卡 | 精品无码久久久久久国产 | 91视频在线看 | 免费看a | 国产黄色小视频在线观看 | 久久久久国产一级毛片 | 成人午夜免费视频 | 免费一级大片 | 国产一区二区黑人欧美xxxx | 国产精品一区二区av | 国产在线观 | 一级毛片视频在线 | 欧美精品欧美精品系列 | 欧美成人一级视频 | a级在线免费视频 | 久久国内精品 | 97精品视频在线观看 | 97av视频在线观看 | 一区二区亚洲 | 久久久精品 | 亚洲欧美日韩在线不卡 | 欧美性区 | 一区二区三区在线播放视频 |