kubernets之configMap和secret
阿新 • • 發佈:2020-12-30
一 如何有效且更好的將配置寫到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 如前所述,容器化應用通常會使用環境變數的