簡體   English   中英

Kubernetes Minikube Secrets似乎未安裝在Pod中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM