美文网首页
《每天5分钟玩转 Kubernetes》10 Secret

《每天5分钟玩转 Kubernetes》10 Secret

作者: SlowGO | 来源:发表于2018-12-13 17:05 被阅读4次

    Secret 用于保存敏感信息。

    创建 secret

    mysecret.yml

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret
    data:
      username: YWRtaW4=
      password: MTIzNDU2
    

    其中 usernamepassword 的值都是 base64 编码后的值,编码方式:

    echo -n admin | base64
    YWRtaW4=
    
    echo -n 123456 | base64
    MTIzNDU2
    

    启动:

    kubectl apply -f mysecret.yml
    

    查看 secret

    kubectl get secrets mysecret
    
    NAME       TYPE     DATA   AGE
    mysecret   Opaque   2      22s
    

    查看详情:

    kubectl describe secrets mysecret
    
    Name:         mysecret
    Namespace:    default
    Labels:       <none>
    Annotations:
    Type:         Opaque
    
    Data
    ====
    password:  6 bytes
    username:  5 bytes
    

    只能看到 key,看不到 value。

    查看 value:

    kubectl edit secrets mysecret
    
    image

    base64 解码:

    echo -n YWRtaW4= | base64 --decode
    
    admin
    

    pod 中使用 secret

    配置文件 mypod-secret.yml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: mypod-secret
    spec:
      containers:
        - name: mypod-secret
          image: busybox
          args:
          - /bin/sh
          - -c
          - sleep 10; touch /tmp/healthy; sleep 30000
          volumeMounts:
          - mountPath: "/etc/foo"
            name: foo
            readOnly: true
      volumes:
      - name: foo
        secret:
          secretName: mysecret
    

    启动:

    kubectl apply -f mypod-secret.yml
    

    进入 pod 查看 secret:

    kubectl exec -it mypod-secret sh
    
    image

    可以看到,每个 key 都被创建成了一个文件,value 以明文保存。

    secret 动态更新

    以 volume 方式使用 secret 支持动态更新,secret 更新后,容器中的数据也会更新。

    把 password 改为 ‘111111’,编码:

    echo -n 111111 | base64
    
    MTExMTEx
    

    修改 yaml 配置文件 mysecret.yml 中的 password:

    ...
      password: MTExMTEx
    

    更新配置:

    kubectl apply -f mysecret.yml
    

    进入 pod 查看:

    kubectl exec -it mypod-secret sh
    
    / # cat /etc/foo/password
    111111
    

    已经更新了。

    相关文章

      网友评论

          本文标题:《每天5分钟玩转 Kubernetes》10 Secret

          本文链接:https://www.haomeiwen.com/subject/whubhqtx.html