zoukankan      html  css  js  c++  java
  • 第十章 Secret & Configmap (上)

      敏感信息,直接保存在容器镜像中显然不妥,比如用户名、密码等。K8s提供的解决方案是Secret。

      Secret会以密文的方式存储数据,避免了在配置文件中保存敏感信息。Secret会以Volume的形式被mount到Pod,容器可通过文件的方式使用Secret中的敏感数据;

    此外,容器也可以环境变量的方式使用这些数据。

      Secret可通过命令行或YAML创建。

    10.1 创建Secret:

      4种方法创建secret:

       (1)  --from-literal:  --from-literal对应一个条目。

        kubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=123456

            (2) --from-file:   每个文件对应一个条目

    kubeusr@GalaxyKubernetesMaster:~$ echo -n 123456 >./pas    # 往文件pas中写
    kubeusr@GalaxyKubernetesMaster:~$ echo -n admin >./user

    kubeusr@GalaxyKubernetesMaster:~$ kubectl create secret generic mysecret2 --from-file=./user --from-file=./pas
    secret "mysecret2" created

       (3) 通过--from-env-file:  文件中的Key=value对应一个条目

    kubeusr@GalaxyKubernetesMaster:~$ cat << EOF > env.txt      # cat <<EOF  > env.txt 是覆盖模式;  cat <<EOF  >> env.txt是追加模式
    > username=admin
    > password=123456
    > EOF
    kubeusr@GalaxyKubernetesMaster:~$ cat env.txt
    username=admin
    password=123456

     kubeusr@GalaxyKubernetesMaster:~$ kubectl create secret generic mysecret3 --from-env-file=env.txt
     secret "mysecret3" created

      (4)通过YAML配置文件:

    Secret里面存储的数据必须是通过base64编码后的结果:

    pkubeusr@GalaxyKubernetesMaster:~$ echo -n admin | base64 YWRtaW4= kubeusr@GalaxyKubernetesMaster:~$ echo -n 123456 | base64 MTIzNDU2 kubeusr@GalaxyKubernetesMaster:~$

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret4
    data:
      username: YWRtaW4=
      password: MTIzNDU2
    kubeusr@GalaxyKubernetesMaster:~$ kubectl apply -f mysecrete.yml
    secret "mysecret4" created

    10.2 查看Secret:

    kubeusr@GalaxyKubernetesMaster:~$ kubectl get secret
    NAME                  TYPE                                  DATA      AGE
    default-token-qjj5t   kubernetes.io/service-account-token   3         131d
    jenkins-credentials   Opaque                                1         85d
    mysecret              Opaque                                2         42m
    mysecret2             Opaque                                2         37m
    mysecret3             Opaque                                0         20m
    mysecret4             Opaque                                2         9m
    kubeusr@GalaxyKubernetesMaster:~$ kubectl describe secret mysecret2
    Name:         mysecret2
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    
    Type:  Opaque
    
    Data
    ====
    pas:   0 bytes
    user:  0 bytes
    kubeusr@GalaxyKubernetesMaster:~$ kubectl edit secret mysecret4        # 查看具体内容

    # 然后用base64解码

      kubeusr@GalaxyKubernetesMaster:~$ echo -n YWRtaW4=| base64 --decode
      admin

  • 相关阅读:
    【转】浅析Linux中的零拷贝技术
    我们使用 Kafka 生产者在发消息的时候我们关注什么(Python 客户端 1.01 broker)
    【转】Python 访问 HDFS
    HIVE 乱码以及 HUE SQL 语句兼容性的记录(遇到应该会一直更新)
    Kafka 深入核心参数配置
    【转】Hive 修改 table、column
    Redash(开源轻量级商业智能) 生产环境部署及实践 (without docker)
    【转】Linux开机启动管理---systemd使用
    Pyspark 最近使用的一些有趣姿势的梳理
    使用jquery操作select(获取选中option的值等)
  • 原文地址:https://www.cnblogs.com/liufei1983/p/10205567.html
Copyright © 2011-2022 走看看