Vik*_*ore 8 kubernetes configmap
我有关于 configmap 的文档:
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-using-configmap-data
Run Code Online (Sandbox Code Playgroud)
据我所知,我可以从两个文件(game.properties 和 ui.properties)创建一个配置映射(game-config-2)使用
kubectl create configmap game-config-2 --from-file=configure-pod-container/configmap/kubectl/game.properties --from-file=configure-pod-container/configmap/kubectl/ui.properties
Run Code Online (Sandbox Code Playgroud)
现在我看到了配置图
kubectl describe configmaps game-config-2
Name: game-config-2
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
game.properties: 158 bytes
ui.properties: 83 bytes
Run Code Online (Sandbox Code Playgroud)
我如何使用该配置映射?我试过这种方式:
envFrom:
- configMapRef:
name: game-config-2
Run Code Online (Sandbox Code Playgroud)
但这不起作用,env 变量没有从 configmap 中选择。或者我可以在 envFrom 下有两个 configMapRef 吗?
此问题的一种解决方案是创建一个具有多个数据键/值的 ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: conf
data:
game.properties: |
<paste file content here>
ui.properties: |
<paste file content here>
Run Code Online (Sandbox Code Playgroud)
|在粘贴文件内容之前不要忘记符号。
是的,pod 或部署可以从一堆 configMapRef 条目中获取 env :
spec:
containers:
- name: encouragement-api
image: registry-......../....../encouragement.api
ports:
- containerPort: 80
envFrom:
- configMapRef:
name: general-config
- configMapRef:
name: private-config
Run Code Online (Sandbox Code Playgroud)
最好从 yaml 文件为 k8s 法律和秩序创建它们:
config_general.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: general-config
data:
HOSTNAME: Develop_hostname
COMPUTERNAME: Develop_compname
ASPNETCORE_ENVIRONMENT: Development
Run Code Online (Sandbox Code Playgroud)
鼓励-api/config_private.yaml:
apiVersion: v1
kind: ConfigMap
metadata:
name: private-config
data:
PRIVATE_STUFF: real_private
Run Code Online (Sandbox Code Playgroud)
应用两个配置映射:
kubectl apply -f config_general.yaml
kubectl apply -f encouragement-api/config_private.yaml
Run Code Online (Sandbox Code Playgroud)
运行并执行到 pod 中并运行 env |grep PRIVATE && env |grep HOSTNAME
我将 config_general.yaml 与开发人员的代码放在同一个 repo 中,他们可以随心所欲地更改它。密码和敏感值保存在 config_private.yaml 文件中,该文件位于其他地方(S3 加密存储桶),其中的值经过 base64 编码以提供额外的安全性。
| 归档时间: |
|
| 查看次数: |
16565 次 |
| 最近记录: |