zoukankan      html  css  js  c++  java
  • Linux系统 Docker Kubernetes 架构

              kubernetes 架构

     

    四层,如下:

    • 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使用。

     

  • 相关阅读:
    Oracle 创建索引分区
    Shiro SessionManager会话管理器设计概念
    管理表分区
    Oracle 表分区策略
    Oracle 表分区
    参考Shiro的Session定期验证会话失效的线程池
    HDU 3555 Bomb (数位dp)
    POJ 3666 Making the Grade (动态规划)
    Gym
    POJ
  • 原文地址:https://www.cnblogs.com/devops-docker/p/11769607.html
Copyright © 2011-2022 走看看