Tag: confd

Docker容器中dnsmasq的奇怪行为

我有一个运行dnsmasq容器的CoreOS实例。 目前, dnsmasqconfiguration只设置为logging所有查询并以debugging模式运行,所以应该只进行caching。 当我尝试从不同的容器中使用dig , nslookup或简单地运行ping google.com我得到了Bad hostname: google.com ,我可以看到在日志查询中,多次请求,好像是重试。 如果我尝试从运行CoreOS的主机上运行相同的命令,那么在单次尝试中一切都没有问题。 我的计划是在群集中的每个CoreOS机器上运行dnsmasq ,并使其由confd支持,这样所有的服务都可以解决相应的问题。 我使用Alpine Linux作为基础映像,但是我试图在Ubuntu和Debian映像中运行这些命令,结果相同。

使用kubernetes填充敏感信息的Docker容器

我有一个运行容器的容器,需要访问API密钥和数据库密码等敏感信息。 现在,这些敏感值被embedded到控制器定义中,如下所示: env: – name: DB_PASSWORD value: password 然后在Docker容器中作为$DB_PASSWORD环境variables使用。 一切都相当简单。 但是阅读他们关于秘密的文档,他们明确地说,将敏感的configuration值放入您的定义中违反了最佳实践,并且可能是一个安全问题。 我能想到的唯一的其他策略是: 为每个用户社区或命名空间创build一个OpenPGP密钥 使用crypt将configuration值设置为etcd(使用私钥encryption) 创build一个包含私钥的kubernetes秘密, 像这样 将该秘密与容器相关联(意味着私钥可以作为卷装入), 就像这样 当容器启动时,它将访问卷装载中的私钥文件,并使用它来解密从etcd返回的conf值 这可以被合并到confd中 ,根据模板定义填充本地文件(比如Apache或者WordPress的configuration文件) 这看起来相当复杂,但更加安全和灵活,因为这些值将不再是静态的并以明文存储。 所以我的问题,我知道这不是一个完全客观的问题,这是否是完全必要的? 只有pipe​​理员能够首先查看和执行RC定义; 所以如果有人违反了kubernetes大师,还有其他问题需要担心。 我看到的唯一好处是,秘密不会以明文方式提交给文件系统。 有没有其他的方法来以安全的方式填充Docker容器的秘密信息?