我想运行托管在Kubernetes集群上的私有容器注册表中的应用程序。我按照这里的指令创建了这样一个秘密:
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> \
--docker-username=<your-name> \
--docker-password=<your-pword> \
--docker-email=<your-email>
它用于我的部署中,如下所示:
containers:
- image: registry.gitlab.com/xxxxx/xxxx
name: dockerdemo
resources: {}
imagePullSecrets:
- name: regcred
K8s现在能够从我的私人注册表中提取图像。无论如何,我对我的用户和密码被存储在集群中的纯文本感到不舒服。是否有更好/更安全的方式让K8s集群可以通过令牌访问注册表?
发布于 2019-12-31 11:12:04
因此,我正在使用Gitlab,我知道的解决方案是不将我的用户凭据存储在Kubernetes中。相反,我使用的部署令牌可以随时删除,并且只能访问容器注册表。
这里需要采取以下步骤:
read_registry
的令牌kubectl create secret docker-registry regcred --docker-server=registry.gitlab.com --docker-username=<token_username> --docker-password=<token>
中创建秘密谢谢你@Jonas的链接,但这个解决方案是我正在寻找的。
发布于 2019-12-23 14:22:45
无论如何,我对我的用户和密码被存储在集群中的纯文本感到不舒服。是否有更好/更安全的方式让K8s集群可以通过令牌访问注册表?
有关如何确保您的秘密在etcd中加密,请参见在静止时加密机密数据。
或者,您可以考虑使用保险库来存储机密。参见例如蒙佐银行安全小组如何处理秘密
https://stackoverflow.com/questions/59456507
复制相似问题