轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

1、挂载应用配置文件配置集ConfigMap

当有许多应用如redis、mysql,希望将它的配置文件挂载出去,以便随时修改,可以用ConfigMap配置集

具体用法查看使用命令行操作里的 3、ConfigMap配置集实战

2、挂载应用配置文件的敏感信息Secret

Secret 对象类型用来保存敏感信息,例如使用yaml创建应用时从私有仓库拉去镜像时需要密码、OAuth 令牌和 SSH 密钥。 将这些信息放在 secret 中比放在 Pod 的定义或者 容器镜像 中来说更加安全和灵活。

具体用法查看 4、Secret配置实战

3、ConfigMap配置集实战
1、创建一个配置文件

如redis的配置文件,在其中添加相关配置内容,用于测试我们简单添加依据内容appendonly: yes

在这里插入图片描述

2、根据文件创建成配置集ConfigMap

在这里插入图片描述

配置集创建完成后,即可将源文件删除,因为配置文件已存储到了k8s的etcd中了

在这里插入图片描述

3、查询配置集

在这里插入图片描述

4、根据配置集名称查配置集详细信息

在这里插入图片描述

5、创建Pod应用同时挂载ConfigMap

redis-conf就是之前创建的配置集

apiVersion: v1
kind: Pod
metadata:
  name: redis
spec:
  containers:
  - name: redis
    image: redis
    command:
      - redis-server
      - "/redis-master/redis.conf"  #指的是redis容器内部的位置
    ports:
    - containerPort: 6379
    volumeMounts:
    - mountPath: /data
      name: data
    - mountPath: /redis-master
      name: config
  volumes:
    - name: data
      emptyDir: {}
    - name: config
      configMap:
        name: redis-conf
        items:
        - key: redis.conf
          path: redis.conf

执行命令 kubectl apply -f redis.yaml

“/redis-master/redis.conf” 指的是redis容器内部的位置,与创建好的配置集redis-conf对应

查询Pod状态 kubectl get pod,创建成功即可。

6、测试

可以到容器里修改/redis-master/redis.conf内容,也可以到直接修改配置集,会自动同步到容器里。

注意:对于应用本身的功能,如redis的一些应用,本身不支持配置的热更新,则需要重启才能使配置生效到应用本身中

7、修改配置集

在这里插入图片描述

4、Secret配置实战

当从私有仓库拉去镜像时,需要账户秘密,这时用Secret可以防止泄漏

1、创建Secret

命令格式

kubectl create secret docker-registry 可以自定义名称 \
  --docker-server=<你的镜像仓库服务器> \
  --docker-username=<你的用户名> \
  --docker-password=<你的密码> \
  --docker-email=<你的邮箱地址>
如:  
  kubectl create secret docker-registry yz-docker \
--docker-username=111 \
--docker-password=222 \
--docker-email=22233@qq.com
2、查看Secret配置

在这里插入图片描述

3、根据名称查看Secret详细信息

kubectl get secret yz-docker -oyaml 如下可看到数据被加密了

在这里插入图片描述

4、创建Pod应用同时使用Secret

kubectl apply -f secretdemo.yaml,如下内容imagePullSecrets指定了Secret名称。防止直接写明文到文件里了。

apiVersion: v1
kind: Pod
metadata:
  name: private-nginx
spec:
  containers:
  - name: private-nginx
    image: yao/mynginx:v1.0
  imagePullSecrets:
  - name: yz-docker

相关文章

文章浏览阅读942次。kube-controller-manager 和 kubelet 是...
文章浏览阅读3.8k次。上篇文章详细介绍了弹性云混部的落地历...
文章浏览阅读897次。对于cpu来说,这种分配方式并不会有太大...
文章浏览阅读796次,点赞17次,收藏15次。只要在Service定义...
文章浏览阅读763次。但是此时如果配置成 NONE, 租户创建成功...
文章浏览阅读2.7k次,点赞2次,收藏13次。公司使用的是交老的...