Linux系統 Docker Kubernetes 架構

          kubernetes 架構nginx

 

 

 

 

四層,以下:網絡

  • Client層:即Kubernetes集羣外部用戶、客戶端等;
  • 服務訪問層:即由Traefik ingress實現服務發現、負載均衡和路由規則定義等;
  • 業務應用層:即基於Kubernetes平臺構建和運行企業業務應用,如CI/CD持續集成、微服務項目、監控告警和日誌管理、私有鏡像倉庫等服務;
  • 基礎設施層:即由Kubernetes容器管理平臺和Ceph/NFS數據持久化存儲等系統組成的基礎設施服務。

基礎設施層

網絡通訊:在容器和容器之間、容器和主機網絡方面,能夠使用Calico或Flannel等方案。架構

HA高可用:Kubernetes節點分爲Master和Node兩種類型節點,Master節點+HAProxy方案,Node節點模式具備自然的容災冗餘HA高可用負載均衡

Docker和操做系統優化:如關閉swap內存交換分區,預留必定的CPU核數和內存資源給宿主機使用等。微服務

Ceph/NFS數據存儲工具

業務應用層優化

  • 鏡像管理:使用Harbor私有鏡像倉庫服務;
  • 日誌管理:使用Elasticsearch、Filebeat 和 Kibana技術棧;
  • 監控告警管理:使用Cadvisor、Prometheus和Grafana技術棧;
  • 微服務架構:使用Service Mesh服務網格中的Istio方案;
  • Devops:使用Gitlab、Jenkins等持續集成工具;
  • 單體應用:無狀態類服務使用deployment,有狀態類服務則使用Statefulset,若是關聯的服務較多且複雜則使用Helm。
  • 規劃好Namespace:應當作到每一個namespace專屬用於某類型的應用,如monitor namespace統一管理諸如監控告警和日誌管理方面的pod、service、pvc、ingress等資源。這樣,能夠較爲方便的管理和區分K8s上的各類應用。

 

服務訪問層

    外部客戶端訪問K8s集羣內的服務、負載均衡和路由規則定義使用Traefik Ingress實現。此外,應當實現Ingress服務HA高可用,能夠想象在K8s集羣中,大量的出入口流量都進過Ingress,其負載是很是大的,其重要程度不言而喻,所以實現HA就很是重要。ingress controller節點(不管是基於nginx仍是traefik實現)應當至少爲2個節點,並在這些節點上,部署Keepalived和HAproxy共同維護一個VIP地址,將其提供給ingress使用。spa

 

相關文章
相關標籤/搜索