apisix~為自定義插件設(shè)計(jì)一個(gè)configmap腳本
configMap
Kubernetes 中的 ConfigMap 是一種用來(lái)存儲(chǔ)配置數(shù)據(jù)的 API 資源,它允許您將配置信息以鍵值對(duì)的形式保存,并在容器中使用這些配置信息。ConfigMap 提供了一種將配置數(shù)據(jù)與應(yīng)用程序解耦的方式,使得應(yīng)用程序可以動(dòng)態(tài)地獲取配置而無(wú)需重新構(gòu)建鏡像。
以下是 ConfigMap 的一些特點(diǎn)和用途:
-
存儲(chǔ)配置數(shù)據(jù):ConfigMap 可以存儲(chǔ)應(yīng)用程序所需的配置數(shù)據(jù),如環(huán)境變量、命令行參數(shù)、配置文件等。
-
解耦配置:通過(guò)使用 ConfigMap,可以將配置數(shù)據(jù)從應(yīng)用程序中分離出來(lái),使得應(yīng)用程序更易于管理和維護(hù)。
-
動(dòng)態(tài)更新配置:您可以在不重啟應(yīng)用程序的情況下更新 ConfigMap 中的配置數(shù)據(jù),應(yīng)用程序會(huì)自動(dòng)獲取最新的配置。
-
掛載到 Pod 中:您可以將 ConfigMap 中的配置數(shù)據(jù)掛載為 Volume,然后將其傳遞給 Pod 中的容器,使容器能夠讀取這些配置數(shù)據(jù)。
-
跨 Namespace 共享:ConfigMap 可以在同一集群內(nèi)的不同 Namespace 之間共享和復(fù)用。
-
與 Secret 對(duì)比:與 Secret 不同,ConfigMap 存儲(chǔ)的是明文數(shù)據(jù),適合存儲(chǔ)非敏感性數(shù)據(jù);而 Secret 存儲(chǔ)的是加密數(shù)據(jù),適合存儲(chǔ)敏感性數(shù)據(jù)。
在 Kubernetes 中,您可以使用 kubectl create configmap 命令創(chuàng)建 ConfigMap,也可以通過(guò) YAML 文件定義 ConfigMap 的配置。隨后,您可以在 Pod 的定義中引用這些 ConfigMap,并將其配置數(shù)據(jù)注入到容器中。
總的來(lái)說(shuō),ConfigMap 是 Kubernetes 中一個(gè)非常有用的資源,可以幫助您管理和提供應(yīng)用程序所需的配置信息。如果您有任何關(guān)于 ConfigMap 的具體問(wèn)題或者需要進(jìn)一步了解,請(qǐng)隨時(shí)告訴我。
今日需求
這塊使用apisix的自定義插件為例,來(lái)說(shuō)明一下這個(gè)功能,執(zhí)行后,configmap由3個(gè)鍵組件,每個(gè)鍵對(duì)應(yīng)一個(gè)文件。
#!/bin/sh
# 配置文件configmap
files=""
for file in "$(pwd)"/plugins/*.lua; do
files="$files --from-file=$file"
done
kubectl create configmap apisix-plugins-config -n apisix $files --dry-run=true -o yaml > apisix-plugins-config.yaml
kubectl apply -f apisix-plugins-config.yaml -n apisix
# 生成helm
first_param="values.override.yaml"
if [ -z "$1" ]; then
echo "沒有傳遞第一個(gè)參數(shù),將使用默認(rèn)值"
else
first_param="$1"
fi
helm -n apisix upgrade -i apisix -f "./apisix/${first_param}" ./apisix #參數(shù)-i表示沒有服務(wù)就建立,有就升級(jí)
如圖所示

浙公網(wǎng)安備 33010602011771號(hào)