专栏首页eadelak8s-kubernettes-sercet存储

k8s-kubernettes-sercet存储

Secret

Secret存在意义

Secret解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret可以以Volume或者环境变量的方式使用

secret有三种类型:

  • Service Account :用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/secrets/kubernetes.io/serviceaccount目录中
  • Opaque : base64编码格式的Secret,用来存储密码、密钥等
  • kubernetes.io/dockerconfigison :用来存储私有docker registry的认证信息

Service Account

Service Account用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/secrets/kubernetes.io/serviceaccount目录中

[root@k8s-master01 ~]# kubectl exec kube-proxy-hjkqb -n kube-system  -it -- ls /run/secrets/kubernetes.io/serviceaccount
ca.crt  namespace  token
​
kubectl exec kube-proxy-hjkqb -n kube-system  -it -- /bin/sh cd /run/secrets/kubernetes.io/serviceaccount
​
cat ca.crt
kubectl get pod -n kube-system
kubectl exec kube-proxy-hjkqb -n kube-system  -it -- /bin/sh

Opaque Secret

Ⅰ、 创建说明

Opaque类型的数据是一个map类型,要求value是base64编码格式:

[root@k8s-master01 ~]# echo -n "admin" | base64
YWRtaW4=
[root@k8s-master01 ~]# echo -n "admin123" | base64
YWRtaW4xMjM=
[root@k8s-master01 ~]# echo -n "YWRtaW4xMjM=" | base64 -d
admin123
[root@k8s-master01 ~]# base64 --help

secrets.yaml

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  password: YWRtaW4xMjM=
  username: YWRtal4=
kubectl get secret
Ⅱ、使用方式

1、将Secret挂载到volume中

apiVersion: v1
kind: Pod
metadata:
  labels:
    name: seret-test
  name: seret-test
spec:
  volumes:
    - name: secrets
      secret: 
        secretName: mysecret
  containers:
    - image: hub.atguigu.com/library/myapp:v1 
      name: db
      volumeMounts:
        - name: secrets
          mountPath: "/etc/secrets"
          readOnly: true
kubectl exec seret-test  -it -- /bin/sh
/ # cd /etc/secrets/
/etc/secrets # ls
password  username
/etc/secrets # cat username 
/etc/secrets # cat password 
admin123

2、将Secret导出到环境变量中

apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
  name: pod-deployment
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: pod-deployment
    spec:
      containers:
        - name: pod-1
          image: hub.atguigu.com/library/myapp:v1
          ports:
            - containerPort: 80 
          env:
            - name: TEST_USER 
              valueFrom: 
                secretKeyRef:
                  name: mysecret 
                  key: username 
            - name: TEST_PASSWORD 
              valueFrom: 
                secretKeyRef: 
                  name: mysecret 
                  key: password
[root@k8s-master01 ~]# kubectl exec  pod-deployment-57cf4db6cc-68j9r  -it -- /bin/sh
/ # echo $TEST_USER
admj^
/ # echo $TEST_PASSWORD
admin123
/ # 

kubernetes.io/dockerconfigjson

使用Kuberctl创建docker registry认证的secret

kubectl create secret docker-registry myregistrykey --docker-server=DOCKER REGISTRY SERVER- docker-username-DOCKER USER--docker-password-DOCKER PASSWORD ---docker-emai1-DOCKER EMAIL secret "myregistrykey" created.

在创建Pod的时候,通过imagePullsecrets来引用刚创建的myregistrykey

apiVersion: v1
kind: Pod
metadata:
  name: foo
spec:
  containers:
    name: foo
    image: hub.atguigu.com/library/myapp:v1
    imagePullsecrets: 
      name: myregistrykey

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • k8s-kubernetes-configmap存储

    ConfigMap功能在Kubernetes1.2版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。 ConfigMap API给我们提...

    eadela
  • servlet--获取类路径下资源

    还可以使用ServletContext对象来获取Web应用下的资源,例如在hello应用的根目录下创建a.txt文件,现在想在Servlet中获取这个资源,就可...

    eadela
  • k8s-service

    Kubernetes Service定义了这样一种抽象:一个Pod的逻辑分组,一种可以访问它们的策略-通常称为微服务。这一组Pod能够被Service访问到,...

    eadela
  • 如何及为何要建立一个受欢迎的Facebook群组

    译者:Amber 审校:Nic 本文长度为4781字,预估阅读时间8分钟。 摘要:本文通过解析作者自身建立网站并成功吸引众多Facebook自然访问流量的经验...

    iCDO互联网数据官
  • 云通信IM-加入群组报10015/10010错误问题分析

    之前工单有客户反馈加入群组时报10015/10010错误,但是没有解散过群组或者不知道是谁解散的,想查明原因。

    usher
  • 两阶段提交(2PC)及其在Flink Exactly-once中的应用

    场景描述:两阶段提交(two-phase commit, 2PC)是最基础的分布式一致性协议,应用广泛。本文来介绍它的相关细节以及它在Flink中的典型应用场景...

    大数据技术与架构
  • 「聚焦」发现漏洞未及时修复要追究单位和责任人责任

    随着制造业的转型升级,万物互联已经成为工业信息系统中不可逆转的趋势,在工业信息系统逐步与互联网进行融合的过程中,安全问题也逐渐凸显出来。

    C4rpeDime
  • 什么,他来了!

    而且该专栏的主理人“冰糖”持续3年都在追踪该视频的最新进展,及时以文字解读版本分享给大家,见:冰糖的专栏总结

    生信技能树
  • Google 基础架构安全设计概述

    本文包含的内容截至 2017 年 1 月是正确无误的,代表截至本文撰写之时的现状。由于我们会不断完善对客户的保护,因此 Google 的安全政策和制度可能会随着...

    网络安全观
  • Struts Interceptor Example

    一下文章节选择《netkiller java 手札》 http://www.netkiller.cn/java/struts/interceptor.html...

    netkiller old

扫码关注云+社区

领取腾讯云代金券