Kubernetes Minikube Secrets似乎未安装在Pod中

时间:2017-02-06 21:44:28

标签: nginx docker kubernetes minikube

我有一个"部署"在Kubernetes中,它在GKE中运行良好,但在MiniKube中失败了。 我有一个带2个容器的Pod: -   (1)Nginx作为反向代理(分别在/ etc / tls& / etc / nginx读取秘密和configMap卷)   (2)基于JVM的服务侦听localhost

minikube部署中的问题是Nginx容器无法读取看起来不存在的TLS证书 - 即Pod的秘密卷装载似乎已失败。

 MountVolume.SetUp succeeded for volume "kubernetes.io/secret/61701667-eca7-11e6-ae16-080027187aca-scriptwriter-tls" (spec.Name: "scriptwriter-tls")

但是,如果我做" minikube日志"我得到了大量看似成功的#34;卷安装......

$ kubectl get secrets scriptwriter-tls
NAME               TYPE      DATA      AGE
scriptwriter-tls   Opaque    3         1h

这个秘密本身就在集群中了......

  - 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"

所以看来就miniKube而言,从秘密的角度来看,一切都很好。但另一方面,nginx容器无法看到它。

我无法登录容器,因为它一直在终止。

为了完整性,部署yaml的相关部分...... 首先是nginx配置...

  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"

其次是容器级别的卷本身......

{{1}}

非常感谢任何帮助指示。

1 个答案:

答案 0 :(得分:0)

我是一流的numpty! :-)有时错误只是错误!所以问题是秘密是使用本地$ HOME / .ssh / *证书创建的...如果你是从不同的计算机生成它们,那么猜猜是什么?!所以现在都修好了: - )