第七章 云原生生态的基石 Kubernetes

7.1 Kubernetes架构

  K8s的核心组件:

    • etcd: 协同存储,负责保存整个集群的状态。
    • API:资源操作的唯一入口。
    • controller manager: 维护集群的状态,执行故障检测、自动扩展、滚动更新。
    • Scheduler:负责资源调度,按照预定的调度策略将Pod调度到相应的机器上。
    • Kubelet: 作为工作节点负责维护容器的生命周期。
    • 容器运行时: 镜像管理,实现Pod和容器的真正运行。
    • Proxy: 负责提供集群内部的服务发现和负载均衡。

        推荐使用插件:

      CoreDNS;DNS 服务。

      Ingress Controller: 外网入口

      Prometheus: 资源监控

      Dashboard: 提供GUI

      Federation: 提供跨可用区的集群 

7.2 分层设计理念及架构模型

  不是命令式设计模式,而是声明式设计模式。

7.3 设计哲学

7.4 Kubernetes中的原语

  7.4.1 Kubernetes中的对象

      在k8s系统中,对象是持久化的条目。K8s中对象描述有如下信息:

  • 哪些容器化应用在运行,运行在哪个node上。
  • 与应用表现相关的策略,比如重启、升级、容错策略。

 7.4.2 对象的期望状态与实际状态

  Kubernetes会保证期望状态和实际状态一致。 比如副本的数量。

 7.4.3 描述Kubernetes对象

  Pod是K8s的基本调度单位。

    7.4.4 服务发现与负载均衡

  K8s中的服务发现和负载均衡大致可以分为以下几种,

  Service: 提供集群内部的负载均衡

  Ingress:   要自定义负载均衡器,让外部客户访问集群。

  Custom Load Balancer: 自定义负载均衡器替代kube-proxy.

 7.4.5 安全性与权限管理
  
K8s中的隔离:

    网络隔离:

    资源隔离:Pod, Namespace

    身份隔离:RBAC

资源隔离层次:

    Container:

    Pod:

Sandbox:

    Node

    Cluster:

    7.4.6 Sidecar设计模式

    代理进程作为sidecar,与应用程序运行在同一个Pod。其在service mesh中发扬光大。

7.5 应用Kubernetes

  如何将遗留的应用迁到K8s上:

   1. 将原来的应用拆解为服务。

   2.定义服务接口通信方式

      3. 编写启动脚本作为容器进程的入口

   4.准备应用配置文件

   5.应用容器化并制作镜像

   6.准备K8s用的YAML文件

   7.如果有外置的配置文件,需要ConfigMap或Secret存储。

7.6 Kubernetes与云原生生态

  K8s缺乏微服务自理能力; 也未提供CI/CD流程;

  7.6.1 下一代云计算标准

    

  7.6.2 当前存在的问题

    学习成本高

    对微服务治理不足。

    需要写大量YAML文件。

  7.6.3 未来趋势

    引入Service Mesh

    Serverless

    简化应用部署与运维:监控和日志收集

原文地址:https://www.cnblogs.com/liufei1983/p/11509352.html

时间: 2024-11-05 20:43:43

第七章 云原生生态的基石 Kubernetes的相关文章

云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告

业界要闻 近日,全球知名市场调研机构 Forrester 发布首个企业级公共云容器平台报告.其中,阿里云容器服务的市场表现全球前三.中国第一,同时创造中国企业最好成绩,进入强劲表现者象限.报告显示,阿里云容器服务市场表现为中国第一,与谷歌云并列全球第三. Forrester 分析师认为:“阿里云容器服务提供了广泛的开发和应用服务支持能力,并且具备丰富的市场生态和合作伙伴体系,是企业在中国寻求完备容器云服务能力的最佳选择. Virtual Kubelet 开源项目发布第一个可商用 1.0 版本,本

Knative 暂时不会捐给任何基金会 | 云原生生态周报 Vol. 22

作者 | 新胜.心贵.进超.元毅.衷源 业界要闻 谷歌:不会向任何基金会捐赠 Knative 自 Knative 项目开始以来,一直存在关于是否将 Knative 捐赠给基金会(例如 CNCF)的疑问. Google 领导层已经考虑了这一点,并决定在可预见的未来不向任何基金会捐赠 Knative. containerd v1.3 正式发布 CNCF 毕业后首个版本,功能扩展主要包括对 Windows v2 runtime 的支持以及 Plugins 相关支持(如允许 Plugin 注册为一个 T

CNCF 2019 年度报告重磅发布 | 云原生生态周报 Vol. 41

作者 | 孙健波.陈有坤.李鹏.丁海洋.高相林 业界要闻 Istio 1.5 正式发布 大量重大更新,包括控制面组件重新回归单体,整体变得更简单.更易用,性能提升等等. CNCF 2019 年度调查报告发布 其中包含了几条重要信息: Cloud Native 社区项目在生产环境中应用成为新常态,超过 50% 的 Cloud Native 项目在生产中应用: Service Mesh 真正进入生产实践,超过 18% 的受访者表示已经在生产环境中使用 Service Mesh: Serverless

云原生生态周报 Vol. 2

摘要: Cloud Native Weekly China Vol. 2 业界要闻 Kubernetes External Secrets 近日,世界上最大的域名托管公司 Godaddy公司,正式宣布并详细解读了其开源的K8s外部 Secrets 管理项目:Kubernetes External Secrets,简称KES.这个项目定义了ExternalSecrets API,让开发者可以在K8s内部以和使用内部Secret相似的方式使用外部系统提供的Secrets,大大简化了开发者为了让应用获

第五章 云原生与容器技术

第一节 独角兽成功秘诀 成功秘诀 ·Speed of innovation-天下武功,唯快不破 ·Always-available services-随时.随地可用 ·Web scale-从0到1,快速扩展 ·Mobile-centric user experiences-移动为王又快又好! 第二节 云原生和现代应用12范式 现代应用的十二范式(The Twelve-Factor App) 1.基准代码:一份基准代码,多份部署.基准代码和应用之间总是保持一一对应的关系.所有部署的基准代码相同,但

云原生生态周报 Vol.9| K8s v1.15 版本发布

本周作者 | 衷源.心贵 业界要闻 1.Kubernetes Release v1.15 版本发布,新版本的两个主题是持续性改进和可扩展性.(https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.15.md#kubernetes-v115-release-notes) 2.Helm 这款包管理工具, 作为业界 Kubernetes 上应用分发的事实标准,其 v3.0.0-alpha.1 正式发布,这是 Helm 3 的第

第1章 云原生

软件 -> 开源 ->云 1.1 互联网架构变迁 1.1.1 互联网架构的核心问题 海量用户: 产品迅速迭代:敏捷的探知市场需求,快速的推陈出新.      7 * 24小时不间断服务:尽量缩短宕机时间. 流量突增:比如双11,促销,热点事件等.         业务组合复杂: 1.1.2 从集中式架构到分布式架构 传统的三层架构: 集中式架构分为标准的三层:数据访问层.服务层和web层. 服务层是核心,提供公开的API,也可以通过Web层提供API. 分布式架构.SOA和服务化: 垂直伸缩:

独家解读 etcd 3.4版本 |云原生生态周报 Vol. 18

作者 | 酒祝.墨封.宇慕.衷源关注"阿里巴巴云原生"公众号,回复关键词 "资料" ,即可获得 2019 全年 meetup 活动 PPT 合集及 K8s 最全知识图谱. 业界要闻 etcd 发布 3.4 版本 etcd 发布了 3.4 版本,是最近性能提升最大的一次发布,相信各位已经期待已久了!这次升级带来稳定性和性能等方面诸多优化,例如底层存储优化,客户端优化等多个方面. 「阿里巴巴云原生」公众号将在下周带来更详细的解读分析. 阿里联合谷歌共同研发,raft l

第九章 云原生数据架构

9.1 关系型数据库尚能饭否   在大数据.NoSQL以及NewSQL等新技术的轮番轰炸后,依然是主流 9.1.1 优势 开发优势:SQL查询灵活度非常高,方便的进行联机事务处理.JDBC完善.ORM完善.     ORM是为了解决 面向对象和关系型数据库阻抗不匹配的问题的:                    (阻抗不匹配: 比如一个Opprotunity下面有多个LineItems, 面向对象很好表示这种关系,Opp对象下有一个lineitems的List: 但是在关系型数据库中,就有两张