栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

kubernetes——ConfigMap配置应用程序

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kubernetes——ConfigMap配置应用程序

ENTRYPOINT与CMD

我们使用entrypoint指定的是可执行文件,cmd指定的是可执行文件所需要的参数

通过使用yaml文件指定执行的命令和参数

apiVersion: v1
kind: Pod
metadata:
  name: kubia-ce
  labels:
    name: kubia-ce
spec:
  containers:
  - name: kubia-ce
    image: luksa/kubia
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 8080
    command:
      - "ls"
    args:
      - /var/

为容器设置环境变量

在声明pod时指定环境变量

apiVersion: v1
kind: Pod
metadata:
  name: kubia-ce
  labels:
    name: kubia-ce
spec:
  containers:
  - name: kubia-ce
    image: luksa/kubia
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 8080
    env:
      - name: port
        value: "8080"

需要注意的是,这里数字需要使用引号包裹,但是字符串不需要

ConfigMap

利用configMap将pod和配置解耦

configMap本质上就是一个键值对的映射,映射内容可以通过命令行,文件获取。

创建ConfigMap

#通过命令行
kubectl create configmap --from-literal=port=8080
#通过文件
kubectl create configmap --from-file=test.config
#注意通过文件创建的configmap不是将configmap中的键值对进行解析,设置成多个键值对,而是将文件名作为键,文件内容作为值,作为环境变量

如果引用不存在的configmap会发生什么?

kubernetes会正常调度pod并尝试运行所有的容器,引用不存在的configmap的容器会启动失败,其余容器可以正常启动,如果之后创建这个缺失的configmap,因为缺失configmap而启动失败的容器会自动启动,无需重新创建。

将configmap映射成为环境变量

apiVersion: v1
kind: Pod
metadata:
  name: kubia-ce
  labels:
    name: kubia-ce
spec:
  containers:
  - name: kubia-ce
    image: luksa/kubia
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 8080
    env:
      - name: port
        valueFrom:
          configMapKeyRef:
            name: testconfig
            key: env

将configmap中的键值对全部映射成为环境变量

apiVersion: v1
kind: Pod
metadata:
  name: kubia-ce
  labels:
    name: kubia-ce
spec:
  containers:
  - name: kubia-ce
    image: luksa/kubia
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 8080
    envFrom:
      - configMapRef:
          name: testconfig

将configmap映射成为容器中的配置文件

apiVersion: v1
kind: Pod
metadata:
  name: kubia-ce
  labels:
    name: kubia-ce
spec:
  containers:
  - name: kubia-ce
    image: luksa/kubia
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 8080
    volumeMounts:
      - mountPath: /var/test
        name: config
  volumes:
    - name: config
      configMap:
        name: fileconfig

将configmap中的每一个键值对,都以一个文件的形式挂载在/var/test下

挂载指定的条目至pod的文件夹

volums:
  volumes:
    - name: config
      configMap:
        name: fileconfig
        items:
          - key: my-nginx-config.conf#configmap中的键名
            path: gzip.conf#挂载到容器中的文件名

挂载特定的文件

    volumeMounts:
      - mountPath: /var/test/test.config
        name: config
        subPath: my-niginx-config.conf#configmap中的文件名,

将configmap中指定的配置文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/343845.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号