Docker+K8S實踐


一。運維角度:

     (一)鏡像:

        1. 避免依賴過深。不要在基礎鏡像上加太多產生其他的鏡像,我覺得這塊最多是三四層。

           一層是base景像再往上是工具、中間件這樣的,再往上一層就是你自己的程序,再多就比較亂了。

            Base image是CentOS 7

        2. 鏡像越小越好,消耗的資源越少越好

        3. 根據應用的差異化,建多個基礎鏡像

        4. 鏡像構建這塊,一定要從Dockerfile生成,這樣做最大的好處是可以通過Dockerfile“閱讀”鏡像。

           在后續的協作、升級維護等方面會帶來巨大的便利。如果不從Dockerfile生成,以后更新、回滾是很麻煩的。

           我用Dockerfile生成的時候,其他的人可以通過Dockerfile或者鏡像就可以閱讀這個鏡像是怎么來的。

           哪個鏡像是base鏡像,中間加了哪些軟件,運行什么東西

       5.鏡像管理這塊,雖然我們應用的是原生的,但是這幾項只要跟數據有關系的都要考慮。

            單點問題,暫時我們用的是一台機器,不是很安全,對應的解決方案可以考慮DRBD、分布式存儲以及雲存儲。

            性能問題,主要是下載加速,目前可用的解決方案是通過HTTP反向代理緩存來加速Layer的下載。

            權限問題,可以用Nginx LUA提供一個簡單快速的實現方案

     (二)日志管理:

          日志管理的話,如果把日志放在容器里面,由於容器是無狀態的,所以存儲在容器內的日志會隨着容器的銷毀而消失。

          你要把日志實時保存下來,或者把日志放在宿主機,但是放在宿主機的話,有點違反Docker化不依賴宿主機的任何環境的要求。

           建議放一些日志收集工具如Logstash或者Flume等。

      (三)RC配置

          1. 多實例運行,我們的機器可夠跑多個實例的,啟動的時候每個實例的占的內存和CPU都要考慮一下

      (四)內核參數的調整:

          1. ulimit

          2. dns

          3. ....

二。開發角度:

     (一)

       1. 程序放在容器里的話,這個程序至少應該是無狀態的,不能依賴於宿主機的一切環境,如目錄、IP

       2. 以前如果用正常開發的話,root是不讓用的,用Docker就可以


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM