Secrets

作者: cdz620 | 来源:发表于2020-03-04 09:38 被阅读0次

    官方文档

    http://kubernetes.io/docs/user-guide/secrets/

    Secrets

    • 存储敏感信息password、OAuth、ssh keys
    • 归属于namespace下,不能跨namespace
    • 当pod被schedule,pod中引用Secret时,会验证是否存在,必须先创建好
    • 创建的配置文件中密码已经用base64编码,引用到pod中,会自动decode

    base64 编码

    • 编码:echo -n "admin" | base64
    • 解码:echo "MWYyZDFlMmU2N2Rm" | base64 --decode

    使用Secrets方式

    demo

    用户密码管理

    配置文件形式

    kubectl create -f password.yaml, 配置文件中的用户名和密码必须经过base64编码(echo -n "admin" | base64)

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret
    type: Opaque
    data:
      username: YWRtaW4=
      password: MTIzNA==
    

    命令行形式

    kubectl create secret generic mysecret --from-literal=username="admin",password="1234"

    私有仓库用户认证

    命令行方式

    kubectl create secret docker-registry hub.docker.io --docker-username=janedoe --docker-password=123456 --docker-email=jdoe@example.com
    secret "myregistrykey" created

    使用docker配置文件

    1. ~/.docker/config.json 文件内容(docker login 登录后会生成该文件)
    {
        "auths": {
            "https://index.docker.io/v1/": {
                "auth": "Y2R6NjIwOmNkejYyMGRvY2tlcg=="
            }
        }
    }
    
    1. auth编码, cat ~/.docker/config.json | base64
    2. 编辑配置文件 kubectl create -f docker_password.yaml (type 官网文档没有说明)
    apiVersion: v1
    kind: Secret
    metadata:
      name: myregistrykey
    data:
      .dockerconfigjson: eyAiaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvIjogeyAiYXV0aCI6ICJabUZyWlhCaGMzTjNiM0prTVRJSyIsICJlbWFpbCI6ICJqZG9lQGV4YW1wbGUuY29tIiB9IH0K
    type: kubernetes.io/dockerconfigjson
    
    1. pod使用
    apiVersion: v1
    kind: Pod
    metadata:
      name: foo
    spec:
      containers:
        - name: foo
          image: janedoe/awesomeapp:v1
      imagePullSecrets:
        - name: myregistrykey
    

    相关文章

      网友评论

          本文标题:Secrets

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