• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
轻松入门网
帮助4

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfgkhbi
系列文章
更多 icon
同类精品
更多 icon
继续加载