什么是Configmap与Secret
Configmap
管理普通配置信息
它的作用是用于存储和管理非敏感、明文的配置信息
例如
应用的参数设置
环境变量配置
配置文件内容
通俗讲就是笔记本里存放的一些配置信息大家都可以查看
Secret
管理敏感配置信息
专门用于存储和管理敏感信息,它会使用Base64方式进行编码存储
例如
账号密码
令牌密钥(API密钥或JWT令牌)
证书文件(TLS 证书、SSL 证书)
通俗讲就是存入需要加密的信息不能让所有人看到的敏感配置,防止泄露。
命令
!确保已经安装了kubernetes和docker
Configmap
无需写配置文件
kubectl create/apply configmap <configmap名称> [创建来源参数]
kubectl get configmaps 可以查看所有configmap
kubectl describe configmap <configmap名称> 查看存储的信息
kubectl get configmap <configmap名称> -o yaml 以yaml方式查看信息
Secret
kubectl create/apply secret <类型> <secret名称> [创建来源参数]
kubectl get secrets 可以查看所有secret
kubectl describe secret <secret名称> 查看存储的信息
kubectl get secret <secret名称> -o yaml 以yaml方式查看信息
generic是必须要加的指的是通用类型相同的还有
tls –存储 TLS 证书和私钥
docker-registry –存储 Docker 镜像仓库的认证信息
service-account –存储服务账户令牌
创建来源参数:
–from-literal 直接指定键值对(明文),可多次使用添加多个配置项
–from-file 从本地单个文件导入,配置项键为文件名,值为文件内容
–from-file=<目录> 从本地目录导入,目录下所有文件自动作为配置项(键为文件名,值为文件内容)
Configmap(两种方式)
非yaml方式
存入三条信息使用 –from-literal方式
kubectl create configmap app-config \\
–from-literal=app.env=production \\
–from-literal=db.host=192.168.10.144 \\
–from-literal=db.port=3306


yaml方式
创建yaml文件
cat > mydata.yaml << 'EOF'
apiVersion: v1
kind: ConfigMap
metadata:
name: mydata-config-yaml
namespace: default
data:
app.env: "production"
db.host: "192.168.10.143"
EOF
应用
kubectl apply -f mydata.yaml

删除
kubectl delete configmap <configmap名称>
Secret(三种方式)
非yaml方式
存入两条信息使用 –from-literal方式
kubectl create secret generic app-secret \\
–from-literal=db.username=root \\
–from-literal=db.password=123456Abc!

可以看到查看信息时已经被base64编码了
在非yaml查看时只能看到字节数(被base64编码前)无法看到详细信息
文件创建
cat > mydata << 'EOF'
123456Abc!
EOF
kubectl create secret generic mydata –from-file=./mydata

这里第一个mydata指的是必须要有的一个服务名
yaml方式
vi data.yaml
写入
apiVersion: v1
kind: Secret
metadata:
name: jht
namespace: default
type: Opaque
stringData:
username: "jihuaitang"
password: "wsjht"
host: "192.168.10.143"
port: "3306"
应用
kubectl apply -f data.yaml
查看
kubectl get secret data.yaml -o yaml


