kubernetes 入门实践-configmap

kubernetes 入门实践-configmap,第1张

kubernetes 入门实践-configmap

ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(我们总害怕死亡,而如果人真的可以永远活着,我想人们同样会像害怕死亡一样害怕永恒,或厌倦永恒)
ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤ
kubernetes 入门实践-搭建集群
kubernetes 入门实践-k8s集群可视化组件 dashbord

什么是ConfigMap

configmap是k8s的一个配置管理组件,可以将配置以key-value的形式传递,通常用来保存不需要加密的配置信息,加密信息则需用到Secret,主要用来应对以下场景:

使用k8s部署应用,当你将应用配置写进代码中,就会存在一个问题,更新配置时也需要打包镜像,configmap可以将配置信息和docker镜像解耦。
使用微服务架构的话,存在多个服务共用配置的情况,如果每个服务中单独一份配置的话,那么更新配置就很麻烦,使用configmap可以友好的进行配置共享。
其次,configmap可以用来保存单个属性,也可以用来保存配置文件。

如何使用ConfigMap并配置在Pod中

ConfigMap 允许你将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。

创建ConfigMap配置文件

创建configmap.yaml,其中data就是定义的键值对,namespace是命名空间,name是configmap模板的名称

apiVersion: v1
kind: ConfigMap
metadata:
  name: vue-configmap
  namespace: vue
data:
  CONFIGMAP_APP_VERSION: "app 1.0"
  CONFIGMAP_WEB_VERSION: "web q.0"

应用configmap文件
# 应用yaml配置文件
kubectl apply -f configmap.yaml

查看dashboard中的configmap配置

通过命令查看configmap配置

更新Pod配置文件

在原pod文件release-deploy.yaml的基础上加入了以下配置
name: 字段别名
configMapKeyRef.name: configmap配置名称
configMapKeyRef.key: 从configmap模板中获取的key

- name: configmap-name
   valueFrom:
     configMapKeyRef:
       name: vue-configmap
       key: CONFIGMAP_APP_VERSION
- name: configmap-name2
  valueFrom:
    configMapKeyRef:
      name: vue-configmap
      key: CONFIGMAP_WEB_VERSION

以下是完整的Pod配置,不清楚的可以看前面的文章
kubernetes 入门实践-搭建集群

apiVersion: apps/v1
kind: Deployment
metadata:
  name: vue-deployment
  namespace: vue
  labels:
    app: vue-deployment-labels
spec:
  selector:
    matchLabels:
      app: vue-pod
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      name: vue-pod
      labels:
        app: vue-pod
    spec:
      containers:
      - name: vue-container
        image: zhangzwmmm/cgame:vue-master-2919c3e2acd37a1d69cfd2fe1b943d03eb02ac68
        env:
        - name: HOST
          value: "www.baidu.com"
        - name: PORT
          value: "80"
        - name: configmap-name
          valueFrom:
            configMapKeyRef:
              name: vue-configmap
              key: CONFIGMAP_APP_VERSION
        - name: configmap-name2
          valueFrom:
            configMapKeyRef:
              name: vue-configmap
              key: CONFIGMAP_WEB_VERSION
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
        resources:
          requests:
            memory: "64Mi"
            cpu: '250m'
          limits:
            memory: "128Mi"
            cpu: "500m"
      imagePullSecrets:
      - name: docker-secret
# 重新应用pod配置,会重启pod
kubectl apply -f release-deploy.yaml

查看pod已重启生效

通过dashboard查看pod的环境变量

通过命令查看pod环境变量

kubectl exec vue-deployment-745b467f79-khxdh -n vue -- printenv

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5707610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存