1. 程式人生 > 實用技巧 >kubernets之configMap和secret

kubernets之configMap和secret

一 如何有效且更好的將配置寫到pod的容器中

  

  考慮一個問題,就是在傳統的應用中,程式裡面需要的配置一般以配置檔案的形式或者shell腳本里面的引數是在執行的時候在命令列裡面進行新增,但是在kubernets的pod中,應該如何將變數引入到pod的容器中呢?

二 容器啟動的時候是如何將變數引入容器中的

  

  2.1 瞭解ENTRYENTRYPOINT以及CMD

    Dockerfile中兩種指令分別代表容器啟動時被呼叫的可執行程式以及引數

    • ENTRYPOINT——定義容器啟動時候的可執行程式
    • CMD——指定引數傳遞給ENTRYPOINT的
    • 當ENTRYPOINT不存在的時候CMD裡面也可以當作容器啟動時候的可執行程式

  2.2 瞭解shell以及exec形式的區別

    有以下兩種形式的指令均可以作為容器的啟動命令

    • shell形式——如ENTRYPOINT node app.js
    • exec形式——如ENTRYPOINT ['node','app.js']
    • 兩者的區別在於shell形式的啟動程序將會以shell的形式啟動,但是往往這是多餘的,所以儘量使用exec的形式

三 在kubernets中覆蓋命令以及引數

  

  3.1 我們可以在pod中新增引數用以覆蓋pod裡面容器中的引數

apiVersion: v1
kind: pod
......
spec:
  - image: some/image
    command: [ 
"/bin/command" ] args: ["args1","args2","args3"]
  • 在pod中我們用command來替換容器中的可執行文(等同於容器裡面的entrypoint)
  • 用args來替換容器中的 引數(等同於容器裡面的cmd)

四 為容器設定環境變數

  4.1 如前所述,容器化應用通常會使用環境變數的