grafana中文手冊 微服務在Docker k8s下如何部署?
微服務在Docker k8s下如何部署?正好最近在項目中用到了這些技術(shù),我來拋磚引玉吧。首先說結(jié)論:1. k8s 是非常好的一項技術(shù),很穩(wěn)定。如果發(fā)現(xiàn)正在運行的 pod 的數(shù)量不等于用戶設(shè)定的期望值,
微服務在Docker k8s下如何部署?
正好最近在項目中用到了這些技術(shù),我來拋磚引玉吧。
首先說結(jié)論:
1. k8s 是非常好的一項技術(shù),很穩(wěn)定。如果發(fā)現(xiàn)正在運行的 pod 的數(shù)量不等于用戶設(shè)定的期望值, k8s 則會自動創(chuàng)建或者刪除 pod,直到兩者相等。這樣既保障了服務的不間斷運行,同時還可以動態(tài)縮放服務的規(guī)格。用戶只要調(diào)整 pod 的 replicate 的數(shù)量即可,其他的都交給 k8s 就好,非常省心。
2. 要用 jenkins 來集成命令行操作,雖然我個人非常偏愛使用命令行,但是我不得不承認用 jenkins 集成命令行操作會極大的提升工作效率。
下面說實現(xiàn)步驟:(本文以 azure 平臺為例)
1. 編寫 Dockerfile
2. 在 jenkins 創(chuàng)建任務,并執(zhí)行包含如下命令的腳本
2.1 git pull 源代碼到本地
2.2 docker build 命令生成鏡像文件
2.3 docker 定義鏡像文件版本號并上傳到 azure 平臺
2.4 kubectl 命令來創(chuàng)建 k8s 的 deployment & service.
2.5 每次版本更新可以調(diào)用 update image 來編譯新的鏡像版本并提供給 k8s 使用
注意在創(chuàng)建 k8s 的 deployment 和 service 的時候需要編寫 yaml 格式的配置文件, deployment 配置包括 名稱,鏡像文件地址, cpu 最大最小分配值,內(nèi)存最大最小分配值等。service 配置文件包括 名稱,引用的 deployment 名稱,以及是否使用 load balancer等。
更多詳細信息可以參考我的 wiki. https://github.com/FamingHou/MyWiki
grafana怎么放到nginx?
下載LuaJIT,編譯安裝使用Tengine2.2.1,重新編譯加--with-http_lua_module--with-ld-opt="-Wl,-rpath,$LUAJIT_LIB"選項下載lua-cjson,編譯后復制到lua的某個lib目錄,比如/usr/lib64/lua/5.1/
運維是必須要會linux嗎?
必須會,這是最基本的
如何創(chuàng)建既高效又經(jīng)濟的Kubernetes集群?
針對題主的問題,kubernetes集群,其存在就是為了更高效更經(jīng)濟的管理和編排容器化的服務。而題主所說的高效經(jīng)濟,我理解為,快速部署,快速運維,完善監(jiān)管且最大限度利用資源以期節(jié)約成本。快速部署,集群搭建推薦kubeadm,服務部署推薦helm。或者自建dockerhub使用yaml進行服務部署??焖龠\維。推薦可視化工具dashboard grafana influxdb,快速查看和操作集群。監(jiān)控推薦Prometheus,可監(jiān)控到應用級別,還可搭載alermmanager報警。實現(xiàn)快速運維和監(jiān)管。
至于搭建更經(jīng)濟的集群,資源分配是第一,有狀態(tài)的服務需要嚴格控制資源。小粒度的服務更容易合理分配資源。