我继承了Kubernetes / Docker的设置。我试图在一个单独的集群上完全重新创建一个开发环境(使用新名称)。抱歉,如果我的问题有点无知,尽管我主要选择Kubernetes / Docker,但我还是很新。
我已将所有信息复制到群集中,并通过kubectl和旧的YAML启动了它。 我还在使用旧的图像文件,该文件应包含我所知的相关秘密
但是,我收到有关丢失的秘密db-user-pass的错误消息。
我已经检查了状态存储中包含的机密目录中的KOPS(在S3上)
Warning FailedScheduling 22m (x3 over 22m) default-scheduler No nodes are available that match all of the predicates: Insufficient memory (2), PodToleratesNodeTaints (1).
Normal Scheduled 22m default-scheduler Successfully assigned name-keycloak-7c4c57cbdf-9g2n2 to ip-ip.address.goes.here.us-east-2.compute.internal
Normal SuccessfulMountVolume 22m kubelet, ip-ip.address.goes.here.us-east-2.compute.internal MountVolume.SetUp succeeded for volume "default-token-2vb5x"
Normal Pulled 21m (x6 over 22m) kubelet, ip-ip.address.goes.here.us-east-2.compute.internal Successfully pulled image "image.location.amazonaws.com/dev-name-keycloak"
Warning Failed 21m (x6 over 22m) kubelet, ip-ip.address.goes.here.us-east-2.compute.internal Error: secrets "db-user-pass" not found
Warning FailedSync 21m (x6 over 22m) kubelet, ip-ip.address.goes.here.us-east-2.compute.internal Error syncing pod
Normal Pulling 2m (x90 over 22m) kubelet, ip-ip.address.goes.here.us-east-2.compute.internal pulling image "image.location.amazonaws.com/dev-name-keycloak"
我在这里究竟误会了什么?也许Kubernetes试图根据我的YAML中的值分配一个变量,该值也在Docker映像上设置,但是Kubernetes不可用?我应该手动将所有机密从一个吊舱复制到另一个吊舱(还是导出到YAML并包含在我的应用程序中)。
我强烈猜测,将export +放入现有设置中可能是将所有凭据提供给Pod的最佳方式。
在这里欢迎任何指导或想法。
答案 0 :(得分:0)
能否请您检查一下旧集群中是否有一个名为“ db-user-pass”的机密?
您可以通过进行检查: ubuntu @ sal-k-m:〜$ kubectl获取秘密
OR(如果在其他名称空间中)
ubuntu @ sal-k-m:〜$ kubectl获取秘密-n网络
如果秘密存在,那么您还需要--export并在新群集中进行配置。
kubectl获取秘密-n web -o yaml --export> db-user-pass.yaml
您可以在此文档中找到有关机密的更多详细信息。
https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/