Kubernetes (十一) 存储——Secret配置管理

本文详细介绍了如何在Kubernetes中使用Secrets管理敏感数据,包括从文件创建基础秘钥对、使用Opaque类型创建yaml文件、挂载Secret到Pod中的Volume,以及存储DockerRegistry的认证信息。
摘要由CSDN通过智能技术生成

一.  简介                                                                                                                     

                  从文件创建            

 echo -n 'admin' > ./username.txt

 echo -n 'westos' > ./password.txt

 kubectl create secret generic db-user-pass --from-file=./username.txt --from-  file=./password.txt

        编写yaml文件创建            

          1. 创建编辑文件                         vim mysecret.yaml

 apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=   #这两必须是base64编码后的值
  password: d2VzdG9z           

           2.  将secret挂载到Volume中       vim pod1.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mysecret            
spec:
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - name: secrets
      mountPath: "/secret"    #创建的目录挂载点
      readOnly: true              #只读
  volumes:
  - name: secrets
    secret:
      secretName: mysecret

    删除pod: kubectl delete  -f pod1.yaml

       向指定路径映射secret密钥        

                         1.   创建编辑文件          vim pod2.yaml    

                               
apiVersion: v1
kind: Pod
metadata:
  name: mysecret
spec:
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - name: secrets     #定义的挂载名
      mountPath: "/secret"
      readOnly: true
  volumes:
  - name: secrets        #卷挂载
    secret:                 #哪个secret名称
      secretName: mysecret  #这个
      items:                 #因为secret有多组key
      - key: username        #指定的这个key
        path: my-group/my-username #这里是相对路径需要把base路径(/secret)加上就是绝对路径

    删除pod: kubectl delete  -f pod2.yaml         

     存储docker registry的认证信息    

                    1.    在私有仓库创建新项目(不公开)        

                       2.  创建编辑文件               vim pod3.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: game2048
      image: reg.westos.org/westos/game2048
  #imagePullSecrets:                  #拉取的密钥
  #    - name: myregistrykey       #这里先注释掉

             这里看到创建失败

                   3.  解决方案 创建secret密钥

kubectl create secret docker-registry myregistrykey --docker-server=reg.westos.org --docker-username=admin --docker-password=westos --docker-email=yakexi007@westos.org

                  4.  因为不是Deploment控制器创建的 得删除刚才的pod

                        kubectl delete pod --all

                  5. 修改配置文件 去掉刚才得注释选项即可    vim pod3.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: game2048
      image: reg.westos.org/westos/game2048
  imagePullSecrets:
    - name: myregistrykey


         

               

            

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值