• Kubernetes Secret


    Kubernetes Secret

    官方文档:https://kubernetes.io/docs/concepts/configuration/secret/

    • 加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。
    • 应用场景:凭据

    通过文本文件创建用户密码

    1. 创建用户名密码文件
    echo -n 'admin' > ./username.txt
    echo -n '1f2d1e2e67df' > ./password.txt
    
    1. 通过文件创建用户名密码
    kubectl create secret generic db-user-pass --from-file=./username.txt --from-file=./password.txt
    
    1. 查看创建用户名密码
    kubectl get secret
    
    NAME TYPE DATA AGE
    db-user-pass Opaque 2 37s
    
    1. 查看详情
    kubectl describe secret db-user-pass
    
    Name: db-user-pass
    Namespace: default
    Labels: <none>
    Annotations: <none>
    
    Type: Opaque
    
    Data
    ====
    password.txt: 12 bytes
    username.txt: 5 bytes
    
    

    通过yaml文件创建用户名密码

    1. 编码用户名密码
    echo -n 'admin' | base64
    echo -n '1f2d1e2e67df' | base64
    
    1. 创建yaml文件 vim user.yaml
    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret
    type: Opaque
    data:
      username: YWRtaW4=
      password: MWYyZDFlMmU2N2Rm
    
    1. 创建用户名密码
    kubectl create -f user.yaml
    
    1. 查看创建用户
    kubectl get secret
    
    NAME TYPE DATA AGE
    db-user-pass Opaque 2 5m42s
    mysecret Opaque 2 18s
    

    通过环境变量导入到容器中

    1. 创建yaml文件
    vim secret-var.yaml
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: mypod
    spec:
      containers:
      - name: nginx
        image: nginx
        env:
          # 环境变量名称:用户
          - name: SECRET_USERNAME
            valueFrom:
              # 选择输入secret用户
              secretKeyRef:
                name: mysecret
                key: username
          # 环境变量名称:密码
          - name: SECRET_PASSWORD
            valueFrom:
              # 选择输入secret密码
              secretKeyRef:
                name: mysecret
                key: password
    
    1. 创建Pod
    kubectl create -f secret-var.yaml
    
    1. 查看创建Pod
    kubectl get pods
    
    NAME READY STATUS RESTARTS AGE
    mypod 1/1 Running 0 23s
    
    1. 进入Pod查看变量
    kubectl exec -it mypod bash
    
    root@mypod:/# echo $SECRET_USERNAME
    admin
    root@mypod:/# echo $SECRET_PASSWORD
    1f2d1e2e67df
    

    通过volume挂载用户名密码

    1. 创建yaml文件
    cat secret-vol.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: mypod
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - name: foo
          mountPath: "/etc/foo"
          readOnly: true
      volumes:
      - name: foo
        secret:
          # 创建的secret
          secretName: mysecret
    
    1. 创建Pod
    kubectl create -f secret-vol.yaml
    
    1. 查看Pod
    kubectl get pod
    
    NAME READY STATUS RESTARTS AGE
    mypod 1/1 Running 0 46s
    
    1. 进入Pod查看
    kubectl exec -it mypod bash
    
    root@mypod:/# ls /etc/foo/
    password username
    root@mypod:/# cat /etc/foo/password 
    1f2d1e2e67dfroot@mypod:/# cat /etc/foo/username 
    adminroot@mypod:/#
  • 相关阅读:
    条件语句实例
    数据类型
    C#与.NET概述
    c#循环
    语句
    数组

    英文文献中的数学符号
    如何计算协方差、 协方差矩阵 、 相关系数 、 马氏距离
    opengl 笔记
  • 原文地址:https://www.cnblogs.com/xhyan/p/13591423.html
Copyright © 2020-2023  润新知