kubernetes集群之Secret配置管理

  • 一、了解Secret
  • 1. 什么是Secret
  • 2. secret的使用
  • 3. secret的类型
  • 二、Secret的部署


一、了解Secret

1. 什么是Secret

Secret是用来保存小片敏感数据的k8s资源,例如密码,token,或者秘钥。这类数据当然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。

用户可以创建自己的secret,系统也会有自己的secret。

Pod需要先引用才能使用某个secret,Pod有2种方式来使用secret:作为volume的一个域被一个或多个容器挂载;在拉取镜像的时候被kubelet引用。

2. secret的使用

Pod 可以用两种方式使用 secret:

a. 作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里。

b. 当 kubelet 为 pod 拉取镜像时使用。

3. secret的类型

修改k8是的roles名称_修改k8是的roles名称

二、Secret的部署

  1. 创建Secret

修改k8是的roles名称_数据_02

修改k8是的roles名称_Pod_03


从文件中创建Secret

Opaque Secret 其value为base64编码后的值。

如果密码具有特殊字符,则需要使用 \ 字符对其进行转义,执行以下命令:

修改k8是的roles名称_修改k8是的roles名称_04

默认情况下 kubectl get和kubectl describe 为了安全是不会显示密码的内容,可以通过以下方式查看:

修改k8是的roles名称_数据_05

2.编写一个 secret 对象

修改k8是的roles名称_修改k8是的roles名称_06


vim secret.yaml

修改k8是的roles名称_Pod_07

修改k8是的roles名称_Pod_08

修改k8是的roles名称_数据_09

将Secret挂载到Volume中,向指定路径映射 secret 密钥

修改k8是的roles名称_数据_10

修改k8是的roles名称_Pod_11

修改k8是的roles名称_Pod_12

  1. 将Secret设置为环境变量

修改k8是的roles名称_docker_13


更改密钥

先生成二进制密钥

修改k8是的roles名称_docker_14


更改文件内容:

修改k8是的roles名称_Pod_15


修改k8是的roles名称_Pod_16

手动更新:

修改k8是的roles名称_docker_17


修改k8是的roles名称_数据_18


修改k8是的roles名称_修改k8是的roles名称_19


4. kubernetes.io/dockerconfigjson

用于存储docker registry的认证信息
在harbor私有仓库中新建westos项目,将项目设置为不公开,这样我们在不指定拉取路径时集iu无法拉取:

编写认证文件:

修改k8是的roles名称_docker_20


修改k8是的roles名称_数据_21

修改k8是的roles名称_修改k8是的roles名称_22

修改k8是的roles名称_数据_23

修改k8是的roles名称_修改k8是的roles名称_24

就可以拉取成功!!!!