zoukankan      html  css  js  c++  java
  • 使用 kubectl 管理 Secret Marathon

    使用secret的基本流程:

    • 1.创建k8s集群
    • 2.创建管理的文件
    • 3.验证
    • 4.解码
    • 5.清理

    集群创建忽略,从第2步开始,一起来熟悉下secret的管理流程。

    一个 Secret 可以包含 Pod 访问数据库所需的用户凭证。

    1.创建管理的文件

    # 以文件形式, 
    # 在这些命令中,-n 标志确保生成的文件在文本末尾不包含额外的换行符。 这一点很重要,因为当 kubectl 读取文件并将内容编码为 base64 字符串时,多余的换行符也会被编码。
    echo -n "testName" > user.txt
    echi -n "password" > pwd.txt
    
    # 使用kubectlcreate secret命令打包文件成secret,并在API服务器上创建对象
    kubectl create secret generic my-auth \
    --from-file=user.txt
    --from-file=pwd.txt
    
    ---输出
    secret/my-auth created
    ---
    
    默认密钥名称是文件名。 你可以选择使用 --from-file=[key=]source 来设置密钥名称。例如:
    
    kubectl create secret generic my-auth \
      --from-file=username=username.txt \
      --from-file=password=password.txt
    
    你还可以使用 --from-literal=<key>=<value> 标签提供 Secret 数据。 可以多次使用此标签,提供多个键值对。 请注意,特殊字符(例如:$,\,*,= 和 !)由你的 shell 解释执行,而且需要转义。
    kubectl create secret generic my-auth \
      --from-literal=username=devuser \
      --from-literal=password='S!B\*d$zDsb='
    
    

    2.验证secret

    检查 secret 是否已创建:

    kubectl get secret [-n mynamespace]
    输出:

    kubectl get secret -n elk
    NAME                         TYPE                                  DATA   AGE
    default-token-jxc92          kubernetes.io/service-account-token   3      2d23h
    elastic-certificate-pem      Opaque                                1      2d23h
    elastic-certificates         Opaque                                1      2d23h
    elastic-credentials          Opaque                                2      2d23h
    sh.helm.release.v1.es-c.v1   helm.sh/release.v1                    1      47h
    sh.helm.release.v1.es-d.v1   helm.sh/release.v1                    1      42h
    sh.helm.release.v1.es-m.v1   helm.sh/release.v1                    1      42h
    

    查看secret的描述

    kubectl describe secret secret-name [-n mynamespace]
    输出:

    kubectl describe secret elastic-credentials -n elk
    Name:         elastic-credentials
    Namespace:    elk
    Labels:       <none>
    Annotations:  <none>
    
    Type:  Opaque
    
    Data
    ====
    password:  13 bytes
    username:  7 bytes
    

    kubectl get 和 kubectl describe 命令默认不显示 Secret 的内容。 这是为了防止 Secret 被意外暴露或存储在终端日志中。

    3.解码secret

    要查看创建的 Secret 的内容,运行以下命令:

    kubectl get secret db-user-pass -o jsonpath='{.data}'
    输出类似于:

    {"password":"MWYyZDFlMmU2N2Rm","username":"YWRtaW4="}
    现在你可以解码 password 的数据:

    echo 'MWYyZDFlMmU2N2Rm' | base64 --decode
    输出类似于:

    1f2d1e2e67df

    4.清理

    删除创建的 Secret:

    kubectl delete secret db-user-pass

  • 相关阅读:
    设计师
    仅用递归函数和栈操作逆序一个栈
    用两个栈实现队列
    设计一个有getMin功能的栈(2)
    设计一个有getMin功能的栈(1)
    Java 泛型
    servlet里获得jsp页面里select的选项之值
    mac上mysql的GUI工具sequel pro
    mac安装mysql的两种方法(含配置)
    [转]在Mac系统中安装配置Tomcat及和Eclipse 配置
  • 原文地址:https://www.cnblogs.com/davis12/p/15474721.html
Copyright © 2011-2022 走看看