[英]Kubernetes Minikube Secrets appear not mounted in Pod
我在Kubernetes中有一个“部署”,它在GKE中运行良好,但在MiniKube中失败了。 我有一个带有2个容器的Pod: - (1)Nginx作为反向代理(分别在/ etc / tls和/ etc / nginx读取秘密和configMap卷)(2)基于JVM的服务侦听localhost
minikube部署中的问题是Nginx容器无法读取看起来不存在的TLS证书 - 即,对Pod的密钥的卷装载似乎已失败。
nginx: [emerg] BIO_new_file("/etc/tls/server.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/tls/server.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
但是,如果我做“minikube日志”,我会得到大量看似“成功”的量级坐骑......
MountVolume.SetUp succeeded for volume "kubernetes.io/secret/61701667-eca7-11e6-ae16-080027187aca-scriptwriter-tls" (spec.Name: "scriptwriter-tls")
秘密本身在集群中还可以......
$ kubectl get secrets scriptwriter-tls
NAME TYPE DATA AGE
scriptwriter-tls Opaque 3 1h
因此,就miniKube而言,似乎从秘密的角度来看,一切都很好。 但另一方面,nginx容器无法看到它。
我无法登录到容器,因为它一直在终止。
为了完整性,部署yaml的相关部分...首先是nginx配置...
- name: nginx
image: nginx:1.7.9
imagePullPolicy: Always
ports:
- containerPort: 443
lifecycle:
preStop:
exec:
command: ["/usr/sbin/nginx", "-s", "quit"]
volumeMounts:
- name: "nginx-scriptwriter-dev-proxf-conf"
mountPath: "/etc/nginx/conf.d"
- name: "scriptwriter-tls"
mountPath: "/etc/tls"
其次是容器级别的卷本身......
volumes:
- name: "scriptwriter-tls"
secret:
secretName: "scriptwriter-tls"
- name: "nginx-scriptwriter-dev-proxf-conf"
configMap:
name: "nginx-scriptwriter-dev-proxf-conf"
items:
- key: "nginx-scriptwriter.conf"
path: "nginx-scriptwriter.conf"
任何帮助指针将不胜感激。
我是一流的numpty! :-)有时错误只是错误! 所以问题是秘密是使用本地$ HOME / .ssh / *证书创建的...如果你是从不同的计算机生成它们,那么猜猜是什么?! 所以现在都修好了:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.