《Kubernetes设计与实现》
  • Introduction
  • 内容简介
  • 前言
  • [第二章:Kubernetes基础]
    • 2.3 Kubernetes API
  • [第三章:工作负载管理]
    • [3.1 Pod]
      • 3.1.1 Pod概述
      • 3.1.1 Pod初体验
    • [3.2 ReplicationController]
      • 3.2.1 ReplicationController概述
      • 3.2.2 ReplicationController初体验
    • [3.3 ReplicaSet]
      • 3.3.1 ReplicaSet概述
      • 3.3.2 ReplicaSet初体验
    • [3.4 Deployment]
      • 3.4.1 Deployment概述
      • 3.4.2 Deployment初体验
    • [3.5 DaemonSet]
      • 3.5.1 DaemonSet概述
      • 3.5.2 DaemonSet初体验
  • [第四章:服务]
    • [4.1 Service]
      • 4.1.1 Service概述
      • 4.1.1 Service上手体验
  • [第六章:配置管理]
    • [6.1 Secret--机密信息管理]
      • 6.1.1 Secret概述
  • [第七章:集群认证]
    • [7.1 证书]
      • 7.1.1 证书基础
      • 7.1.2 证书签发流程
  • [第九章:准入控制器]
    • [9.1 准入控制器概述]
      • 9.1.1 概述
      • [9.1.2 内置默认启动的插件]
        • 9.1.2.1 NamespaceLifecycle
        • 9.1.2.15 MutatingAdmissionWebhook
  • [第十章:ResourceQuota]
    • 10.1 ResourceQuota概述
  • [第十六章:API设计约定]
    • 16.1 字段可选性设计约定
    • 16.2 condition设计约定
    • 16.3 event设计约定
  • [第十九章:Kubernetes生态]
    • [19.1 Kind]
      • [19.1.1 Kind概述]
      • 19.1.2 映射端口到主机
      • 19.1.3 配置端口转发
由 GitBook 提供支持
在本页
  • 引入背景
  • 延伸阅读

这有帮助吗?

  1. [第六章:配置管理]
  2. [6.1 Secret--机密信息管理]

6.1.1 Secret概述

上一页[6.1 Secret--机密信息管理]下一页[第七章:集群认证]

最后更新于4年前

这有帮助吗?

引入背景

当容器中的应用需要访问容器以外的服务(比如数据库、代码仓库和kube-apiserver等)时,那么不可避免地需要使用相应服务的帐号、密码等凭据(取决于具体服务的要求)。所以如何为容器提供凭据、以及容器中的应用如何使用这些凭据就成了不得不思考的问题。

在没有Secret之前,为容器提供凭据主要有如下几种方式:

  • 将凭据硬编码;

  • 将凭据保存到文件,并最终放置到镜像;

  • 将凭据保存到文件中,并通过volume的形式挂载到容器;

首先,将凭据硬编码的方式当然不可取,每次凭据变更都需要重新生成二进制文件。其次将私密的凭据放入镜像, 会在镜像分发过程中泄露凭据,同时凭据变更也需要重新制做镜像,变更周期过长。最后,将凭据使用volume的形式挂载到容器这种方式,需要保证volume在多个集群节点共享(或每个节点拥有一个拷贝副本),难以保证凭据的私密性,同时在集群扩容时还需要保证新增节点上能够访问到凭据,维护成本比较大。

针对以上问题,Kubernetes设计了一个新的名为Secrets的资源类型,专门用来保存私密的凭据,它以键值方式存储凭据,并支持在 Pod 资源中通过环境变量或volume引用。

延伸阅读

  • 《Secrets设计提案》

  • 《Secrets官方文档》

https://github.com/kubernetes/community/blob/1c3dcb393d96618ba59bde57cee4e3b212e42c33/contributors/design-proposals/auth/secrets.md
https://kubernetes.io/docs/concepts/configuration/secret/