Kubernetes(K8S) 配置管理-ConfigMap 介绍

kubernetes,k8s,配置管理,configmap,介绍 · 浏览次数 : 276

小编点评

**作用:** - 创建一个 etcd 中不加密数据的 ConfigMap。 - 将配置数据从 `redis.properties` 文件中创建 `redis-config` 对象。 - 创建一个 Pod 并将其挂载到容器中。 **步骤:** 1. 创建一个 `redis.properties` 文件,包含 Redis 配置。 2. 创建一个 `cm.yaml` 文件,定义 Pod 中使用的 configmap。 3. 创建一个 `mypodspec.yaml` 文件,定义 Pod 的配置。 4. 创建 `cm.yaml` 文件,定义 Pod 中使用的 configmap 中的变量信息。 5. 创建 `myconfig.yaml` 文件,定义变量信息。 6. 创建一个 `config-var.yaml` 文件,定义变量信息。 7. 使用 `kubectl apply` 命令执行上述步骤。 **命令:** ``` # 创建 etcd 配置文件 kubectl create configmap redis-config --from-file=redis.properties # 创建 Pod 配置文件 kubectl apply -f cm.yaml # 创建 Pod kubectl create pod mypodspec # 创建 configmap 中的变量 kubectl apply -f myconfig.yaml # 创建变量信息文件 kubectl apply -f config-var.yaml # 创建变量信息文件 ``` **注意:** - `LEVEL` 和 `TYPE` 是来自 configmap 中的变量。 - `configMapKeyRef` 用于指定变量的配置名。 - `mypodspec.yaml` 和 `myconfig.yaml` 示例中仅供参考,请根据实际情况进行修改。

正文

作用:存储不加密数据到 etcd,让 Pod 以变量或者 Volume 挂载到容器中
场景:配置文件

创建配置文件

redis.properties

redis.host=127.0.0.1
redis.port=6379
redis.password=123456

创建 ConfigMap

# 根据 redis.properties 创建 redis-config 
[root@k8smaster ~]# kubectl create configmap redis-config --from-file=redis.properties
# 查看 configmap
[root@k8smaster ~]# kubectl get cm
# 查看 redis-config 的详情
[root@k8smaster ~]# kubectl describe cm redis-config

以 Volume 的形式进行挂载到 pod 容器中

cm.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: [ "/bin/sh","-c","cat /etc/config/redis.properties" ]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      configMap:
        name: redis-config
  restartPolicy: Never
# 创建 yaml文件
[root@k8smaster ~]# vi cm.yaml
# 创建pod
[root@k8smaster ~]# kubectl apply -f cm.yaml
# 启动后可以查看日志
[root@k8smaster ~]# kubectl logs mypod

以变量的形式进行挂载

创建 yaml,声明变量信息 configmap 创建
myconfig.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfig
  namespace: default
data:
  special.level: info
  special.type: hello 

config-var.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ]
      env:
        - name: LEVEL
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: special.level
        - name: TYPE
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: special.type
  restartPolicy: Never
[root@k8smaster ~]# vi myconfig.yaml
[root@k8smaster ~]# kubectl apply -f myconfig.yaml
# 以变量形式进行挂载
[root@k8smaster ~]# vi config-var.yaml
[root@k8smaster ~]# kubectl apply -f config-var.yaml

与Kubernetes(K8S) 配置管理-ConfigMap 介绍相似的内容:

Kubernetes(K8S) 配置管理-ConfigMap 介绍

作用:存储不加密数据到 etcd,让 Pod 以变量或者 Volume 挂载到容器中 场景:配置文件 创建配置文件 redis.properties redis.host=127.0.0.1 redis.port=6379 redis.password=123456 创建 ConfigMap # 根

Kubernetes(K8S) 配置静态资源服务

Kubernetes(K8S) 配置静态资源服务 apiVersion: v1 kind: ConfigMap metadata: name: img-config namespace: vipsoft data: img.conf: | server { charset utf-8; listen

Kubernetes(K8S) 配置管理 Secret 介绍

Secret 作用:加密数据(base64)存在 etcd 里面,让 Pod 容器以挂载 Volume 方式进行访问 场景:凭证 [root@k8smaster ~]# echo -n 'admin' | base64 # 创建 secret [root@k8smaster ~]# kubectl

批处理及有状态等应用类型在 K8S 上应该如何配置?

众所周知, Kubernetes(K8S)更适合运行无状态应用, 但是除了无状态应用. 我们还会有很多其他应用类型, 如: 有状态应用, 批处理, 监控代理(每台主机上都得跑), 更复杂的应用(如:hadoop 生态...). 那么这些应用可以在 K8S 上运行么? 如何配置? 其实, K8S 针对

Kubernetes(K8S) Deployment 升级和回滚

创建部署详见 Kubernetes(K8S) Deployment 部署 Pod 传统应用升级,一般是V1.0的jar包,有一个应对 1.0 的 shell 启动脚本。升级时,传 2.0 的 jar包,配置 2.0 的 shell 脚本。 执行顺序为,停1.0的服务,启2.0的服务,有问题时,把2.

Kubernetes(K8S) yaml 介绍

使用空格做为缩进 缩进的空格数目不重要, 只要相同层级的元素左侧对齐即可 低版本缩进时不允许使用 Tab 键, 只允许使用空格 使用#标识注释, 从这个字符一直到行尾, 都会被解释器忽略 使用 三个 - 进行多项配置 | | | | | | | apiVersion | API版本 可以用 kube

K8S 性能优化 - 大型集群 CIDR 配置

前言 K8S 性能优化系列文章,本文为第三篇:Kubernetes 大型集群 CIDR 配置最佳实践。 系列文章: 《K8S 性能优化 - OS sysctl 调优》 《K8S 性能优化 - K8S APIServer 调优》 CIDR 配置 在安装大型集群或将现有的集群扩展到较大规模时,在安装集群

K8S POD控制器:从基础到高级实战技巧

本文深入探讨了Kubernetes POD控制器的基础知识、配置示例、最佳实践,并通过一个电子商务公司的案例分析,展示了如何在复杂的生产环境中应用POD控制器,以优化云服务架构。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发

K8S 性能优化-K8S Node 参数调优

前言 K8S 性能优化系列文章,本文为第四篇:Kubernetes Node 性能优化参数最佳实践。 系列文章: 《K8S 性能优化 - OS sysctl 调优》 《K8S 性能优化 - K8S APIServer 调优》 《K8S 性能优化 - 大型集群 CIDR 配置》 两个参数 控制可以为

K8S部署ECK采集日志

1. 部署nfs 1. 安装nfs #所有节点安装 yum install -y nfs-utils 在master节点创建nfs共享目录 mkdir -pv /data/kubernetes 编写配置文件 cat > /etc/exports <<'EOF' /data/kubernetes *(