随着微服務架構的流行,邁向雲原生的趨勢,容器化微服務就成為了持續內建最好的手段,鏡像成為了持續傳遞最好的産物,容器成為了鏡像運作最好的環境,<code>kubernetes</code>成了部署容器最好的生态系統和規範。實踐出真知,自學習<code>kubernetes</code>以來,寫了一系列文章,首先,為了發現知識盲點,查漏補缺,将知識點形成體系,決定将之前寫的文章做一個彙總,友善檢視;其次,希望打通微服務落地<code>kubernetes</code>的任督二脈,探索出一種工作模式,建立一條高度自動化的流水線,于是踏上了西天取經的道路,并梳理出了西遊路線圖,希望大家和我一起打妖怪,早日到達雷音寺,取得真經,阿彌陀佛,成佛成仙,呵呵;最後,通過梳理明确學習的方向和目标,一步一步前進,勿急勿躁,也鞭策自己不斷學習、探索,因為有時真的就懶惰了,嘿嘿,正如四書五經《大學》中所言:“知止而後有定,定而後能靜,靜而後能安,安而後能慮,慮而後能得”,這是我最喜歡的話之一,也是懶惰時常常會想起的一句話,好了,不扯犢子了,嘿嘿。
西遊路線圖(不斷探索中...):
持續內建 --- <code>development</code>階段
代碼送出、代碼稽核、建構編譯、單元和功能測試、合并到代碼倉庫(git)、打包微服務成鏡像、上傳到鏡像倉庫 --- 全自動化。
備注:持續內建流程非常重要,特别是網際網路行業,産品不斷的更新疊代,周期卻很短,業務系統微服務化後,就像一輛汽車被拆分成各種元件,配置設定到不同的工廠加工生産,生産過程的每個階段都需要按标準不斷的互動對接,保證最後組合在一起的産物是符合預期設計标準的。至于持續內建的工作流程,每個公司可以結合自己的實際情況,建立符合自身的持續內建流程。 該階段的産物是鏡像。
持續傳遞 --- <code>staging</code>階段
持續內建系統級别的釋出方案到<code>chart</code>模闆倉庫,使用<code>k8s</code>的包管理器<code>helm</code>一鍵部署預生産環境,自動運作聯調(內建)測試 --- 半自動化。
備注:生産環境必須由專人按照嚴謹、合理、認可、穩定的流程(滾動釋出、金絲雀釋出等)完成部署工作,我們将這些方案編排成<code>chart</code>模闆,并在預生産環境進行測試,沒問題後,持續內建到遠端倉庫。 該階段目的就是根據服務之間的依賴關系編排服務,并将服務部署代碼化,即基礎設施自動化,它的産物是<code>chart</code>模闆,可以看作是一份DevOps文檔,裡面存放在各種各樣的運維腳本,自動化完成各式任務,這樣生産環境對于服務的釋出、更新、復原、擴容都可通過編排檔案實作,進而增加可塑性、易管理性、和自動化的能力。比如需要更新100個服務中的5個服務,隻需要修改編排檔案中5個服務的配置就行了,當編排檔案送出後,生産環境通過指令一鍵更新,當發現新環境這5個服務有問題時,當然希望将這個5個服務原子復原,如果沒有編排檔案,需要人工記錄這次更新了哪5個服務。有了編排檔案,隻需要執行一個指令就revert到上一個版本了,而且所有的操作在代碼倉庫裡面都已經被記錄了。
持續部署 --- <code>production</code>階段
隻需要一個指令,自動從遠端倉庫拉取特定的<code>chart</code>模闆,完整部署準備就緒的微服務腳手架到k8s生産環境 --- 全自動化。
一個典型的kubernetes工作流程
白話kubernetes的十萬個為什麼
NodePort,LoadBalancer還是Ingress?我該如何選擇
詳解 k8s RBAC(role based access control) 角色權限(敬請期待)
打包
容器化分布式日志元件ExceptionLess的Angular前端UI
部署
k8s實戰運作aspnetcore webapi微服務
aspnetcore.webapi實戰k8s健康探測機制
k8s實戰為aspnetcore.webapi微服務注入配置資訊
詳解k8s元件Ingress邊緣路由器并落地到微服務
倉庫
詳解docker實戰之搭建私有鏡像倉庫
k8s實戰之從私有倉庫拉取鏡像
Harbor 搭建企業級私有鏡像倉庫(敬請期待)
釋出
詳解k8s零停機滾動釋出微服務
詳解k8s零停機金絲雀釋出微服務(敬請期待)
運維
詳解k8s原生的控制台(敬請期待)
詳解k8s包管理器helm(敬請期待)
監控
詳解k8s原生的叢集監控方案(Heapster+InfluxDB+Grafana)
詳解k8s一個完整的叢集監控方案prometheus(敬請期待)
預警
grafana(敬請期待)
prometheus(敬請期待)
k8s踩坑記 - kubeadm join 之 token 失效
https://mp.weixin.qq.com/s/Ybca--Nx4m1_w9xfH6voMQ
做一個有底蘊的軟體工作者